Docs: Create separate CSS files, do not embed into HTML
TODO: There still is one set of CSS files per subdirectory due to the
way the docs directories are organised. It would be better to have them
just once. But to achieve that, the ADOC-to-HTML conversion would have
to be changed, e.g. using one central directory for images and
reorganisation of the overall directory structure and build options.
See https://github.com/asciidoctor/asciidoctor-maven-plugin/issues/729.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Using Asciidoctor Maven, we now produce PDFs (which are also linked to
from the main documentation index page) for
- Programming Guide,
- AspectJ 5 Developer's Notebook,
- Development Environment Guide,
- Problem Diagnosis Guide,
- AspectJ Design Overview.
Attention! PDF generation alone takes 3+ minutes, almost 4 minutes
including asciidoc to HTML conversion. Just deactivate the 'create-docs'
profile if you do not need docs during the build.
Closes #272.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Follow-up on previous rename-only commit. This time, the binaries are
real PNGs. The asciidoc and other references to them have also been
replaced. File figures_classes.png in the teaching materials also was
rotated by 90° to display it correctly.
Background: The Asciidoctor PDF back-end cannot handle GIFs directly
without an additional Ruby Gem. It is easier to only use PNGs and JPEGs.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Fix warning in Asciidoctor Maven by JRuby version bump
Warning "Native subprocess control requires open access to the JDK IO
subsystem" can be avoided by upgrading JRuby, see
https://github.com/asciidoctor/asciidoctor-maven-plugin/issues/553.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Before, only one image was referenced, consisting of a screenshot of two
diagrams. The other image file, containing just one of the diagrams, was
not used. Now, both images have been cropped correctly and are both
referenced separately from the release notes.
Better late than never...
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
- AspectJ Browser (ajbrowser)
- Forte IDE integration
- JBuilder IDE integration
- Emacs integration
All this information was old and outdated. Ajbrowser was removed from
AspectJ a while ago. If the other tools even still exist, any possibly
existing AspectJ support is not part of AspectJ itself.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
In one case, we need to copy images from a subdirectory one level up,
because otherwise the images are only found in the included document,
but not in the single-page one including it from the subdirectory. In
all other cases, included ADOCs are located in the same directory as the
including document.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
- The website is just a front page.
- I failed to contact anyone via:
* fb9553b7471df638478bbf918044bf52.gdrp@customers.whoisprivacycorp.com
* info@aosd.net
* admin@aosd.net
- The discuss@aosd.net mailing list had its last post 6 years ago and
the last one concerning AspectJ 11 years ago according to the archive
at https://discuss.aosd.narkive.com/.
Mention Spring support for native AspectJ an Spring AOP as a real world
example in the FAQ.
Also remove an FAQ link to a no longer existing PARC website about
AspectJ and fix a small typo.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
- Add Java syntax highlighting to AspectJ and Java files
- Add XML syntax highlighting to XML files (Ant, LTW etc.)
- Dedent and remove empty lines, where necessary
- Enclose in-line line numbers for Java code in /*23*/ comments in order
to enable Java formatting
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Add initial set of AsciiDoc files, converted from HTML/XML
Some originals have been deleted already. Others, especially the user
guides, still exist in both formats because they have not been
proof-read and probably lots of links do not function as expected. But I
want to see what the files look like directly on GitHun.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Use new constant Main.MINIMAL_JRE_VERSION (currently = 17) and
SourceVersion.latest().ordinal() to check, if the minimal JRE version
requirement for AJC is met. If not, then exit with code -1 and error
message "The AspectJ compiler needs at least Java runtime 17".
Relates to #269.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Add tests for Java 21 unnamed classes and instance methods
TODO: Activate the unnamed class test after
https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1106 is done. Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
TODO: Due to eclipse-jdt/eclipse.jdt.core#1719, one line per test is
currently rendered incorrectly. After the upstream fix, change
"\Bill \Duck" to "Bill Duck".
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Add missing file RecordPatternsPreview1ExhaustivenessOK1.java for JDK 21
This file was missing, which did not trigger an error in CI builds,
because AllTestsAspectJ1921 was not part of the AllTests19 suite before.
The latter will be fixed in the next commit.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
AjcTaskTest: Be more lenient with aspectjrt version warning
Filter out a warning which occurs, if the current release does not match
the stored binary in lib/test:
bad version number found in aspectjrt.jar
expected 1.9.21.M1 found 1.9.20.1
If e.g. we run tests for a milestone release a.b.5.M1 and afterwards
switch back to a.b.5-SNAPSHOT, we do not want to update lib/test for a
single commit, just to make this test pass. Hence, we ignore this
warning here.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Enable some tests after J19 problems were fixed for J21
Two test classes which had redundant default clauses for switch with
record patterns were copied from the java19 to the java21 directory and
the redundant clauses deactivated, i.e. the test now run as originally
intended. For older JDK versions, the old tests still stay active in
order to document the old state of affairs.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
This mostly affects pattern matching for switch and record patterns.
Two tests which were working before for pattern matching for switch
(preview 4), started to fail, so the corresponding code was commented
out and https://github.com/eclipse-jdt/eclipse.jdt.core/issues/1466
recorded.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
AjcTestCase: Make sure main methods can be called in Java 21
Since JDK 21, a public main method of a non-public (e.g. default-scoped)
class can no longer be invoked without making it accessible first.
Because many test sources contain multiple aspects and classes in one
file, this is a frequent use case.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
AntSpec: Improve filter for warning "Archived non-system classes are disabled"
In JDK 21, the prefix has changed once again, no longer being a JVM
specifier like "OpenJDK 64-Bit Server VM" or "Java HotSpot(TM) 64-Bit
Server VM" but rather something like "[0.016s][warning][cds]".
Even worse, before J21, the warning appears on stdErr, but in J21+, it
appears on stdOut.
Fixes LTWTests.testJ14LTWWithXML, which started failing on Java 21.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
While trying to understand the code a bit better in order to fix failing
builds, I applied some cosmetic refactoring and reformatting. This
commit does not change any functionality.
Whether the static import of CompilationAndWeavingContext.* is a good
thing or not is debatable, but I like the code to be less chatty than it
was before, assuming that every developer uses an IDE helping to find
out where static methods and constants come from.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>
Background: JDT Core dependencies now contain hundreds of Java 17 class
files, i.e. Ajc now requires Java 17+ runtime environment. :-(
For more details, see:
https://github.com/eclipse-aspectj/aspectj/issues/260#issuecomment-1736540176
Adoptium Java 21 release is not available yet, so we need to run on EA.
Signed-off-by: Alexander Kriegisch <Alexander@Kriegisch.name>