Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_langtools
提交
838f1373
D
dragonwell8_langtools
项目概览
openanolis
/
dragonwell8_langtools
通知
0
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_langtools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
838f1373
编写于
10月 06, 2008
作者:
J
jjg
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
6748546: javadoc API should be classloader-friendly
Reviewed-by: bpatel
上级
1b64067c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
113 addition
and
7 deletion
+113
-7
src/share/classes/com/sun/tools/javadoc/DocletInvoker.java
src/share/classes/com/sun/tools/javadoc/DocletInvoker.java
+6
-3
src/share/classes/com/sun/tools/javadoc/Main.java
src/share/classes/com/sun/tools/javadoc/Main.java
+80
-0
src/share/classes/com/sun/tools/javadoc/Start.java
src/share/classes/com/sun/tools/javadoc/Start.java
+27
-4
未找到文件。
src/share/classes/com/sun/tools/javadoc/DocletInvoker.java
浏览文件 @
838f1373
...
...
@@ -32,7 +32,6 @@ import static com.sun.javadoc.LanguageVersion.*;
import
com.sun.tools.javac.util.List
;
import
java.net.*
;
import
java.lang.OutOfMemoryError
;
import
java.lang.reflect.Method
;
import
java.lang.reflect.Modifier
;
import
java.lang.reflect.InvocationTargetException
;
...
...
@@ -70,7 +69,8 @@ public class DocletInvoker {
}
public
DocletInvoker
(
Messager
messager
,
String
docletClassName
,
String
docletPath
)
{
String
docletClassName
,
String
docletPath
,
ClassLoader
docletParentClassLoader
)
{
this
.
messager
=
messager
;
this
.
docletClassName
=
docletClassName
;
...
...
@@ -82,7 +82,10 @@ public class DocletInvoker {
cpString
=
appendPath
(
System
.
getProperty
(
"java.class.path"
),
cpString
);
cpString
=
appendPath
(
docletPath
,
cpString
);
URL
[]
urls
=
pathToURLs
(
cpString
);
appClassLoader
=
new
URLClassLoader
(
urls
);
if
(
docletParentClassLoader
==
null
)
appClassLoader
=
new
URLClassLoader
(
urls
);
else
appClassLoader
=
new
URLClassLoader
(
urls
,
docletParentClassLoader
);
// attempt to find doclet
Class
dc
=
null
;
...
...
src/share/classes/com/sun/tools/javadoc/Main.java
浏览文件 @
838f1373
...
...
@@ -59,6 +59,21 @@ public class Main {
return
jdoc
.
begin
(
args
);
}
/**
* Programmatic interface.
* @param args The command line parameters.
* @param docletParentClassLoader The parent class loader used when
* creating the doclet classloader. If null, the class loader used
* to instantiate doclets will be created without specifying a parent
* class loader.
* @return The return code.
* @since 1.7
*/
public
static
int
execute
(
ClassLoader
docletParentClassLoader
,
String
...
args
)
{
Start
jdoc
=
new
Start
(
docletParentClassLoader
);
return
jdoc
.
begin
(
args
);
}
/**
* Programmatic interface.
* @param programName Name of the program (for error messages).
...
...
@@ -70,6 +85,22 @@ public class Main {
return
jdoc
.
begin
(
args
);
}
/**
* Programmatic interface.
* @param programName Name of the program (for error messages).
* @param args The command line parameters.
* @param docletParentClassLoader The parent class loader used when
* creating the doclet classloader. If null, the class loader used
* to instantiate doclets will be created without specifying a parent
* class loader.
* @return The return code.
* @since 1.7
*/
public
static
int
execute
(
String
programName
,
ClassLoader
docletParentClassLoader
,
String
...
args
)
{
Start
jdoc
=
new
Start
(
programName
,
docletParentClassLoader
);
return
jdoc
.
begin
(
args
);
}
/**
* Programmatic interface.
* @param programName Name of the program (for error messages).
...
...
@@ -84,6 +115,26 @@ public class Main {
return
jdoc
.
begin
(
args
);
}
/**
* Programmatic interface.
* @param programName Name of the program (for error messages).
* @param defaultDocletClassName Fully qualified class name.
* @param docletParentClassLoader The parent class loader used when
* creating the doclet classloader. If null, the class loader used
* to instantiate doclets will be created without specifying a parent
* class loader.
* @param args The command line parameters.
* @return The return code.
* @since 1.7
*/
public
static
int
execute
(
String
programName
,
String
defaultDocletClassName
,
ClassLoader
docletParentClassLoader
,
String
...
args
)
{
Start
jdoc
=
new
Start
(
programName
,
defaultDocletClassName
,
docletParentClassLoader
);
return
jdoc
.
begin
(
args
);
}
/**
* Programmatic interface.
* @param programName Name of the program (for error messages).
...
...
@@ -105,4 +156,33 @@ public class Main {
defaultDocletClassName
);
return
jdoc
.
begin
(
args
);
}
/**
* Programmatic interface.
* @param programName Name of the program (for error messages).
* @param errWriter PrintWriter to receive error messages.
* @param warnWriter PrintWriter to receive error messages.
* @param noticeWriter PrintWriter to receive error messages.
* @param defaultDocletClassName Fully qualified class name.
* @param docletParentClassLoader The parent class loader used when
* creating the doclet classloader. If null, the class loader used
* to instantiate doclets will be created without specifying a parent
* class loader.
* @param args The command line parameters.
* @return The return code.
* @since 1.7
*/
public
static
int
execute
(
String
programName
,
PrintWriter
errWriter
,
PrintWriter
warnWriter
,
PrintWriter
noticeWriter
,
String
defaultDocletClassName
,
ClassLoader
docletParentClassLoader
,
String
...
args
)
{
Start
jdoc
=
new
Start
(
programName
,
errWriter
,
warnWriter
,
noticeWriter
,
defaultDocletClassName
,
docletParentClassLoader
);
return
jdoc
.
begin
(
args
);
}
}
src/share/classes/com/sun/tools/javadoc/Start.java
浏览文件 @
838f1373
...
...
@@ -54,10 +54,8 @@ class Start {
/** Context for this invocation. */
private
final
Context
context
;
/**
* Name of the program
*/
private
final
String
defaultDocletClassName
;
private
final
ClassLoader
docletParentClassLoader
;
private
static
final
String
javadocName
=
"javadoc"
;
...
...
@@ -91,21 +89,45 @@ class Start {
PrintWriter
warnWriter
,
PrintWriter
noticeWriter
,
String
defaultDocletClassName
)
{
this
(
programName
,
errWriter
,
warnWriter
,
noticeWriter
,
defaultDocletClassName
,
null
);
}
Start
(
String
programName
,
PrintWriter
errWriter
,
PrintWriter
warnWriter
,
PrintWriter
noticeWriter
,
String
defaultDocletClassName
,
ClassLoader
docletParentClassLoader
)
{
context
=
new
Context
();
messager
=
new
Messager
(
context
,
programName
,
errWriter
,
warnWriter
,
noticeWriter
);
this
.
defaultDocletClassName
=
defaultDocletClassName
;
this
.
docletParentClassLoader
=
docletParentClassLoader
;
}
Start
(
String
programName
,
String
defaultDocletClassName
)
{
this
(
programName
,
defaultDocletClassName
,
null
);
}
Start
(
String
programName
,
String
defaultDocletClassName
,
ClassLoader
docletParentClassLoader
)
{
context
=
new
Context
();
messager
=
new
Messager
(
context
,
programName
);
this
.
defaultDocletClassName
=
defaultDocletClassName
;
this
.
docletParentClassLoader
=
docletParentClassLoader
;
}
Start
(
String
programName
,
ClassLoader
docletParentClassLoader
)
{
this
(
programName
,
standardDocletClassName
,
docletParentClassLoader
);
}
Start
(
String
programName
)
{
this
(
programName
,
standardDocletClassName
);
}
Start
(
ClassLoader
docletParentClassLoader
)
{
this
(
javadocName
,
docletParentClassLoader
);
}
Start
()
{
this
(
javadocName
);
}
...
...
@@ -390,7 +412,8 @@ class Start {
// attempt to find doclet
docletInvoker
=
new
DocletInvoker
(
messager
,
docletClassName
,
docletPath
);
docletClassName
,
docletPath
,
docletParentClassLoader
);
}
private
void
setFilter
(
long
filterBits
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录