| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| |
| Copyright (c) 2019, 2021 Oracle and/or its affiliates. All rights reserved. |
| |
| This program and the accompanying materials are made available under the |
| terms of the Eclipse Public License v. 2.0 which is available at |
| http://www.eclipse.org/legal/epl-2.0, |
| or the Eclipse Distribution License v. 1.0 which is available at |
| http://www.eclipse.org/org/documents/edl-v10.php. |
| |
| SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause |
| |
| --> |
| |
| <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" |
| xmlns="http://maven.apache.org/POM/4.0.0" |
| xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <name>EclipseLink Bundles Nightly Builds</name> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.nightly</artifactId> |
| <packaging>pom</packaging> |
| |
| <parent> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.bundles</artifactId> |
| <version>4.0.0-SNAPSHOT</version> |
| <relativePath>../pom.xml</relativePath> |
| </parent> |
| |
| <properties> |
| <nightlyDir>/nightlybuild/${release.version}/${build.date}</nightlyDir> |
| <nightlyVersion>-${release.version}.v${build.date}-${buildNumber}</nightlyVersion> |
| <nightlyTestReportsDir>${project.build.directory}${nightlyDir}/Eclipse</nightlyTestReportsDir> |
| </properties> |
| |
| <dependencies> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.core.test</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.dbws</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.dbws.builder</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.moxy</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.jpa.test</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.jpa.wdf.test</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.sdo</artifactId> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>eclipselink</artifactId> |
| <type>zip</type> |
| <version>${project.version}</version> |
| </dependency> |
| <dependency> |
| <groupId>org.eclipse.persistence</groupId> |
| <artifactId>org.eclipse.persistence.bundles.other</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| </dependencies> |
| |
| <build> |
| <plugins> |
| <!--Initialize build.date and build.time buildNumber properties. --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>buildnumber-maven-plugin</artifactId> |
| <configuration> |
| <revisionOnScmFailure>false</revisionOnScmFailure> |
| <shortRevisionLength>10</shortRevisionLength> |
| </configuration> |
| <executions> |
| <execution> |
| <id>build.date</id> |
| <phase>initialize</phase> |
| <goals> |
| <goal>create-timestamp</goal> |
| </goals> |
| <configuration> |
| <timestampFormat>yyyyMMdd</timestampFormat> |
| <timestampPropertyName>build.date</timestampPropertyName> |
| </configuration> |
| </execution> |
| <execution> |
| <phase>initialize</phase> |
| <goals> |
| <goal>create</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>com.coderplus.maven.plugins</groupId> |
| <artifactId>copy-rename-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>prepare-nightly-build-dir-test-reports</id> |
| <phase>package</phase> |
| <goals> |
| <goal>copy</goal> |
| </goals> |
| <configuration> |
| <fileSets> |
| <fileSet> |
| <sourceFile> |
| ../../foundation/eclipselink.core.test/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-core-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../dbws/org.eclipse.persistence.dbws/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-dbws-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../utils/org.eclipse.persistence.dbws.builder/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-dbws-util-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../moxy/org.eclipse.persistence.moxy/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-jaxb-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../jpa/eclipselink.jpa.test/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-jpa-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../jpa/eclipselink.jpa.wdf.test/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-jpa-wdf-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../jpa/org.eclipse.persistence.jpars/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-jpars-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../foundation/org.eclipse.persistence.core/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-oxm-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../../sdo/org.eclipse.persistence.sdo/target/${project.build.testReports.subdirectory}/${project.build.testReports.summaryFile}.html |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/Eclipse/eclipselink-sdo-lrg${nightlyVersion}.html |
| </destinationFile> |
| </fileSet> |
| </fileSets> |
| </configuration> |
| </execution> |
| <execution> |
| <id>prepare-nightly-build-dir-binaries</id> |
| <phase>package</phase> |
| <goals> |
| <goal>copy</goal> |
| </goals> |
| <configuration> |
| <fileSets> |
| <fileSet> |
| <sourceFile>../eclipselink/target/eclipselink-${project.version}.zip</sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/eclipselink${nightlyVersion}.zip |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile>../others/target/eclipselink-plugins.zip</sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/eclipselink-plugins${nightlyVersion}.zip |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile>../others/target/eclipselink-plugins-nosql.zip</sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/eclipselink-plugins-nosql${nightlyVersion}.zip |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile>../others/target/eclipselink-test-jars.zip</sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/eclipselink-test-jars${nightlyVersion}.zip |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile>../others/target/eclipselink-test-src.zip</sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/eclipselink-test-src${nightlyVersion}.zip |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../eclipselink/target//${eclipselink.unzip.subdir}/eclipselink/jlib/eclipselink.jar |
| </sourceFile> |
| <destinationFile>${project.build.directory}${nightlyDir}/eclipselink.jar |
| </destinationFile> |
| </fileSet> |
| <fileSet> |
| <sourceFile> |
| ../eclipselink/target//${eclipselink.unzip.subdir}/eclipselink/jlib/eclipselink-sources.jar |
| </sourceFile> |
| <destinationFile> |
| ${project.build.directory}${nightlyDir}/eclipselink-src${nightlyVersion}.zip |
| </destinationFile> |
| </fileSet> |
| </fileSets> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.gmaven</groupId> |
| <artifactId>groovy-maven-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>generate-ResultSummary.dat</id> |
| <phase>package</phase> |
| <goals> |
| <goal>execute</goal> |
| </goals> |
| <configuration> |
| <source><![CDATA[ |
| import javax.xml.xpath.XPathConstants |
| import javax.xml.xpath.XPathFactory |
| import javax.xml.parsers.DocumentBuilderFactory |
| |
| final NO_OF_TESTS_XPATH = "/html/body/div[@id='bodyColumn']/div/section[2]/table/tr[2]/td[1]/text()" |
| final NO_OF_ERRORS_XPATH = "/html/body/div[@id='bodyColumn']/div/section[2]/table/tr[2]/td[2]/text()" |
| final NO_OF_FAILURES_XPATH = "/html/body/div[@id='bodyColumn']/div/section[2]/table/tr[2]/td[3]/text()" |
| final OUTPUT_FILE = "ResultSummary.dat" |
| |
| def resultSummaryFile = new File(properties["nightlyTestReportsDir"] + "/" + OUTPUT_FILE) |
| def reportDir = new File(properties["nightlyTestReportsDir"]) |
| |
| //Evaluate XPath and return result as integer |
| int processXml(String xml, String xpathQuery) { |
| def xpath = XPathFactory.newInstance().newXPath() |
| def dbf = DocumentBuilderFactory.newInstance() |
| dbf.setValidating(false) |
| dbf.setFeature("http://xml.org/sax/features/namespaces", false); |
| dbf.setFeature("http://xml.org/sax/features/validation", false); |
| dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-dtd-grammar", false); |
| dbf.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); |
| def builder = dbf.newDocumentBuilder() |
| def inputStream = new ByteArrayInputStream(xml.bytes) |
| def records = builder.parse(inputStream).documentElement |
| def nodes = xpath.evaluate(xpathQuery, records, XPathConstants.NODESET) |
| return nodes.item(0).getNodeValue().toInteger() |
| } |
| |
| if (resultSummaryFile.exists()) { |
| resultSummaryFile.delete() |
| } |
| File[] files = reportDir.listFiles() |
| for (File file : files) { |
| try { |
| noOfTests = processXml(file.text, NO_OF_TESTS_XPATH) |
| noOfNewTests = noOfTests |
| noOfErrors = processXml(file.text, NO_OF_ERRORS_XPATH) + |
| processXml(file.text, NO_OF_FAILURES_XPATH) |
| } catch (Exception e) { |
| log.warn "File: " + file.getName() + " can't be parsed. Result will be marked as a failed test!" |
| noOfTests = 1 |
| noOfNewTests = 1 |
| noOfErrors = 1 |
| } |
| resultSummaryFile.append file.getName() + ":" + noOfTests + ":" + noOfNewTests + ":" + noOfErrors + "\n" |
| } |
| println resultSummaryFile.text |
| ]]> |
| </source> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| </plugins> |
| </build> |
| </project> |