diff --git a/pom.xml b/pom.xml
index 94fd833..7b4e6a9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
4.2
2.6
1.9
- 1.1.0
+ 1.2.0
@@ -127,8 +127,9 @@
jackson-dataformat-yaml
${jackson.version}
+
- com.overzealous
+ com.kotcrab.remark
remark
${remark.version}
@@ -157,7 +158,7 @@
- sprin-libs-repo
+ spring-libs-repo
Spring Lib Release repository
https://repo.spring.io/libs-release
diff --git a/src/main/java/com/microsoft/model/MetadataFileItem.java b/src/main/java/com/microsoft/model/MetadataFileItem.java
index d219abb..74afd5d 100644
--- a/src/main/java/com/microsoft/model/MetadataFileItem.java
+++ b/src/main/java/com/microsoft/model/MetadataFileItem.java
@@ -10,6 +10,7 @@
import java.util.List;
import org.apache.commons.lang3.RegExUtils;
+import org.apache.commons.text.StringEscapeUtils;
@JsonPropertyOrder({"uid", "id", "parent", "children", "href", "langs", "isExternal", "name", "nameWithType",
"fullName", "overload", "overridden", "type", "package", "summary", "syntax", "inheritance", "implements", "exceptions",
@@ -160,7 +161,7 @@ public String getSummary() {
}
public void setSummary(String summary) {
- this.summary = summary;
+ this.summary = StringEscapeUtils.unescapeJava(summary);
}
public Syntax getSyntax() {
diff --git a/src/main/java/com/microsoft/model/Return.java b/src/main/java/com/microsoft/model/Return.java
index 2ac9daf..eb50513 100644
--- a/src/main/java/com/microsoft/model/Return.java
+++ b/src/main/java/com/microsoft/model/Return.java
@@ -4,6 +4,7 @@
import com.fasterxml.jackson.annotation.JsonProperty;
import com.microsoft.util.XrefHelper;
+import org.apache.commons.text.StringEscapeUtils;
public class Return {
@@ -34,7 +35,7 @@ public String getReturnDescription() {
}
public void setReturnDescription(String returnDescription) {
- this.returnDescription = returnDescription;
+ this.returnDescription = StringEscapeUtils.unescapeJava(returnDescription);
}
public String getReturnXrefString() {
diff --git a/src/main/java/com/microsoft/model/TypeParameter.java b/src/main/java/com/microsoft/model/TypeParameter.java
index c4f7bb6..f1f09c3 100644
--- a/src/main/java/com/microsoft/model/TypeParameter.java
+++ b/src/main/java/com/microsoft/model/TypeParameter.java
@@ -1,6 +1,7 @@
package com.microsoft.model;
import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.commons.text.StringEscapeUtils;
public class TypeParameter implements Comparable {
@@ -21,7 +22,7 @@ public String getDescription() {
}
public void setDescription(String description) {
- this.description = description;
+ this.description = StringEscapeUtils.unescapeJava(description);
}
@Override
diff --git a/src/main/java/com/microsoft/util/FileUtil.java b/src/main/java/com/microsoft/util/FileUtil.java
index b029506..de73093 100644
--- a/src/main/java/com/microsoft/util/FileUtil.java
+++ b/src/main/java/com/microsoft/util/FileUtil.java
@@ -2,6 +2,7 @@
import com.microsoft.model.YmlFile;
import java.io.IOException;
+import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -16,7 +17,7 @@ public static void dumpToFile(String content, String fileName) {
try {
Path path = Paths.get(fileName);
Files.createDirectories(path.getParent());
- Files.write(path, content.getBytes());
+ Files.write(path, content.getBytes(Charset.forName("UTF-8")));
} catch (IOException ioe) {
String exception = "Error during dump to file: " + fileName;
throw new RuntimeException(exception, ioe);
diff --git a/src/test/java/com/microsoft/samples/noneascii/Offer.java b/src/test/java/com/microsoft/samples/noneascii/Offer.java
new file mode 100644
index 0000000..b4f0813
--- /dev/null
+++ b/src/test/java/com/microsoft/samples/noneascii/Offer.java
@@ -0,0 +1,48 @@
+package com.microsoft.samples.noneascii;
+
+
+import java.net.URI;
+import java.util.List;
+
+ /**
+ * 代表客户可用的产品形式
+ */
+ public class Offer
+ {
+ /**
+ * 初始化Offer类的新实例。
+ */
+ public Offer()
+ {
+ }
+
+ /**
+ * 获取或设置合作伙伴要求的资格,以便为客户购买优惠。
+ */
+ private String[] __ResellerQualifications;
+
+ public String[] getResellerQualifications()
+ {
+ return __ResellerQualifications;
+ }
+
+ public void setResellerQualifications(String[] value)
+ {
+ __ResellerQualifications = value;
+ }
+
+ /**
+ * 获取或设置客户要求合作伙伴为客户购买的资格。
+ */
+ private String[] __ReselleeQualifications;
+
+ public String[] getReselleeQualifications()
+ {
+ return __ReselleeQualifications;
+ }
+
+ public void setReselleeQualifications(String[] value)
+ {
+ __ReselleeQualifications = value;
+ }
+ }
\ No newline at end of file
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.Offer.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.Offer.yml
new file mode 100644
index 0000000..c9a51b1
--- /dev/null
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.Offer.yml
@@ -0,0 +1,15 @@
+### YamlMime:JavaMember
+uid: "com.microsoft.samples.noneascii.Offer.Offer*"
+fullName: "com.microsoft.samples.noneascii.Offer.Offer"
+name: "Offer"
+nameWithType: "Offer.Offer"
+members:
+- uid: "com.microsoft.samples.noneascii.Offer.Offer()"
+ fullName: "com.microsoft.samples.noneascii.Offer.Offer()"
+ name: "Offer()"
+ nameWithType: "Offer.Offer()"
+ summary: "初始化Offer类的新实例。"
+ syntax: "public Offer()"
+type: "constructor"
+metadata: {}
+package: "com.microsoft.samples.noneascii"
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.getReselleeQualifications.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.getReselleeQualifications.yml
new file mode 100644
index 0000000..99399e7
--- /dev/null
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.getReselleeQualifications.yml
@@ -0,0 +1,16 @@
+### YamlMime:JavaMember
+uid: "com.microsoft.samples.noneascii.Offer.getReselleeQualifications*"
+fullName: "com.microsoft.samples.noneascii.Offer.getReselleeQualifications"
+name: "getReselleeQualifications"
+nameWithType: "Offer.getReselleeQualifications"
+members:
+- uid: "com.microsoft.samples.noneascii.Offer.getReselleeQualifications()"
+ fullName: "com.microsoft.samples.noneascii.Offer.getReselleeQualifications()"
+ name: "getReselleeQualifications()"
+ nameWithType: "Offer.getReselleeQualifications()"
+ syntax: "public String[] getReselleeQualifications()"
+ returns:
+ type: "[]"
+type: "method"
+metadata: {}
+package: "com.microsoft.samples.noneascii"
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.getResellerQualifications.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.getResellerQualifications.yml
new file mode 100644
index 0000000..7d542e7
--- /dev/null
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.getResellerQualifications.yml
@@ -0,0 +1,16 @@
+### YamlMime:JavaMember
+uid: "com.microsoft.samples.noneascii.Offer.getResellerQualifications*"
+fullName: "com.microsoft.samples.noneascii.Offer.getResellerQualifications"
+name: "getResellerQualifications"
+nameWithType: "Offer.getResellerQualifications"
+members:
+- uid: "com.microsoft.samples.noneascii.Offer.getResellerQualifications()"
+ fullName: "com.microsoft.samples.noneascii.Offer.getResellerQualifications()"
+ name: "getResellerQualifications()"
+ nameWithType: "Offer.getResellerQualifications()"
+ syntax: "public String[] getResellerQualifications()"
+ returns:
+ type: "[]"
+type: "method"
+metadata: {}
+package: "com.microsoft.samples.noneascii"
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.setReselleeQualifications.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.setReselleeQualifications.yml
new file mode 100644
index 0000000..ddd4740
--- /dev/null
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.setReselleeQualifications.yml
@@ -0,0 +1,17 @@
+### YamlMime:JavaMember
+uid: "com.microsoft.samples.noneascii.Offer.setReselleeQualifications*"
+fullName: "com.microsoft.samples.noneascii.Offer.setReselleeQualifications"
+name: "setReselleeQualifications"
+nameWithType: "Offer.setReselleeQualifications"
+members:
+- uid: "com.microsoft.samples.noneascii.Offer.setReselleeQualifications(java.lang.String[])"
+ fullName: "com.microsoft.samples.noneascii.Offer.setReselleeQualifications(String[] value)"
+ name: "setReselleeQualifications(String[] value)"
+ nameWithType: "Offer.setReselleeQualifications(String[] value)"
+ parameters:
+ - name: "value"
+ type: "[]"
+ syntax: "public void setReselleeQualifications(String[] value)"
+type: "method"
+metadata: {}
+package: "com.microsoft.samples.noneascii"
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.setResellerQualifications.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.setResellerQualifications.yml
new file mode 100644
index 0000000..099bdb1
--- /dev/null
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.setResellerQualifications.yml
@@ -0,0 +1,17 @@
+### YamlMime:JavaMember
+uid: "com.microsoft.samples.noneascii.Offer.setResellerQualifications*"
+fullName: "com.microsoft.samples.noneascii.Offer.setResellerQualifications"
+name: "setResellerQualifications"
+nameWithType: "Offer.setResellerQualifications"
+members:
+- uid: "com.microsoft.samples.noneascii.Offer.setResellerQualifications(java.lang.String[])"
+ fullName: "com.microsoft.samples.noneascii.Offer.setResellerQualifications(String[] value)"
+ name: "setResellerQualifications(String[] value)"
+ nameWithType: "Offer.setResellerQualifications(String[] value)"
+ parameters:
+ - name: "value"
+ type: "[]"
+ syntax: "public void setResellerQualifications(String[] value)"
+type: "method"
+metadata: {}
+package: "com.microsoft.samples.noneascii"
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.yml
new file mode 100644
index 0000000..a31822d
--- /dev/null
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.Offer.yml
@@ -0,0 +1,31 @@
+### YamlMime:JavaType
+uid: "com.microsoft.samples.noneascii.Offer"
+fullName: "com.microsoft.samples.noneascii.Offer"
+name: "Offer"
+nameWithType: "Offer"
+summary: "代表客户可用的产品形式"
+inheritances:
+- ""
+inheritedMembers:
+- "java.lang.Object.clone()"
+- "java.lang.Object.equals(java.lang.Object)"
+- "java.lang.Object.finalize()"
+- "java.lang.Object.getClass()"
+- "java.lang.Object.hashCode()"
+- "java.lang.Object.notify()"
+- "java.lang.Object.notifyAll()"
+- "java.lang.Object.toString()"
+- "java.lang.Object.wait()"
+- "java.lang.Object.wait(long)"
+- "java.lang.Object.wait(long,int)"
+syntax: "public class Offer"
+constructors:
+- "com.microsoft.samples.noneascii.Offer.Offer()"
+methods:
+- "com.microsoft.samples.noneascii.Offer.getReselleeQualifications()"
+- "com.microsoft.samples.noneascii.Offer.getResellerQualifications()"
+- "com.microsoft.samples.noneascii.Offer.setReselleeQualifications(java.lang.String[])"
+- "com.microsoft.samples.noneascii.Offer.setResellerQualifications(java.lang.String[])"
+type: "class"
+metadata: {}
+package: "com.microsoft.samples.noneascii"
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.yml
new file mode 100644
index 0000000..b7ae9d5
--- /dev/null
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.noneascii.yml
@@ -0,0 +1,8 @@
+### YamlMime:JavaPackage
+uid: "com.microsoft.samples.noneascii"
+fullName: "com.microsoft.samples.noneascii"
+name: "com.microsoft.samples.noneascii"
+classes:
+- "com.microsoft.samples.noneascii.Offer"
+metadata: {}
+package: "com.microsoft.samples.noneascii"
diff --git a/src/test/resources/expected-generated-files/com.microsoft.samples.subpackage.Person.yml b/src/test/resources/expected-generated-files/com.microsoft.samples.subpackage.Person.yml
index 09fa43c..7fe6605 100644
--- a/src/test/resources/expected-generated-files/com.microsoft.samples.subpackage.Person.yml
+++ b/src/test/resources/expected-generated-files/com.microsoft.samples.subpackage.Person.yml
@@ -3,7 +3,7 @@ uid: "com.microsoft.samples.subpackage.Person"
fullName: "com.microsoft.samples.subpackage.Person"
name: "Person"
nameWithType: "Person"
-summary: "Class that describes some person This comment has links to:\n\n * Owner class \n * Its inner class \n * Its method \n * Its method without params \n * Its public field \n * Another class which used here \n * Another class which not used here \n * Broken link \n * Plain link \n * Link that starts from '\\#' \n * Link with label \n\nThis is an \"at\" symbol: @"
+summary: "Class that describes some person This comment has links to:\n\n * Owner class \n * Its inner class \n * Its method \n * Its method without params \n * Its public field \n * Another class which used here \n * Another class which not used here \n * Broken link \n * Plain link \n * Link that starts from '#' \n * Link with label \n\nThis is an \"at\" symbol: @"
inheritances:
- ""
inheritedMembers:
diff --git a/src/test/resources/expected-generated-files/toc.yml b/src/test/resources/expected-generated-files/toc.yml
index 63b653f..33ebee3 100644
--- a/src/test/resources/expected-generated-files/toc.yml
+++ b/src/test/resources/expected-generated-files/toc.yml
@@ -149,6 +149,27 @@
- uid: "com.microsoft.samples.commentinheritance.Viviparous.giveBirth*"
name: "giveBirth"
type: "method"
+- uid: "com.microsoft.samples.noneascii"
+ name: "com.microsoft.samples.noneascii"
+ items:
+ - uid: "com.microsoft.samples.noneascii.Offer"
+ name: "Offer"
+ items:
+ - uid: "com.microsoft.samples.noneascii.Offer.Offer*"
+ name: "Offer"
+ type: "constructor"
+ - uid: "com.microsoft.samples.noneascii.Offer.getReselleeQualifications*"
+ name: "getReselleeQualifications"
+ type: "method"
+ - uid: "com.microsoft.samples.noneascii.Offer.getResellerQualifications*"
+ name: "getResellerQualifications"
+ type: "method"
+ - uid: "com.microsoft.samples.noneascii.Offer.setReselleeQualifications*"
+ name: "setReselleeQualifications"
+ type: "method"
+ - uid: "com.microsoft.samples.noneascii.Offer.setResellerQualifications*"
+ name: "setResellerQualifications"
+ type: "method"
- uid: "com.microsoft.samples.offers"
name: "com.microsoft.samples.offers"
items: