diff --git a/build-tools/automation/azure-pipelines.yaml b/build-tools/automation/azure-pipelines.yaml
index ea02853b2..d8c8a7237 100644
--- a/build-tools/automation/azure-pipelines.yaml
+++ b/build-tools/automation/azure-pipelines.yaml
@@ -179,6 +179,5 @@ jobs:
- template: templates\core-tests.yaml
parameters:
runNativeTests: true
- runJavaTests: true
- template: templates\fail-on-issue.yaml
diff --git a/build-tools/automation/templates/core-tests.yaml b/build-tools/automation/templates/core-tests.yaml
index 9cc8e6990..e48505773 100644
--- a/build-tools/automation/templates/core-tests.yaml
+++ b/build-tools/automation/templates/core-tests.yaml
@@ -1,7 +1,6 @@
parameters:
condition: succeeded()
runNativeTests: false
- runJavaTests: false
steps:
- task: DotNetCoreCLI@2
@@ -110,7 +109,6 @@ steps:
- task: DotNetCoreCLI@2
displayName: 'Tests: java-source-utils'
- condition: eq('${{ parameters.runJavaTests }}', 'true')
inputs:
command: build
arguments: -c $(Build.Configuration) tools/java-source-utils/java-source-utils.csproj -t:RunTests
@@ -118,7 +116,6 @@ steps:
- task: PublishTestResults@2
displayName: Publish JUnit Test Results
- condition: eq('${{ parameters.runJavaTests }}', 'true')
inputs:
testResultsFormat: JUnit
testResultsFiles: 'tools/java-source-utils/build/test-results/**/TEST-*.xml'
diff --git a/build-tools/automation/templates/publish-test-results.yaml b/build-tools/automation/templates/publish-test-results.yaml
index 782c367e2..7a715c13d 100644
--- a/build-tools/automation/templates/publish-test-results.yaml
+++ b/build-tools/automation/templates/publish-test-results.yaml
@@ -9,7 +9,6 @@ steps:
- task: PublishTestResults@2
displayName: Publish JUnit Test Results
- condition: ne('$(Agent.OS)', 'Windows')
inputs:
testResultsFormat: JUnit
testResultsFiles: '**/TEST-*.xml'
diff --git a/build-tools/scripts/RunNUnitTests.targets b/build-tools/scripts/RunNUnitTests.targets
index ab169fe54..c00b6c767 100644
--- a/build-tools/scripts/RunNUnitTests.targets
+++ b/build-tools/scripts/RunNUnitTests.targets
@@ -30,7 +30,7 @@
ContinueOnError="ErrorAndContinue"
/>
diff --git a/tools/java-source-utils/src/main/java/com/microsoft/android/JavadocXmlGenerator.java b/tools/java-source-utils/src/main/java/com/microsoft/android/JavadocXmlGenerator.java
index d600c1fd8..690474b03 100644
--- a/tools/java-source-utils/src/main/java/com/microsoft/android/JavadocXmlGenerator.java
+++ b/tools/java-source-utils/src/main/java/com/microsoft/android/JavadocXmlGenerator.java
@@ -2,6 +2,8 @@
import java.io.File;
import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
import java.io.IOException;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
@@ -17,6 +19,7 @@
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -65,10 +68,10 @@ private void startApi() throws ParserConfigurationException {
}
public void close() throws TransformerException {
+ InputStream is = getClass().getClassLoader().getResourceAsStream("transform-style.xsl");
+ InputStreamReader isr = new InputStreamReader(is);
Transformer transformer = TransformerFactory.newInstance()
- .newTransformer();
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
+ .newTransformer(new StreamSource (isr));
transformer.transform(new DOMSource(document), new StreamResult(output));
if (output != System.out) {
diff --git a/tools/java-source-utils/src/main/resources/transform-style.xsl b/tools/java-source-utils/src/main/resources/transform-style.xsl
new file mode 100644
index 000000000..2f7e4157d
--- /dev/null
+++ b/tools/java-source-utils/src/main/resources/transform-style.xsl
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tools/java-source-utils/src/test/java/com/microsoft/android/JavadocXmlGeneratorTest.java b/tools/java-source-utils/src/test/java/com/microsoft/android/JavadocXmlGeneratorTest.java
index 11c4c5e97..9665a63fe 100644
--- a/tools/java-source-utils/src/test/java/com/microsoft/android/JavadocXmlGeneratorTest.java
+++ b/tools/java-source-utils/src/test/java/com/microsoft/android/JavadocXmlGeneratorTest.java
@@ -10,6 +10,7 @@
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerException;
+import org.junit.Assume;
import org.junit.Test;
import static org.junit.Assert.*;
@@ -19,7 +20,14 @@
public final class JavadocXmlGeneratorTest {
@Test(expected = FileNotFoundException.class)
public void init_invalidFileThrows() throws FileNotFoundException, ParserConfigurationException, TransformerException, UnsupportedEncodingException {
- try (JavadocXmlGenerator g = new JavadocXmlGenerator("/this/file/does/not/exist")) {
+ String invalidFilePath = "/this/file/does/not/exist";
+ String osName = System.getProperty("os.name");
+ if (osName.startsWith("Windows")) {
+ invalidFilePath = System.getenv("ProgramFiles") + "\\this\\file\\does\\not\\exist";
+ // Ignore if running on an Azure Pipelines Microsoft hosted agent by only running when %AGENT_NAME% is not set.
+ Assume.assumeTrue(System.getenv("AGENT_NAME") == null);
+ }
+ try (JavadocXmlGenerator g = new JavadocXmlGenerator(invalidFilePath)) {
}
}
@@ -40,9 +48,11 @@ public void testWritePackages_noPackages() throws ParserConfigurationException,
generator.writePackages(packages);
generator.close();
- final String expected =
+ final String expected = (
"\n" +
- "\n";
+ "\n"
+ ).replace("\n", System.lineSeparator());
+
assertEquals("no packages", expected, bytes.toString());
}
@@ -53,7 +63,7 @@ public void testWritePackages_demo() throws ParserConfigurationException, Transf
final JavadocXmlGenerator generator = new JavadocXmlGenerator(new PrintStream(bytes));
final JniPackagesInfo packages = JniPackagesInfoTest.createDemoInfo();
- final String expected =
+ final String expected = (
"\n" +
"\n" +
" \n" +
@@ -94,7 +104,8 @@ public void testWritePackages_demo() throws ParserConfigurationException, Transf
" \n" +
" \n" +
" \n" +
- "\n";
+ "\n"
+ ).replace("\n", System.lineSeparator());
generator.writePackages(packages);
generator.close();
diff --git a/tools/java-source-utils/src/test/java/com/microsoft/android/ParameterNameGeneratorTest.java b/tools/java-source-utils/src/test/java/com/microsoft/android/ParameterNameGeneratorTest.java
index 99b7ea4ca..5235ab7e7 100644
--- a/tools/java-source-utils/src/test/java/com/microsoft/android/ParameterNameGeneratorTest.java
+++ b/tools/java-source-utils/src/test/java/com/microsoft/android/ParameterNameGeneratorTest.java
@@ -7,6 +7,7 @@
import java.io.UnsupportedEncodingException;
import java.util.Arrays;
+import org.junit.Assume;
import org.junit.Test;
import static org.junit.Assert.*;
@@ -17,7 +18,14 @@ public class ParameterNameGeneratorTest {
@Test(expected = FileNotFoundException.class)
public void init_invalidFileThrows() throws FileNotFoundException, UnsupportedEncodingException {
- new ParameterNameGenerator("/this/file/does/not/exist");
+ String invalidFilePath = "/this/file/does/not/exist";
+ String osName = System.getProperty("os.name");
+ if (osName.startsWith("Windows")) {
+ invalidFilePath = System.getenv("ProgramFiles") + "\\this\\file\\does\\not\\exist";
+ // Ignore if running on an Azure Pipelines Microsoft hosted agent by only running when %AGENT_NAME% is not set.
+ Assume.assumeTrue(System.getenv("AGENT_NAME") == null);
+ }
+ new ParameterNameGenerator(invalidFilePath);
}
@Test(expected = IllegalArgumentException.class)
@@ -45,7 +53,7 @@ public void testWritePackages_demo() {
ParameterNameGenerator generator = new ParameterNameGenerator(new PrintStream(bytes));
JniPackagesInfo packages = JniPackagesInfoTest.createDemoInfo();
- final String expected =
+ final String expected = (
";---------------------------------------\n" +
" class A\n" +
" #ctor(int one, java.lang.String two)\n" +
@@ -60,7 +68,8 @@ public void testWritePackages_demo() {
";---------------------------------------\n" +
" interface Exampleable\n" +
" example(java.lang.String e)\n" +
- "";
+ ""
+ ).replace("\n", System.lineSeparator());
generator.writePackages(packages);
assertEquals("global package + example packages", expected, bytes.toString());