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: