*/
class JavadocRunner {
- static boolean has14ToolsAvailable() {
- try {
- Class jdMainClass = com.sun.tools.javadoc.Main.class;
- Class[] paramTypes = new Class[] { String[].class };
- jdMainClass.getMethod("execute", paramTypes);
- } catch (NoClassDefFoundError e) {
- return false;
- } catch (UnsupportedClassVersionError e) {
- return false;
- } catch (NoSuchMethodException e) {
- return false;
- }
- return true;
- }
-
- static void callJavadoc(String[] javadocargs) {
- // final SecurityManager defaultSecurityManager = System.getSecurityManager();
- //
- // System.setSecurityManager( new SecurityManager() {
- // public void checkExit(int status) {
- // if (status == 0) {
- // throw new SecurityException();
- // }
- // else {
- // System.setSecurityManager(defaultSecurityManager);
- // //System.out.println("Error: javadoc exited unexpectedly");
- // System.exit(0);
- // throw new SecurityException();
- // }
- // }
- // public void checkPermission( java.security.Permission permission ) {
- // if ( defaultSecurityManager != null )
- // defaultSecurityManager.checkPermission( permission );
- // }
- // public void checkPermission( java.security.Permission permission,
- // Object context ) {
- // if ( defaultSecurityManager != null )
- // defaultSecurityManager.checkPermission( permission, context );
- // }
- // } );
-
- try {
- // for JDK 1.4 and above call the execute method...
- Class jdMainClass = com.sun.tools.javadoc.Main.class;
- Method executeMethod = null;
- try {
- Class[] paramTypes = new Class[] { String[].class };
- executeMethod = jdMainClass.getMethod("execute", paramTypes);
- } catch (NoSuchMethodException e) {
- com.sun.tools.javadoc.Main.main(javadocargs);
- // throw new UnsupportedOperationException("ajdoc requires a tools library from JDK 1.4 or later.");
- }
- try {
- executeMethod.invoke(null, new Object[] { javadocargs });
- } catch (IllegalArgumentException e1) {
- throw new RuntimeException("Failed to invoke javadoc");
- } catch (IllegalAccessException e1) {
- throw new RuntimeException("Failed to invoke javadoc");
- } catch (InvocationTargetException e1) {
- throw new RuntimeException("Failed to invoke javadoc");
- }
- // main method is documented as calling System.exit() - which stops us dead in our tracks
- // com.sun.tools.javadoc.Main.main( javadocargs );
- } catch (SecurityException se) {
- // Do nothing since we expect it to be thrown
- // System.out.println( ">> se: " + se.getMessage() );
- }
- // Set the security manager back
- // System.setSecurityManager(defaultSecurityManager);
- }
-
public static void callJavadocViaToolProvider(Vector<String> options, List<String> files) {
DocumentationTool doctool = ToolProvider.getSystemDocumentationTool();
StandardJavaFileManager fm = doctool.getStandardFileManager(null, null, null);
import org.aspectj.bridge.IMessage;
import org.aspectj.bridge.Version;
import org.aspectj.util.FileUtil;
-import org.aspectj.util.LangUtil;
/**
* This is an old implementation of ajdoc that does not use an OO style. However, it does the job, and should serve to evolve a
public static void main(String[] args) {
clearState();
- if (!JavadocRunner.has14ToolsAvailable()) {
- System.err.println("ajdoc requires a JDK 1.4 or later tools jar - exiting");
- aborted = true;
- return;
- }
// STEP 1: parse the command line and do other global setup
sourcepath.addElement("."); // add the current directory to the classapth
for (int k = 0; k < fileList.size(); k++) {
javadocargs[numExtraArgs + options.size() + packageList.size() + k] = fileList.elementAt(k);
}
- if (LangUtil.is19VMOrGreater()) {
- options = new Vector<>();
- for (String a: javadocargs) {
- options.add(a);
- }
+ options = new Vector<>();
+ for (String a: javadocargs) {
+ options.add(a);
}
} else {
javadocargs = new String[options.size() + signatureFiles.length];
files.add(StructureUtil.translateAjPathName(signatureFile.getCanonicalPath()));
}
}
- if (LangUtil.is19VMOrGreater()) {
- JavadocRunner.callJavadocViaToolProvider(options, files);
- } else {
- JavadocRunner.callJavadoc(javadocargs);
- }
+ JavadocRunner.callJavadocViaToolProvider(options, files);
}
/**