1.1 --- a/src/share/classes/com/sun/tools/javadoc/Start.java Sat Oct 04 22:59:05 2008 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javadoc/Start.java Mon Oct 06 16:57:15 2008 -0700 1.3 @@ -54,10 +54,8 @@ 1.4 /** Context for this invocation. */ 1.5 private final Context context; 1.6 1.7 - /** 1.8 - * Name of the program 1.9 - */ 1.10 private final String defaultDocletClassName; 1.11 + private final ClassLoader docletParentClassLoader; 1.12 1.13 private static final String javadocName = "javadoc"; 1.14 1.15 @@ -91,21 +89,45 @@ 1.16 PrintWriter warnWriter, 1.17 PrintWriter noticeWriter, 1.18 String defaultDocletClassName) { 1.19 + this(programName, errWriter, warnWriter, noticeWriter, defaultDocletClassName, null); 1.20 + } 1.21 + 1.22 + Start(String programName, 1.23 + PrintWriter errWriter, 1.24 + PrintWriter warnWriter, 1.25 + PrintWriter noticeWriter, 1.26 + String defaultDocletClassName, 1.27 + ClassLoader docletParentClassLoader) { 1.28 context = new Context(); 1.29 messager = new Messager(context, programName, errWriter, warnWriter, noticeWriter); 1.30 this.defaultDocletClassName = defaultDocletClassName; 1.31 + this.docletParentClassLoader = docletParentClassLoader; 1.32 } 1.33 1.34 Start(String programName, String defaultDocletClassName) { 1.35 + this(programName, defaultDocletClassName, null); 1.36 + } 1.37 + 1.38 + Start(String programName, String defaultDocletClassName, 1.39 + ClassLoader docletParentClassLoader) { 1.40 context = new Context(); 1.41 messager = new Messager(context, programName); 1.42 this.defaultDocletClassName = defaultDocletClassName; 1.43 + this.docletParentClassLoader = docletParentClassLoader; 1.44 + } 1.45 + 1.46 + Start(String programName, ClassLoader docletParentClassLoader) { 1.47 + this(programName, standardDocletClassName, docletParentClassLoader); 1.48 } 1.49 1.50 Start(String programName) { 1.51 this(programName, standardDocletClassName); 1.52 } 1.53 1.54 + Start(ClassLoader docletParentClassLoader) { 1.55 + this(javadocName, docletParentClassLoader); 1.56 + } 1.57 + 1.58 Start() { 1.59 this(javadocName); 1.60 } 1.61 @@ -390,7 +412,8 @@ 1.62 1.63 // attempt to find doclet 1.64 docletInvoker = new DocletInvoker(messager, 1.65 - docletClassName, docletPath); 1.66 + docletClassName, docletPath, 1.67 + docletParentClassLoader); 1.68 } 1.69 1.70 private void setFilter(long filterBits) {