aboutsummaryrefslogtreecommitdiffstats
path: root/ajdoc
diff options
context:
space:
mode:
Diffstat (limited to 'ajdoc')
-rw-r--r--ajdoc/src/org/aspectj/tools/ajdoc/HtmlDecorator.java30
-rw-r--r--ajdoc/src/org/aspectj/tools/ajdoc/JavadocRunner.java10
-rw-r--r--ajdoc/src/org/aspectj/tools/ajdoc/Main.java46
-rw-r--r--ajdoc/src/org/aspectj/tools/ajdoc/StructureUtil.java41
-rw-r--r--ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java6
-rw-r--r--ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java2
6 files changed, 71 insertions, 64 deletions
diff --git a/ajdoc/src/org/aspectj/tools/ajdoc/HtmlDecorator.java b/ajdoc/src/org/aspectj/tools/ajdoc/HtmlDecorator.java
index f873c3e55..ec492fce9 100644
--- a/ajdoc/src/org/aspectj/tools/ajdoc/HtmlDecorator.java
+++ b/ajdoc/src/org/aspectj/tools/ajdoc/HtmlDecorator.java
@@ -48,7 +48,7 @@ class HtmlDecorator {
private static final String ITD_FIELD_SUMMARY = "Inter-Type Field Summary";
private static final String ITD_CONSTRUCTOR_SUMMARY = "Inter-Type Constructor Summary";
- static List visibleFileList = new ArrayList();
+ static List<String> visibleFileList = new ArrayList<String>();
static Hashtable declIDTable = null;
static File rootDir = null;
static String docVisibilityModifier;
@@ -291,22 +291,22 @@ class HtmlDecorator {
}
static void addAspectDocumentation(IProgramElement node, StringBuffer fileBuffer, int index) {
- List pointcuts = new ArrayList();
- List advice = new ArrayList();
- List declares = new ArrayList();
- List methodsDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.INTER_TYPE_METHOD);
+ List<IProgramElement> pointcuts = new ArrayList<IProgramElement>();
+ List<IProgramElement> advice = new ArrayList<IProgramElement>();
+ List<IProgramElement> declares = new ArrayList<IProgramElement>();
+ List<IProgramElement> methodsDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.INTER_TYPE_METHOD);
if (methodsDeclaredOn != null && !methodsDeclaredOn.isEmpty()) {
insertDeclarationsSummary(fileBuffer, methodsDeclaredOn, ITD_METHOD_SUMMARY, index);
}
- List fieldsDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.INTER_TYPE_FIELD);
+ List<IProgramElement> fieldsDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.INTER_TYPE_FIELD);
if (fieldsDeclaredOn != null && !fieldsDeclaredOn.isEmpty()) {
insertDeclarationsSummary(fileBuffer, fieldsDeclaredOn, ITD_FIELD_SUMMARY, index);
}
- List constDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.INTER_TYPE_CONSTRUCTOR);
+ List<IProgramElement> constDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.INTER_TYPE_CONSTRUCTOR);
if (fieldsDeclaredOn != null && !constDeclaredOn.isEmpty()) {
insertDeclarationsSummary(fileBuffer, constDeclaredOn, ITD_CONSTRUCTOR_SUMMARY, index);
}
- for (Iterator it = node.getChildren().iterator(); it.hasNext();) {
+ for (Iterator<IProgramElement> it = node.getChildren().iterator(); it.hasNext();) {
IProgramElement member = (IProgramElement) it.next();
if (member.getKind().equals(IProgramElement.Kind.POINTCUT)) {
pointcuts.add(member);
@@ -329,17 +329,17 @@ class HtmlDecorator {
insertDeclarationsDetails(fileBuffer, advice, ADVICE_DETAIL, index);
}
// add the 'aspect declarations' information against the type
- List parentsDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.DECLARE_PARENTS);
+ List<IProgramElement> parentsDeclaredOn = StructureUtil.getDeclareInterTypeTargets(node, IProgramElement.Kind.DECLARE_PARENTS);
if (parentsDeclaredOn != null && parentsDeclaredOn.size() > 0) {
decorateDocWithRel(node, fileBuffer, index, parentsDeclaredOn, HtmlRelationshipKind.ASPECT_DECLARATIONS);
}
// add the 'annotated by' information against the type
- List annotatedBy = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE_INTER_TYPE, "annotated by");
+ List<String> annotatedBy = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE_INTER_TYPE, "annotated by");
if (annotatedBy != null && annotatedBy.size() > 0) {
decorateDocWithRel(node, fileBuffer, index, annotatedBy, HtmlRelationshipKind.ANNOTATED_BY);
}
// add the 'advised by' information against the type
- List advisedBy = StructureUtil.getTargets(node, IRelationship.Kind.ADVICE);
+ List<String> advisedBy = StructureUtil.getTargets(node, IRelationship.Kind.ADVICE);
if (advisedBy != null && advisedBy.size() > 0) {
decorateDocWithRel(node, fileBuffer, index, advisedBy, HtmlRelationshipKind.ADVISED_BY);
}
@@ -621,16 +621,16 @@ class HtmlDecorator {
}
static void decorateMemberDocumentation(IProgramElement node, StringBuffer fileContentsBuffer, int index) {
- List targets = StructureUtil.getTargets(node, IRelationship.Kind.ADVICE);
+ List<String> targets = StructureUtil.getTargets(node, IRelationship.Kind.ADVICE);
decorateDocWithRel(node, fileContentsBuffer, index, targets, HtmlRelationshipKind.ADVISED_BY);
- List warnings = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE, "matches declare");
+ List<String> warnings = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE, "matches declare");
decorateDocWithRel(node, fileContentsBuffer, index, warnings, HtmlRelationshipKind.MATCHES_DECLARE);
- List softenedBy = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE, "softened by");
+ List<String> softenedBy = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE, "softened by");
decorateDocWithRel(node, fileContentsBuffer, index, softenedBy, HtmlRelationshipKind.SOFTENED_BY);
- List annotatedBy = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE_INTER_TYPE, "annotated by");
+ List<String> annotatedBy = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE_INTER_TYPE, "annotated by");
decorateDocWithRel(node, fileContentsBuffer, index, annotatedBy, HtmlRelationshipKind.ANNOTATED_BY);
}
diff --git a/ajdoc/src/org/aspectj/tools/ajdoc/JavadocRunner.java b/ajdoc/src/org/aspectj/tools/ajdoc/JavadocRunner.java
index b0ab3cd21..37b727175 100644
--- a/ajdoc/src/org/aspectj/tools/ajdoc/JavadocRunner.java
+++ b/ajdoc/src/org/aspectj/tools/ajdoc/JavadocRunner.java
@@ -14,9 +14,12 @@
package org.aspectj.tools.ajdoc;
+import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
+import org.aspectj.util.LangUtil;
+
/**
* @author Mik Kersten
*/
@@ -62,7 +65,12 @@ class JavadocRunner {
// defaultSecurityManager.checkPermission( permission, context );
// }
// } );
-
+
+ // Need to do something different on Java > 9 due to removal of standard doclet I think
+// if (LangUtil.is19VMOrGreater()) {
+// // Not visible according to module rules...
+// clazz = Class.forName("jdk.javadoc.internal.tool.Main");
+// }
try {
// for JDK 1.4 and above call the execute method...
Class jdMainClass = com.sun.tools.javadoc.Main.class;
diff --git a/ajdoc/src/org/aspectj/tools/ajdoc/Main.java b/ajdoc/src/org/aspectj/tools/ajdoc/Main.java
index 5c9047dcb..e8f1472b5 100644
--- a/ajdoc/src/org/aspectj/tools/ajdoc/Main.java
+++ b/ajdoc/src/org/aspectj/tools/ajdoc/Main.java
@@ -47,24 +47,24 @@ public class Main implements Config {
private static final String FAIL_MESSAGE = "> compile failed, exiting ajdoc";
/** Command line options. */
- static Vector options;
+ static Vector<String> options;
/** Options to pass to ajc. */
- static Vector ajcOptions;
+ static Vector<String> ajcOptions;
/** All of the files to be processed by ajdoc. */
- static Vector filenames;
+ static Vector<String> filenames;
/** List of files to pass to javadoc. */
- static Vector fileList;
+ static Vector<String> fileList;
/** List of packages to pass to javadoc. */
- static Vector packageList;
+ static Vector<String> packageList;
/** Default to package visiblity. */
static String docModifier = "package";
- static Vector sourcepath;
+ static Vector<String> sourcepath;
static boolean verboseMode = false;
static boolean packageMode = false;
@@ -85,13 +85,13 @@ public class Main implements Config {
private static String outputWorkingDir = Config.WORKING_DIR;
public static void clearState() {
- options = new Vector();
- ajcOptions = new Vector();
- filenames = new Vector();
- fileList = new Vector();
- packageList = new Vector();
+ options = new Vector<String>();
+ ajcOptions = new Vector<String>();
+ filenames = new Vector<String>();
+ fileList = new Vector<String>();
+ packageList = new Vector<String>();
docModifier = "package";
- sourcepath = new Vector();
+ sourcepath = new Vector<String>();
verboseMode = false;
packageMode = false;
rootDir = null;
@@ -169,7 +169,7 @@ public class Main implements Config {
* package-summary properly.
*/
private static void packageHTML(AsmManager model, File[] inputFiles) throws IOException {
- ArrayList dirList = new ArrayList();
+ ArrayList<String> dirList = new ArrayList<String>();
for (int i = 0; i < inputFiles.length; i++) {
String packageName = StructureUtil.getPackageDeclarationFromFile(model, inputFiles[i]);
// Only copy the package.html file once.
@@ -192,7 +192,7 @@ public class Main implements Config {
String pathName = outputWorkingDir + File.separator + packageName.replace('.', File.separatorChar);
File packageDir = new File(pathName);
if (!packageDir.exists()) {
- dirList.add(packageDir);
+ dirList.add(packageName);
continue;
}
packageName = packageName.replace('.', '/'); // !!!
@@ -273,7 +273,6 @@ public class Main implements Config {
javadocargs[options.size() + k] = StructureUtil.translateAjPathName(signatureFiles[k].getCanonicalPath());
}
}
-
JavadocRunner.callJavadoc(javadocargs);
}
@@ -345,8 +344,8 @@ public class Main implements Config {
}
}
- static Vector getSourcePath() {
- Vector sourcePath = new Vector();
+ static Vector<String> getSourcePath() {
+ Vector<String> sourcePath = new Vector<String>();
boolean found = false;
for (int i = 0; i < options.size(); i++) {
String currOption = (String) options.elementAt(i);
@@ -455,14 +454,14 @@ public class Main implements Config {
String line = "";
line = br.readLine();
StringTokenizer st = new StringTokenizer(line, " ");
- List argList = new ArrayList();
+ List<String> argList = new ArrayList<String>();
while (st.hasMoreElements()) {
- argList.add(st.nextElement());
+ argList.add(st.nextToken());
}
// System.err.println(argList);
args = new String[argList.size()];
int counter = 0;
- for (Iterator it = argList.iterator(); it.hasNext();) {
+ for (Iterator<String> it = argList.iterator(); it.hasNext();) {
args[counter] = (String) it.next();
counter++;
}
@@ -474,7 +473,7 @@ public class Main implements Config {
ioe.printStackTrace();
}
}
- List vargs = new LinkedList(Arrays.asList(args));
+ List<String> vargs = new LinkedList<String>(Arrays.asList(args));
vargs.add("-Xset:minimalModel=false");
parseArgs(vargs, new File(".")); // !!!
@@ -488,7 +487,7 @@ public class Main implements Config {
arg = arg + File.pathSeparator; // makes things easier for ourselves
StringTokenizer tokenizer = new StringTokenizer(arg, File.pathSeparator);
while (tokenizer.hasMoreElements()) {
- sourcepath.addElement(tokenizer.nextElement());
+ sourcepath.addElement(tokenizer.nextToken());
}
}
@@ -705,7 +704,7 @@ public class Main implements Config {
}
static void expandAtSignFile(String filename, File currentWorkingDir) {
- List result = new LinkedList();
+ List<String> result = new LinkedList<String>();
File atFile = qualifiedFile(filename, currentWorkingDir);
String atFileParent = atFile.getParent();
@@ -730,6 +729,7 @@ public class Main implements Config {
continue;
result.add(line);
}
+ stream.close();
} catch (IOException e) {
System.err.println("Error while reading the @ file " + atFile.getPath() + ".\n" + e);
System.exit(-1);
diff --git a/ajdoc/src/org/aspectj/tools/ajdoc/StructureUtil.java b/ajdoc/src/org/aspectj/tools/ajdoc/StructureUtil.java
index 6f9ad7790..3d866b625 100644
--- a/ajdoc/src/org/aspectj/tools/ajdoc/StructureUtil.java
+++ b/ajdoc/src/org/aspectj/tools/ajdoc/StructureUtil.java
@@ -31,7 +31,7 @@ public class StructureUtil {
*
* @return null if a relationship of that kind is not found
*/
- public static List /* String */getTargets(IProgramElement node, IRelationship.Kind kind) {
+ public static List<String> getTargets(IProgramElement node, IRelationship.Kind kind) {
return getTargets(node, kind, null);
}
@@ -41,21 +41,21 @@ public class StructureUtil {
*
* @return null if a relationship of that kind is not found
*/
- public static List /* String */getTargets(IProgramElement node, IRelationship.Kind kind, String relName) {
- List relations = new ArrayList();
- List rels = node.getModel().getRelationshipMap().get(node);
+ public static List<String> getTargets(IProgramElement node, IRelationship.Kind kind, String relName) {
+ List<IRelationship> relations = new ArrayList<IRelationship>();
+ List<IRelationship> rels = node.getModel().getRelationshipMap().get(node);
if (rels != null) {
relations.addAll(rels);
}
- for (Iterator iter = node.getChildren().iterator(); iter.hasNext();) {
+ for (Iterator<IProgramElement> iter = node.getChildren().iterator(); iter.hasNext();) {
IProgramElement child = (IProgramElement) iter.next();
// if we're not a type, or if we are and the child is code, then
// we want to get the relationships for this child - this means that the
// correct relationships appear against the type in the ajdoc
if (!node.getKind().isType() || child.getKind().equals(IProgramElement.Kind.CODE)) {
- List childRelations = node.getModel().getRelationshipMap().get(child);
+ List<IRelationship> childRelations = node.getModel().getRelationshipMap().get(child);
if (childRelations != null) {
- for (Iterator iterator = childRelations.iterator(); iterator.hasNext();) {
+ for (Iterator<IRelationship> iterator = childRelations.iterator(); iterator.hasNext();) {
IRelationship rel = (IRelationship) iterator.next();
if (!relations.contains(rel)) {
relations.add(rel);
@@ -66,13 +66,12 @@ public class StructureUtil {
}
if (relations == null || relations.isEmpty())
return null;
- List targets = new ArrayList();
- for (Iterator it = relations.iterator(); it.hasNext();) {
+ List<String> targets = new ArrayList<String>();
+ for (Iterator<IRelationship> it = relations.iterator(); it.hasNext();) {
IRelationship rtn = (IRelationship) it.next();
if (rtn.getKind().equals(kind) && ((relName != null && relName.equals(rtn.getName())) || relName == null)) {
- List targs = rtn.getTargets();
- for (Iterator iter = targs.iterator(); iter.hasNext();) {
- String element = (String) iter.next();
+ List<String> targs = rtn.getTargets();
+ for (String element: targs) {
if (!targets.contains(element)) {
targets.add(element);
}
@@ -82,14 +81,13 @@ public class StructureUtil {
return targets;
}
- static List /* IProgramElement */getDeclareInterTypeTargets(IProgramElement node, IProgramElement.Kind kind) {
- List targets = new ArrayList();
- List stringTargets = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE_INTER_TYPE);
+ static List<IProgramElement> getDeclareInterTypeTargets(IProgramElement node, IProgramElement.Kind kind) {
+ List<IProgramElement> targets = new ArrayList<IProgramElement>();
+ List<String> stringTargets = StructureUtil.getTargets(node, IRelationship.Kind.DECLARE_INTER_TYPE);
if (stringTargets == null) {
return null;
}
- for (Iterator iter = stringTargets.iterator(); iter.hasNext();) {
- String element = (String) iter.next();
+ for (String element: stringTargets) {
IProgramElement ipe = node.getModel().getHierarchy().findElementForHandle(element);
if (ipe != null && ipe.getKind().equals(kind)) {
targets.add(ipe);
@@ -98,13 +96,12 @@ public class StructureUtil {
return targets;
}
- public static List/* String */getDeclareTargets(IProgramElement node) {
- List relations = node.getModel().getRelationshipMap().get(node);
- List targets = null;
+ public static List<String> getDeclareTargets(IProgramElement node) {
+ List<IRelationship> relations = node.getModel().getRelationshipMap().get(node);
+ List<String> targets = null;
if (relations == null)
return null;
- for (Iterator it = relations.iterator(); it.hasNext();) {
- IRelationship rtn = (IRelationship) it.next();
+ for (IRelationship rtn: relations) {
if (rtn.getKind().isDeclareKind()) {
targets = rtn.getTargets();
}
diff --git a/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java b/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java
index afe288a3b..ea9a81875 100644
--- a/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java
+++ b/ajdoc/testsrc/org/aspectj/tools/ajdoc/AjdocTestCase.java
@@ -198,8 +198,10 @@ public class AjdocTestCase extends TestCase {
!sourceLevel.equals("1.6") &&
!sourceLevel.equals("1.7") &&
!sourceLevel.equals("1.8") &&
- !sourceLevel.equals("1.9")) {
- fail("need to pass ajdoc '1.3' > '1.9' as the source level");
+ !sourceLevel.equals("1.9") &&
+ !sourceLevel.startsWith("9") &&
+ !sourceLevel.startsWith("10")) {
+ fail("need to pass suitable version to ajdoc as the source level");
}
if (inputFiles.length == 0) {
fail("need to pass some files into ajdoc");
diff --git a/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java b/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java
index 70aa02b22..af9ab0ed9 100644
--- a/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java
+++ b/ajdoc/testsrc/org/aspectj/tools/ajdoc/CoverageTestCase.java
@@ -55,7 +55,7 @@ public class CoverageTestCase extends AjdocTestCase {
*/
public void testCoveragePublicMode() throws Exception {
File[] files = {file3,file9};
- runAjdoc("public","1.6",files);
+ runAjdoc("public","9",files);
// have passed the "public" modifier as well as
// one public and one package visible class. There