Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
341684c8
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
341684c8
编写于
4月 23, 2015
作者:
A
aefimov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
8073357: schema1.xsd has wrong content. Sequence of the enum values has been changed
Reviewed-by: joehw, lancea
上级
52ebcc59
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
46 addition
and
20 deletion
+46
-20
test/javax/xml/ws/8046817/GenerateEnumSchema.java
test/javax/xml/ws/8046817/GenerateEnumSchema.java
+44
-18
test/javax/xml/ws/8046817/TestEnumType.java
test/javax/xml/ws/8046817/TestEnumType.java
+2
-2
未找到文件。
test/javax/xml/ws/8046817/GenerateEnumSchema.java
浏览文件 @
341684c8
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014,
2015,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -23,57 +23,83 @@
/*
* @test
* @bug 8046817
* @summary schemagen fails to generate xsd for enum types
* @bug 8046817 8073357
* @summary schemagen fails to generate xsd for enum types.
* Check that order of Enum values is preserved.
* @run main/othervm GenerateEnumSchema
*/
import
java.io.BufferedReader
;
import
java.io.File
;
import
java.io.FileNotFoundException
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.nio.file.Files
;
import
java.nio.file.Paths
;
import
java.util.
Scanner
;
import
java.util.
stream.Collectors
;
public
class
GenerateEnumSchema
{
private
static
final
String
SCHEMA_OUTPUT_FILENAME
=
"schema1.xsd"
;
private
static
final
File
schemaOutputFile
=
new
File
(
SCHEMA_OUTPUT_FILENAME
);
private
static
final
String
[]
expectedEnums
=
{
"\"FIRST\""
,
"\"ONE\""
,
"\"TWO\""
,
"\"THREE\""
,
"\"FOUR\""
,
"\"FIVE\""
,
"\"SIX\""
,
"\"LAST\""
};
private
static
String
schemaContent
=
""
;
public
static
void
main
(
String
[]
args
)
throws
Exception
{
public
static
void
main
(
String
[]
args
)
throws
Exception
,
IOException
{
//Check schema generation for class type
runSchemaGen
(
"TestClassType.java"
);
checkIfSchemaGenerated
();
readSchemaContent
();
checkSchemaContent
(
"<xs:complexType name=\"testClassType\">"
);
checkSchemaContent
(
"<xs:element name=\"a\" type=\"xs:int\"/>"
);
schemaOutputFile
.
delete
();
//Check schema generation for enum type
runSchemaGen
(
"TestEnumType.java"
);
checkIfSchemaGenerated
();
readSchemaContent
();
//Check if Enum type schema is generated
checkSchemaContent
(
"<xs:simpleType name=\"testEnumType\">"
);
checkSchemaContent
(
"<xs:enumeration value=\"ONE\"/>"
);
checkSchemaContent
(
"<xs:enumeration value=\"TWO\"/>"
);
checkSchemaContent
(
"<xs:enumeration value=\"THREE\"/>"
);
//Check the sequence of enum values order
checkEnumOrder
();
schemaOutputFile
.
delete
();
}
// Check if schema file successfully generated by schemagen
private
static
void
checkIfSchemaGenerated
()
{
if
(!
schemaOutputFile
.
exists
())
{
throw
new
RuntimeException
(
"FAIL:"
+
SCHEMA_OUTPUT_FILENAME
+
" was not generated by schemagen tool"
);
}
}
private
static
void
checkSchemaContent
(
String
exp_token
)
throws
FileNotFoundException
{
System
.
out
.
print
(
"Check if generated schema contains '"
+
exp_token
+
"' string: "
);
try
(
Scanner
scanner
=
new
Scanner
(
schemaOutputFile
))
{
if
(
scanner
.
findWithinHorizon
(
exp_token
,
0
)
!=
null
)
{
System
.
out
.
println
(
"OK"
);
return
;
}
//Read schema content from file
private
static
void
readSchemaContent
()
throws
Exception
{
schemaContent
=
Files
.
lines
(
schemaOutputFile
.
toPath
()).
collect
(
Collectors
.
joining
(
""
));
}
// Check if schema file contains specific string
private
static
void
checkSchemaContent
(
String
expContent
)
{
System
.
out
.
print
(
"Check if generated schema contains '"
+
expContent
+
"' string: "
);
if
(
schemaContent
.
contains
(
expContent
))
{
System
.
out
.
println
(
"OK"
);
return
;
}
System
.
out
.
println
(
"FAIL"
);
throw
new
RuntimeException
(
"The '"
+
exp_token
+
"' is not found in generated schema"
);
throw
new
RuntimeException
(
"The '"
+
expContent
+
"' is not found in generated schema"
);
}
// Check if the generated schema contains all enum constants
// and their order is preserved
private
static
void
checkEnumOrder
()
throws
Exception
{
int
prevElem
=
-
1
;
for
(
String
elem
:
expectedEnums
)
{
int
curElem
=
schemaContent
.
indexOf
(
elem
);
System
.
out
.
println
(
elem
+
" position = "
+
curElem
);
if
(
curElem
<
prevElem
)
{
throw
new
RuntimeException
(
"FAIL: Enum values order is incorrect or "
+
elem
+
" element is not found"
);
}
prevElem
=
curElem
;
}
}
private
static
String
getClassFilePath
(
String
filename
)
{
...
...
test/javax/xml/ws/8046817/TestEnumType.java
浏览文件 @
341684c8
/*
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014,
2015,
Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
...
...
@@ -25,5 +25,5 @@ import javax.xml.bind.annotation.XmlEnum;
@XmlEnum
(
String
.
class
)
public
enum
TestEnumType
{
ONE
,
TWO
,
THREE
FIRST
,
ONE
,
TWO
,
THREE
,
FOUR
,
FIVE
,
SIX
,
LAST
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录