From 2704db20ecca12d3bbe514a4f7b84d297937de86 Mon Sep 17 00:00:00 2001 From: Andy Clement Date: Mon, 25 Nov 2019 10:40:44 -0800 Subject: Java 13 support --- .../org/aspectj/tools/ajdoc/HtmlDecorator.java | 37 +-- .../org/aspectj/tools/ajdoc/CoverageTestCase.java | 283 +++++++++++---------- 2 files changed, 172 insertions(+), 148 deletions(-) (limited to 'ajdoc/src') diff --git a/ajdoc/src/main/java/org/aspectj/tools/ajdoc/HtmlDecorator.java b/ajdoc/src/main/java/org/aspectj/tools/ajdoc/HtmlDecorator.java index ec492fce9..7dd50b4ef 100644 --- a/ajdoc/src/main/java/org/aspectj/tools/ajdoc/HtmlDecorator.java +++ b/ajdoc/src/main/java/org/aspectj/tools/ajdoc/HtmlDecorator.java @@ -1,14 +1,14 @@ /* ******************************************************************* - * Copyright (c) 1999-2001 Xerox Corporation, + * Copyright (c) 1999-2001 Xerox Corporation, * 2002 Palo Alto Research Center, Incorporated (PARC). - * All rights reserved. - * This program and the accompanying materials are made available - * under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Xerox/PARC initial implementation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Xerox/PARC initial implementation * Mik Kersten port to AspectJ 1.1+ code base * ******************************************************************/ @@ -77,7 +77,7 @@ class HtmlDecorator { /** * Before attempting to decorate the HTML file we have to verify that it exists, which depends on the documentation visibility * specified to c. - * + * * Depending on docModifier, can document - public: only public - protected: protected and public (default) - package: package * protected and public - private: everything */ @@ -229,6 +229,11 @@ class HtmlDecorator { //

Class A

classStartIndex = fileContents.toString().indexOf("

", classStartIndex); + if (classStartIndex == -1) { + // Java 13 - replaced h2 with h1 here + classStartIndex = fileContents.toString().indexOf("

", classStartIndex); + } if (classEndIndex != -1) { // Convert it to "

Aspect A

" String classLine = fileContents.toString().substring(classStartIndex, classEndIndex); @@ -307,7 +312,7 @@ class HtmlDecorator { insertDeclarationsSummary(fileBuffer, constDeclaredOn, ITD_CONSTRUCTOR_SUMMARY, index); } for (Iterator it = node.getChildren().iterator(); it.hasNext();) { - IProgramElement member = (IProgramElement) it.next(); + IProgramElement member = it.next(); if (member.getKind().equals(IProgramElement.Kind.POINTCUT)) { pointcuts.add(member); } else if (member.getKind().equals(IProgramElement.Kind.ADVICE)) { @@ -737,7 +742,7 @@ class HtmlDecorator { /** * Generates a relative directory path fragment that can be used to navigate "upwards" from the directory location implied by * the argument. - * + * * @param packagePath * @return String consisting of multiple "../" parts, one for each component part of the input packagePath. */ @@ -758,7 +763,7 @@ class HtmlDecorator { * Generate the "public int"-type information about the given IProgramElement. Used when dealing with ITDs. To mirror the * behaviour of methods and fields in classes, if we're generating the summary information we don't want to include "public" if * the accessibility of the IProgramElement is public. - * + * */ private static String generateModifierInformation(IProgramElement decl, boolean isDetails) { String intro = ""; @@ -828,7 +833,7 @@ class HtmlDecorator { * the characters between the /** that begins the comment and the 'star-slash' that ends it. The text is devided into one or * more lines. On each of these lines, the leading * characters are ignored; for lines other than the first, blanks and tabs * preceding the initial * characters are also discarded. - * + * * TODO: implement formatting or linking for tags. */ static String getFormattedComment(IProgramElement decl) { @@ -883,11 +888,11 @@ class HtmlDecorator { static public IProgramElement[] getProgramElements(AsmManager model, String filename) { - IProgramElement file = (IProgramElement) model.getHierarchy().findElementForSourceFile(filename); + IProgramElement file = model.getHierarchy().findElementForSourceFile(filename); final List nodes = new ArrayList(); HierarchyWalker walker = new HierarchyWalker() { public void preProcess(IProgramElement node) { - IProgramElement p = (IProgramElement) node; + IProgramElement p = node; if (accept(node)) nodes.add(p); } diff --git a/ajdoc/src/test/java/org/aspectj/tools/ajdoc/CoverageTestCase.java b/ajdoc/src/test/java/org/aspectj/tools/ajdoc/CoverageTestCase.java index c92e96d2e..61172346c 100644 --- a/ajdoc/src/test/java/org/aspectj/tools/ajdoc/CoverageTestCase.java +++ b/ajdoc/src/test/java/org/aspectj/tools/ajdoc/CoverageTestCase.java @@ -1,13 +1,13 @@ /* ******************************************************************* * Copyright (c) 2003 Contributors. - * All rights reserved. - * This program and the accompanying materials are made available - * under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Mik Kersten initial implementation + * All rights reserved. + * This program and the accompanying materials are made available + * under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Mik Kersten initial implementation * ******************************************************************/ package org.aspectj.tools.ajdoc; @@ -18,21 +18,21 @@ import org.aspectj.util.LangUtil; /** * A long way to go until full coverage, but this is the place to add more. - * + * * @author Mik Kersten */ public class CoverageTestCase extends AjdocTestCase { protected File file0,file1,aspect1,file2,file3,file4,file5,file6,file7,file8,file9,file10; - + protected void setUp() throws Exception { super.setUp(); initialiseProject("coverage"); createFiles(); } - + public void testOptions() { - String[] args = { + String[] args = { "-private", "-encoding", "EUCJIS", @@ -42,21 +42,21 @@ public class CoverageTestCase extends AjdocTestCase { "UTF-8", "-classpath", AjdocTests.ASPECTJRT_PATH.getPath(), - "-d", + "-d", getAbsolutePathOutdir(), - file0.getAbsolutePath(), + file0.getAbsolutePath(), }; org.aspectj.tools.ajdoc.Main.main(args); assertTrue(true); } - + /** - * Test the "-public" argument + * Test the "-public" argument */ public void testCoveragePublicMode() throws Exception { File[] files = {file3,file9}; runAjdoc("public","9",files); - + // have passed the "public" modifier as well as // one public and one package visible class. There // should only be ajdoc for the public class @@ -69,7 +69,7 @@ public class CoverageTestCase extends AjdocTestCase { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + // check there's no private fields within the file, that // the file contains the getI() method but doesn't contain // the private ClassBar, Bazz and Jazz classes. @@ -81,7 +81,7 @@ public class CoverageTestCase extends AjdocTestCase { assertTrue(htmlFile.getName() + " should not contain the private Bazz class",missing.contains("Bazz")); assertTrue(htmlFile.getName() + " should not contain the private Jazz class",missing.contains("Jazz")); } - + /** * Test that the ajdoc for an aspect has the title "Aspect" */ @@ -91,13 +91,13 @@ public class CoverageTestCase extends AjdocTestCase { File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/A.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath()+ " - were there compilation errors?"); - } + } assertTrue(htmlFile.getAbsolutePath() + " should have Aspect A as it's title", AjdocOutputChecker.containsString(htmlFile,"Aspect A")); } - + /** - * Test that the ajdoc for a class has the title "Class" + * Test that the ajdoc for a class has the title "Class" */ public void testAJdocHasClassTitle() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/C.java")}; @@ -105,29 +105,29 @@ public class CoverageTestCase extends AjdocTestCase { File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/C.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath()+ " - were there compilation errors?"); - } + } assertTrue(htmlFile.getAbsolutePath() + " should have Class C as it's title", AjdocOutputChecker.containsString(htmlFile,"Class C")); - + } - + /** * Test that the ajdoc for an inner aspect is entitled "Aspect" rather - * than "Class", but that the enclosing class is still "Class" + * than "Class", but that the enclosing class is still "Class" */ public void testInnerAspect() throws Exception { File[] files = {file1, file2}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/ClassA.InnerAspect.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + // ensure that the file is entitled "Aspect ClassA.InnerAspect" rather // than "Class ClassA.InnerAspect" - + String[] strings = null; if (LangUtil.is18VMOrGreater()) { strings = new String[] { @@ -160,26 +160,31 @@ public class CoverageTestCase extends AjdocTestCase { assertTrue(htmlFile.getName() + " should not have class in its subtitle", missingStrings.contains("
static class ClassA.InnerAspect
extends java.lang.Object")); } - + // get the html file for the enclosing class File htmlFileClass = new File(getAbsolutePathOutdir() + "/foo/ClassA.html"); if (!htmlFileClass.exists()) { fail("couldn't find " + htmlFileClass.getAbsolutePath() + " - were there compilation errors?"); } - + // ensure that the file is entitled "Class ClassA" and // has not been changed to "Aspect ClassA" String[] classStrings = null; - - if (LangUtil.is18VMOrGreater()) { + + if (LangUtil.is13VMOrGreater()) { + classStrings = new String[] { + "Class ClassA", + "public abstract class ClassA", + "Aspect ClassA", + "public abstract aspect ClassA"}; + } else if (LangUtil.is18VMOrGreater()) { classStrings = new String[] { "Class ClassA", "public abstract class ClassA", "Aspect ClassA", "public abstract aspect ClassA"}; - } - else { + } else { classStrings = new String[] { "Class ClassA", "public abstract class ClassA
extends java.lang.Object
", @@ -191,29 +196,29 @@ public class CoverageTestCase extends AjdocTestCase { assertTrue(htmlFileClass.getName() + " should not have Aspect as it's title",classMissing.contains("Aspect ClassA")); if (LangUtil.is18VMOrGreater()) { assertTrue(htmlFileClass.getName() + " should not have aspect in its subtitle", - classMissing.contains("public abstract aspect ClassA")); + classMissing.contains("public abstract aspect ClassA")); } else { assertTrue(htmlFileClass.getName() + " should not have aspect in its subtitle", classMissing.contains("public abstract aspect ClassA
extends java.lang.Object
")); } } - + /** * Test that all the different types of advice appear - * with the named pointcut in it's description + * with the named pointcut in it's description */ public void testAdviceNamingCoverage() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/AdviceNamingCoverage.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - - String[] strings = { + + String[] strings = { "after(): named..", "afterReturning(int,int): namedWithArgs..", "afterThrowing(): named..", @@ -231,19 +236,19 @@ public class CoverageTestCase extends AjdocTestCase { } /** - * Test that all the advises relationships appear in the + * Test that all the advises relationships appear in the * Advice Detail and Advice Summary sections and that - * the links are correct + * the links are correct */ public void testAdvisesRelationshipCoverage() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/AdvisesRelationshipCoverage.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { "before(): methodExecutionP..", "HREF=\"../foo/Point.html#setX(int)\"", @@ -264,39 +269,39 @@ public class CoverageTestCase extends AjdocTestCase { "before(): handlerP..", "HREF=\"../foo/Point.html#doIt()\"" }; - + for (int i = 0; i < strings.length - 1; i = i+2) { boolean b = AjdocOutputChecker.detailSectionContainsRel( htmlFile,"ADVICE DETAIL SUMMARY",strings[i], HtmlDecorator.HtmlRelationshipKind.ADVISES, strings[i+1]); - assertTrue(strings[i] + " should advise " + strings[i+1] + + assertTrue(strings[i] + " should advise " + strings[i+1] + " in the Advice Detail section", b); } - + for (int i = 0; i < strings.length - 1; i = i+2) { boolean b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"ADVICE SUMMARY",strings[i], HtmlDecorator.HtmlRelationshipKind.ADVISES, strings[i+1]); - assertTrue(strings[i] + " should advise " + strings[i+1] + + assertTrue(strings[i] + " should advise " + strings[i+1] + " in the Advice Summary section", b); } } /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a method execution pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a method execution pointcut */ public void testAdvisedByMethodExecution() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { toName("setX(int)"), "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): methodExecutionP..\""}; @@ -306,7 +311,7 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[1]); assertTrue("the Method Detail should have " + strings[0]+" advised by " + strings[1],b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", strings[0], @@ -314,20 +319,20 @@ public class CoverageTestCase extends AjdocTestCase { strings[1]); assertTrue("the Method Summary should have " + strings[0]+" advised by " + strings[1],b); } - + /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a constructor execution pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a constructor execution pointcut */ public void testAdvisedByConstructorExecution() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { LangUtil.is11VMOrGreater()?"<init>()":toName("Point()"), "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): constructorExecutionP..\""}; @@ -351,20 +356,20 @@ public class CoverageTestCase extends AjdocTestCase { strings[1]); assertTrue("the Constructor Summary should have " + strings[0]+" advised by " + strings[1],b); } - + /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a method call pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a method call pointcut */ public void testAdvisedByMethodCall() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { toName("changeX(int)"), "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): callMethodP..\""}; @@ -374,7 +379,7 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[1]); assertTrue("the Method Detail should have " + strings[0]+" advised by " + strings[1],b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", strings[0], @@ -384,18 +389,18 @@ public class CoverageTestCase extends AjdocTestCase { } /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a constructor call pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a constructor call pointcut */ public void testAdvisedByConstructorCall() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { toName("doIt()"), "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): callConstructorP..\""}; @@ -405,7 +410,7 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[1]); assertTrue("the Method Detail should have " + strings[0]+" advised by " + strings[1],b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", strings[0], @@ -415,18 +420,18 @@ public class CoverageTestCase extends AjdocTestCase { } /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a get pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a get pointcut */ public void testAdvisedByGet() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { toName("getX()"), "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): getP..\""}; @@ -436,7 +441,7 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[1]); assertTrue("the Method Detail should have " + strings[0]+" advised by " + strings[1],b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", strings[0], @@ -446,18 +451,18 @@ public class CoverageTestCase extends AjdocTestCase { } /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a set pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a set pointcut */ public void testAdvisedBySet() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String href = "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): setP..\""; boolean b = AjdocOutputChecker.detailSectionContainsRel( htmlFile,"=== METHOD DETAIL", @@ -465,7 +470,7 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, href); assertTrue("the Method Detail should have setX(int) advised by " + href,b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", toName("setX(int)"), @@ -479,7 +484,7 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, href); assertTrue("the Constructor Detail should have advised by " + href,b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== CONSTRUCTOR SUMMARY", LangUtil.is11VMOrGreater()?"#%3Cinit%3E()":toName("Point()"), @@ -495,18 +500,18 @@ public class CoverageTestCase extends AjdocTestCase { } /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with an initialization pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with an initialization pointcut */ public void testAdvisedByInitialization() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { LangUtil.is11VMOrGreater()?"<init>()":toName("Point()"), "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): initializationP..\""}; @@ -527,18 +532,18 @@ public class CoverageTestCase extends AjdocTestCase { } /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a staticinitialization pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a staticinitialization pointcut */ public void testAdvisedByStaticInitialization() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String href = "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): staticinitializationP..\""; boolean b = AjdocOutputChecker.classDataSectionContainsRel( htmlFile, @@ -548,18 +553,18 @@ public class CoverageTestCase extends AjdocTestCase { } /** - * Test that the advised by relationship appears in the ajdoc when the - * advice is associated with a handler pointcut + * Test that the advised by relationship appears in the ajdoc when the + * advice is associated with a handler pointcut */ public void testAdvisedByHandler() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/Point.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { toName("doIt()"), "HREF=\"../foo/AdvisesRelationshipCoverage.html#before(): handlerP..\""}; @@ -569,7 +574,7 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[1]); assertTrue("the Method Detail should have " + strings[0]+" advised by " + strings[1],b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", strings[0], @@ -587,17 +592,17 @@ public class CoverageTestCase extends AjdocTestCase { } /** * Test that if have two before advice blocks from the same - * aspect affect the same method, then both appear in the ajdoc + * aspect affect the same method, then both appear in the ajdoc */ public void testTwoBeforeAdvice() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/A2.aj")}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/C2.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String[] strings = { toName("amethod()"), "HREF=\"../pkg/A2.html#before(): p..\"", @@ -608,21 +613,21 @@ public class CoverageTestCase extends AjdocTestCase { HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[1]); assertTrue("the Method Detail should have " + strings[0]+" advised by " + strings[1],b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", strings[0], HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[1]); assertTrue("the Method Summary should have " + strings[0]+" advised by " + strings[1],b); - + b = AjdocOutputChecker.detailSectionContainsRel( htmlFile,"=== METHOD DETAIL", strings[0], HtmlDecorator.HtmlRelationshipKind.ADVISED_BY, strings[2]); assertTrue("the Method Detail should have " + strings[0]+" advised by " + strings[2],b); - + b = AjdocOutputChecker.summarySectionContainsRel( htmlFile,"=== METHOD SUMMARY", strings[0], @@ -630,7 +635,7 @@ public class CoverageTestCase extends AjdocTestCase { strings[2]); assertTrue("the Method Summary should have " + strings[0]+" advised by " + strings[2],b); } - + /** * Test that there are no spurious "advised by" entries * against the aspect in the ajdoc @@ -638,12 +643,12 @@ public class CoverageTestCase extends AjdocTestCase { public void testNoSpuriousAdvisedByRels() throws Exception { File[] files = {file4}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/foo/AdvisesRelationshipCoverage.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + String href = "foo.Point.setX(int)"; boolean b = AjdocOutputChecker.classDataSectionContainsRel( htmlFile, @@ -652,40 +657,40 @@ public class CoverageTestCase extends AjdocTestCase { assertFalse("The class data section should not have 'advised by " + href + "'",b); } - + public void testCoverage() { File[] files = {aspect1,file0,file1,file2,file3,file4,file5,file6, file7,file8,file9,file10}; runAjdoc("private","1.6",files); } - + /** * Test that nested aspects appear with "aspect" in their title - * when the ajdoc file is written slightly differently (when it's - * written for this apsect, it's different than for testInnerAspect()) + * when the ajdoc file is written slightly differently (when it's + * written for this apsect, it's different than for testInnerAspect()) */ public void testNestedAspect() throws Exception { File[] files = {file9}; - runAjdoc("private",AJDocConstants.VERSION,files); - + runAjdoc("private",AJDocConstants.VERSION,files); + File htmlFile = new File(getAbsolutePathOutdir() + "/PkgVisibleClass.NestedAspect.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + // ensure that the file is entitled "Aspect PkgVisibleClass.NestedAspect" rather // than "Class PkgVisibleClass.NestedAspect" String[] strings = null; if (LangUtil.is18VMOrGreater()) { - strings = new String[] { + strings = new String[] { "Aspect PkgVisibleClass.NestedAspect", "
static aspect PkgVisibleClass.NestedAspect",
 					"Class PkgVisibleClass.NestedAspect",
 					"
static class PkgVisibleClass.NestedAspect"};
 		}
 		else {
-			strings = new String[] { 
+			strings = new String[] {
 					"Aspect PkgVisibleClass.NestedAspect",
 					"
static aspect PkgVisibleClass.NestedAspect
extends java.lang.Object", "Class PkgVisibleClass.NestedAspect", @@ -708,10 +713,17 @@ public class CoverageTestCase extends AjdocTestCase { fail("couldn't find " + htmlFileClass.getAbsolutePath() + " - were there compilation errors?"); } - + // ensure that the file is entitled "Class PkgVisibleClass" and // has not been changed to "Aspect PkgVisibleClass" String[] classStrings = null; + if (LangUtil.is13VMOrGreater()) { + classStrings = new String[] { + "Class PkgVisibleClass", + "
class PkgVisibleClass",
+				"Aspect PkgVisibleClass",
+				"
aspect PkgVisibleClass"};
+		} else
 		if (LangUtil.is18VMOrGreater()) {
 			classStrings = new String[] {
 				"Class PkgVisibleClass",
@@ -742,20 +754,20 @@ public class CoverageTestCase extends AjdocTestCase {
 
 	/**
 	 * Test that in the case when you have a nested aspect whose
-	 * name is part of the enclosing class, for example a class called 
+	 * name is part of the enclosing class, for example a class called
 	 * ClassWithNestedAspect has nested aspect called NestedAspect,
 	 * that the titles for the ajdoc are correct.
 	 */
 	public void testNestedAspectWithSimilarName() throws Exception {
     	File[] files = {new File(getAbsoluteProjectDir() + "/pkg/ClassWithNestedAspect.java")};
         runAjdoc("private",AJDocConstants.VERSION,files);
-            
+
         File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/ClassWithNestedAspect.NestedAspect.html");
 		if (!htmlFile.exists()) {
 			fail("couldn't find " + htmlFile.getAbsolutePath()
 					+ " - were there compilation errors?");
 		}
-		// ensure that the file is entitled "Aspect ClassWithNestedAspect.NestedAspect" 
+		// ensure that the file is entitled "Aspect ClassWithNestedAspect.NestedAspect"
 		// rather than "Class ClassWithNestedAspect.NestedAspect"
 		String[] strings = null;
 		if (LangUtil.is18VMOrGreater()) {
@@ -770,7 +782,7 @@ public class CoverageTestCase extends AjdocTestCase {
 					"Aspect ClassWithNestedAspect.NestedAspect",
 					"
static a;spect ClassWithNestedAspect.NestedAspect
extends java.lang.Object", "Class ClassWithNestedAspect.NestedAspect", - "
static class ClassWithNestedAspect.NestedAspect
extends java.lang.Object"}; + "
static class ClassWithNestedAspect.NestedAspect
extends java.lang.Object"}; } List missing = AjdocOutputChecker.getMissingStringsInFile(htmlFile,strings); assertEquals("There should be 2 missing strings",2,missing.size()); @@ -782,26 +794,33 @@ public class CoverageTestCase extends AjdocTestCase { else { assertTrue(htmlFile.getName() + " should not have class in its subtitle",missing.contains("
static class ClassWithNestedAspect.NestedAspect
extends java.lang.Object")); } - + // get the html file for the enclosing class File htmlFileClass = new File(getAbsolutePathOutdir() + "/pkg/ClassWithNestedAspect.html"); if (htmlFileClass == null || !htmlFileClass.exists()) { fail("couldn't find " + htmlFileClass.getAbsolutePath() + " - were there compilation errors?"); } - + // ensure that the file is entitled "Class ClassWithNestedAspect" and // has not been changed to "Aspect ClassWithNestedAspect" String[] classStrings = null; + if (LangUtil.is13VMOrGreater()) { + classStrings = new String[] { + "Class ClassWithNestedAspect", + "public class ClassWithNestedAspect", + "Aspect ClassWithNestedAspect", + "public aspect ClassWithNestedAspect"}; + } else if (LangUtil.is18VMOrGreater()) { - classStrings = new String[] { + classStrings = new String[] { "Class ClassWithNestedAspect", "public class ClassWithNestedAspect", "Aspect ClassWithNestedAspect", "public aspect ClassWithNestedAspect"}; } else { - classStrings = new String[] { + classStrings = new String[] { "Class ClassWithNestedAspect", "public class ClassWithNestedAspect
extends java.lang.Object", "Aspect ClassWithNestedAspect", @@ -822,7 +841,7 @@ public class CoverageTestCase extends AjdocTestCase { classMissing.contains("public aspect ClassWithNestedAspect
extends java.lang.Object")); } } - + /** * Test that everythings being decorated correctly within the ajdoc * for the aspect when the aspect is a nested aspect @@ -830,13 +849,13 @@ public class CoverageTestCase extends AjdocTestCase { public void testAdviceInNestedAspect() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/ClassWithNestedAspect.java")}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/ClassWithNestedAspect.NestedAspect.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + boolean b = AjdocOutputChecker.detailSectionContainsRel( htmlFile,"ADVICE DETAIL SUMMARY", "before(): p..", @@ -853,7 +872,7 @@ public class CoverageTestCase extends AjdocTestCase { "' in the Advice Summary section", b); } - + /** * Test that everythings being decorated correctly within the ajdoc * for the advised class when the aspect is a nested aspect @@ -861,13 +880,13 @@ public class CoverageTestCase extends AjdocTestCase { public void testAdvisedByInNestedAspect() throws Exception { File[] files = {new File(getAbsoluteProjectDir() + "/pkg/ClassWithNestedAspect.java")}; runAjdoc("private",AJDocConstants.VERSION,files); - + File htmlFile = new File(getAbsolutePathOutdir() + "/pkg/ClassWithNestedAspect.html"); if (!htmlFile.exists()) { fail("couldn't find " + htmlFile.getAbsolutePath() + " - were there compilation errors?"); } - + boolean b = AjdocOutputChecker.containsString(htmlFile,"POINTCUT SUMMARY "); assertFalse(htmlFile.getName() + " should not contain a pointcut summary section",b); b = AjdocOutputChecker.containsString(htmlFile,"ADVICE SUMMARY "); @@ -876,7 +895,7 @@ public class CoverageTestCase extends AjdocTestCase { assertFalse(htmlFile.getName() + " should not contain a pointcut detail section",b); b = AjdocOutputChecker.containsString(htmlFile,"ADVICE DETAIL "); assertFalse(htmlFile.getName() + " should not contain an advice detail section",b); - + b = AjdocOutputChecker.detailSectionContainsRel( htmlFile,"=== METHOD DETAIL", toName("amethod()"), @@ -914,7 +933,7 @@ public class CoverageTestCase extends AjdocTestCase { " in the Method Summary section", b); } - + private void createFiles() { file0 = new File(getAbsoluteProjectDir() + "/InDefaultPackage.java"); file1 = new File(getAbsoluteProjectDir() + "/foo/ClassA.java"); @@ -929,12 +948,12 @@ public class CoverageTestCase extends AjdocTestCase { file9 = new File(getAbsoluteProjectDir() + "/foo/PkgVisibleClass.java"); file10 = new File(getAbsoluteProjectDir() + "/foo/NoMembers.java"); } - + // public void testPlainJava() { -// String[] args = { "-d", +// String[] args = { "-d", // getAbsolutePathOutdir(), // file3.getAbsolutePath() }; // org.aspectj.tools.ajdoc.Main.main(args); // } - + } -- cgit v1.2.3