Implementing the Logifier Build Logic
You've discovered how to write the Logging Aspect and how to bundle this Aspect as a plug-in resource. Now, you'll need to implement the plug-in logic to weave the Aspect into the Java .class files and generate a "logified" JAR.
How do I do that?
Luckily, the AspectJ framework has an iajc Ant task that can weave any Aspect onto
a set of Java source files, JAR files, or Java bytecode (.class files).
In this plug-in, you'll weave the Logging Aspect onto .class files. Here's the part of your plugin.jelly file that weaves the Aspect and generates the logified JAR:
<?xml version="1.0"?>
<project
xmlns:j="jelly:core"
xmlns:ant="jelly:ant"
xmlns:maven="jelly:maven">
<goal name="logifier:compile" prereqs="java:compile">
<ant:iajc
destDir="${maven.build.dest}">
<ant:sourceroots>
<ant:pathelement location="${plugin.resources}/aspect"/>
</ant:sourceroots>
<ant:inpath>
<ant:pathelement location="${maven.build.dest}"/>
</ant:inpath>
<ant:classpath>
<ant:path refid="maven.dependency.classpath"/>
<ant:pathelement
path="${plugin.getDependencyPath('aspectj:aspectjrt')}"/>
</ant:classpath>
</ant:iajc>
</goal>
<goal name="logifier:logify" prereqs="logifier:compile,jar"
description="Generate a logified JAR"/>
</project>Tip
There is an AspectJ plug-in that you can use to weave Aspects onto your code. You should normally use it to weave Aspects. However, reusing the AspectJ plug-in from the Logifier plug-in is not possible because it has not been designed to be reused ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access