diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pom.xml | 1267 |
1 files changed, 680 insertions, 587 deletions
diff --git a/lib/pom.xml b/lib/pom.xml index 1e624c460..50c870682 100644 --- a/lib/pom.xml +++ b/lib/pom.xml @@ -33,626 +33,719 @@ <!-- TODO: Add lib (for now, then finally lib) to .gitignore --> <properties> + <lib.provisioned.marker>provisioned.marker</lib.provisioned.marker> <lib.ant.name>apache-ant</lib.ant.name> <lib.ant.artifact>${lib.ant.name}-${lib.ant.version}</lib.ant.artifact> </properties> - <build> - <plugins> + <profiles> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-enforcer-plugin</artifactId> - <executions> - <execution> - <!-- - Deactivate this execution from the parent, because here it would be counter-productive, given the fact - that this module must be built before the enforcer rule can even pass elsewhere. - --> - <id>enforce-libraries-exist</id> - <phase>none</phase> - </execution> - </executions> - </plugin> + <!-- Profile for provisioning - i.e. downloading and (un)zipping - libraries needed during the build --> + <profile> + <id>provision-libs</id> - <plugin> - <groupId>com.googlecode.maven-download-plugin</groupId> - <artifactId>download-maven-plugin</artifactId> - <version>1.6.1</version> - <executions> - <execution> - <id>download-ant-binaries</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://archive.apache.org/dist/ant/binaries/${lib.ant.artifact}-bin.zip</url> - <outputDirectory>ant</outputDirectory> - <sha1>3fa9f816a0c4c63249efad8e6225f2e83794f0c0</sha1> - </configuration> - </execution> - <execution> - <id>download-ant-sources</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://archive.apache.org/dist/ant/source/${lib.ant.artifact}-src.zip</url> - <outputDirectory>ant</outputDirectory> - <sha1>b9f3c8c31bb6c9069ad5b655059a17769af12f20</sha1> - </configuration> - </execution> - <execution> - <id>download-beanutils-sources</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://github.com/apache/commons-beanutils/archive/refs/tags/${lib.commons.beanutils.tag}.zip</url> - <outputDirectory>commons</outputDirectory> - <outputFileName>commons-beanutils-${lib.commons.beanutils.version}-sources.jar</outputFileName> - <sha1>b2c02afe7e6475cd7c811932b8415d171a8afa00</sha1> - </configuration> - </execution> - <execution> - <id>download-collections-sources</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://github.com/apache/commons-collections/archive/refs/tags/${lib.commons.collections.tag}.zip</url> - <outputDirectory>commons</outputDirectory> - <outputFileName>commons-collections-${lib.commons.collections.version}-sources.jar</outputFileName> - <sha1>824cacd0aafe21a94fb142388fd62f28a12df5ef</sha1> - </configuration> - </execution> - <execution> - <id>download-digester-sources</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://github.com/apache/commons-digester/archive/refs/tags/${lib.commons.digester.tag}.zip</url> - <outputDirectory>commons</outputDirectory> - <outputFileName>commons-digester-${lib.commons.digester.version}-sources.jar</outputFileName> - <sha1>49f653c7ea726301c564f9662b72c051fee9390a</sha1> - </configuration> - </execution> - <execution> - <id>download-logging-sources</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://github.com/apache/commons-logging/archive/refs/tags/${lib.commons.logging.tag}.zip</url> - <outputDirectory>commons</outputDirectory> - <outputFileName>commons-logging-${lib.commons.logging.version}-sources.jar</outputFileName> - <sha1>c61a373f6d50ff8fcfba900934f7254d44f9735b</sha1> - </configuration> - </execution> - <execution> - <id>download-docbook-dtd</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://www.oasis-open.org/docbook/xml/4.1.2/docbkx412.zip</url> - <outputDirectory>docbook</outputDirectory> - <outputFileName>docbkx412.zip</outputFileName> - <sha1>b9ae7a41056bfaf885581812d60651b7b5531519</sha1> - </configuration> - </execution> - <execution> - <id>download-docbook-xsl</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://sourceforge.net/projects/docbook/files/OldFiles/docbook-xsl-1.44.zip/download</url> - <outputDirectory>docbook</outputDirectory> - <outputFileName>docbook-xsl-1.44.zip</outputFileName> - <sha1>626e7bee806ea14812f6f95cc2d187ab6ba9114a</sha1> - </configuration> - </execution> - <!-- - Obsolete because we uploaded both binary and source JARs to GitHub Packages, so we can use JDiff as a - normal dependency. Keep this for reference, so we can remember where we found it. - --> - <!-- - <execution> - <id>download-jdiff</id> - <phase>generate-resources</phase> - <goals> - <goal>wget</goal> - </goals> - <configuration> - <url>https://downloads.sourceforge.net/project/jedit-plugins/JDiffPlugin/1.3/JDiffPlugin-1.3.zip</url> - <outputDirectory>jdiff</outputDirectory> - <outputFileName>JDiffPlugin-1.3.zip</outputFileName> - <sha1>eba63fd845203c6b245fbcb81c0de8e2c83d16c7</sha1> - </configuration> - </execution> - --> - </executions> - </plugin> + <!-- If marker file is missing, activate profile and provision all libraries --> + <activation> + <file> + <missing>${lib.provisioned.marker}</missing> + </file> + </activation> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <version>3.1.2</version> - <executions> - <execution> - <id>copy</id> - <phase>generate-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <artifactItems> - - <artifactItem> - <!-- Available from GitHub Packages (needs special repository declaration) --> - <groupId>org.aspectj</groupId> - <artifactId>org.eclipse.jdt.core</artifactId> - <version>${jdt.core.version}</version> - <type>jar</type> - <overWrite>false</overWrite> - <outputDirectory>jdtcore-aj</outputDirectory> - <destFileName>jdtcore-for-aspectj.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Available from GitHub Packages (needs special repository declaration) --> - <groupId>org.aspectj</groupId> - <artifactId>org.eclipse.jdt.core</artifactId> - <version>${jdt.core.version}</version> - <type>java-source</type> - <classifier>sources</classifier> - <overWrite>false</overWrite> - <outputDirectory>jdtcore-aj</outputDirectory> - <destFileName>jdtcore-for-aspectj-src.zip</destFileName> - </artifactItem> - - <artifactItem> - <!-- Binary is identical to committed version in branch 'jdtcore-new' --> - <groupId>com.googlecode.jarjar</groupId> - <artifactId>jarjar</artifactId> - <version>1.3</version> - <type>jar</type> - <overWrite>false</overWrite> - <outputDirectory>jarjar</outputDirectory> - <destFileName>jarjar-1.3.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <type>jar</type> - <overWrite>false</overWrite> - <outputDirectory>junit</outputDirectory> - <destFileName>junit.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <!-- TODO: Is this redundant JUnit JAR in ant/lib really necessary? If so, why? --> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <type>jar</type> - <overWrite>false</overWrite> - <outputDirectory>ant/lib</outputDirectory> - <destFileName>junit.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <type>jar</type> - <classifier>sources</classifier> - <overWrite>false</overWrite> - <outputDirectory>junit</outputDirectory> - <destFileName>junit-src.zip</destFileName> - </artifactItem> - - <!-- Jython does not seem to be used anywhere in AspectJ --> - - <artifactItem> - <!-- Binary is a bit newer than committed version, but produces identical results in 'docs' --> - <groupId>saxon</groupId> - <artifactId>saxon</artifactId> - <version>6.5.3</version> - <type>jar</type> - <overWrite>false</overWrite> - <outputDirectory>saxon</outputDirectory> - <destFileName>saxon.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <groupId>regexp</groupId> - <artifactId>regexp</artifactId> - <version>${lib.regexp.version}</version> - <type>jar</type> - <overWrite>false</overWrite> - <outputDirectory>regexp</outputDirectory> - <destFileName>jakarta-regexp-1.2.jar</destFileName> - </artifactItem> - - <!-- - About commons.jar + commons-src.zip: - - Beanutils Binaries are commons-beanutils:commons-beanutils:1.4 (no sources on Maven Central, but - https://github.com/apache/commons-beanutils/archive/refs/tags/BEANUTILS_1_4.zip) - - Collections: Binaries are commons-collections:commons-collections:2.0 (no sources on Maven Central, but - https://github.com/apache/commons-collections/archive/refs/tags/collections-2.0.zip) - - Digester: Binaries are commons-digester:commons-digester:1.3 (no sources on Maven Central, but - https://github.com/apache/commons-digester/archive/refs/tags/DIGESTER_1_3.zip) - - Logging: Binaries are commons-logging:commons-logging:1.0.1 (no sources on Maven Central, but - https://github.com/apache/commons-logging/archive/refs/tags/LOGGING_1_0_1.zip) - --> - <artifactItem> - <!-- Binary is identical to committed version --> - <!-- TODO: not used anywhere -> remove --> - <groupId>commons-beanutils</groupId> - <artifactId>commons-beanutils</artifactId> - <version>${lib.commons.beanutils.version}</version> - <type>jar</type> - <overWrite>false</overWrite> + <build> + <plugins> + + <!-- Download libraries + source code which are unavailable in Maven repositories like Maven Central --> + <plugin> + <groupId>com.googlecode.maven-download-plugin</groupId> + <artifactId>download-maven-plugin</artifactId> + <version>1.6.1</version> + <executions> + <execution> + <id>download-ant-binaries</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://archive.apache.org/dist/ant/binaries/${lib.ant.artifact}-bin.zip</url> + <outputDirectory>ant</outputDirectory> + <sha1>3fa9f816a0c4c63249efad8e6225f2e83794f0c0</sha1> + </configuration> + </execution> + <execution> + <id>download-ant-sources</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://archive.apache.org/dist/ant/source/${lib.ant.artifact}-src.zip</url> + <outputDirectory>ant</outputDirectory> + <sha1>b9f3c8c31bb6c9069ad5b655059a17769af12f20</sha1> + </configuration> + </execution> + <execution> + <id>download-beanutils-sources</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://github.com/apache/commons-beanutils/archive/refs/tags/${lib.commons.beanutils.tag}.zip</url> <outputDirectory>commons</outputDirectory> - <destFileName>commons-beanutils-${lib.commons.beanutils.version}.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <!-- TODO: not used anywhere -> remove --> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>2.0</version> - <type>jar</type> - <overWrite>false</overWrite> + <outputFileName>commons-beanutils-${lib.commons.beanutils.version}-sources.jar</outputFileName> + <sha1>b2c02afe7e6475cd7c811932b8415d171a8afa00</sha1> + </configuration> + </execution> + <execution> + <id>download-collections-sources</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://github.com/apache/commons-collections/archive/refs/tags/${lib.commons.collections.tag}.zip</url> <outputDirectory>commons</outputDirectory> - <destFileName>commons-collections-2.0.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <!-- TODO: used in module 'testing' --> - <groupId>commons-digester</groupId> - <artifactId>commons-digester</artifactId> - <version>${lib.commons.digester.version}</version> - <type>jar</type> - <overWrite>false</overWrite> + <outputFileName>commons-collections-${lib.commons.collections.version}-sources.jar</outputFileName> + <sha1>824cacd0aafe21a94fb142388fd62f28a12df5ef</sha1> + </configuration> + </execution> + <execution> + <id>download-digester-sources</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://github.com/apache/commons-digester/archive/refs/tags/${lib.commons.digester.tag}.zip</url> <outputDirectory>commons</outputDirectory> - <destFileName>commons-digester-${lib.commons.digester.version}.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <!-- TODO: used in modules 'org.aspectj.matcher' --> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>${lib.commons.logging.version}</version> - <type>jar</type> - <overWrite>false</overWrite> + <outputFileName>commons-digester-${lib.commons.digester.version}-sources.jar</outputFileName> + <sha1>49f653c7ea726301c564f9662b72c051fee9390a</sha1> + </configuration> + </execution> + <execution> + <id>download-logging-sources</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://github.com/apache/commons-logging/archive/refs/tags/${lib.commons.logging.tag}.zip</url> <outputDirectory>commons</outputDirectory> - <destFileName>commons-logging-${lib.commons.logging.version}.jar</destFileName> - </artifactItem> - - <!-- Libraries used to create HTML docs from XML DocBook files --> - <artifactItem> - <!-- Binary is identical to committed version --> - <groupId>fop</groupId> - <artifactId>fop</artifactId> - <version>0.20.5</version> - <type>jar</type> - <overWrite>false</overWrite> + <outputFileName>commons-logging-${lib.commons.logging.version}-sources.jar</outputFileName> + <sha1>c61a373f6d50ff8fcfba900934f7254d44f9735b</sha1> + </configuration> + </execution> + <execution> + <id>download-docbook-dtd</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://www.oasis-open.org/docbook/xml/4.1.2/docbkx412.zip</url> <outputDirectory>docbook</outputDirectory> - <destFileName>fop.jar</destFileName> - </artifactItem> - <artifactItem> - <!-- Binary is identical to committed version --> - <groupId>batik</groupId> - <artifactId>batik-1.5-fop</artifactId> - <version>0.20-5</version> - <type>jar</type> - <overWrite>false</overWrite> + <outputFileName>docbkx412.zip</outputFileName> + <sha1>b9ae7a41056bfaf885581812d60651b7b5531519</sha1> + </configuration> + </execution> + <execution> + <id>download-docbook-xsl</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://sourceforge.net/projects/docbook/files/OldFiles/docbook-xsl-1.44.zip/download</url> <outputDirectory>docbook</outputDirectory> - <destFileName>batik.jar</destFileName> - </artifactItem> + <outputFileName>docbook-xsl-1.44.zip</outputFileName> + <sha1>626e7bee806ea14812f6f95cc2d187ab6ba9114a</sha1> + </configuration> + </execution> + <!-- + Obsolete because we uploaded both binary and source JARs to GitHub Packages, so we can use JDiff as a + normal dependency. Keep this for reference, so we can remember where we found it. + --> + <!-- + <execution> + <id>download-jdiff</id> + <phase>generate-resources</phase> + <goals> + <goal>wget</goal> + </goals> + <configuration> + <url>https://downloads.sourceforge.net/project/jedit-plugins/JDiffPlugin/1.3/JDiffPlugin-1.3.zip</url> + <outputDirectory>jdiff</outputDirectory> + <outputFileName>JDiffPlugin-1.3.zip</outputFileName> + <sha1>eba63fd845203c6b245fbcb81c0de8e2c83d16c7</sha1> + </configuration> + </execution> + --> + </executions> + </plugin> - </artifactItems> - </configuration> - </execution> - </executions> - </plugin> + <!-- Download libraries + source code which are available in Maven repositories like Maven Central --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>3.1.2</version> + <executions> + <execution> + <id>copy</id> + <phase>generate-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <artifactItems> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>truezip-maven-plugin</artifactId> - <version>1.2</version> - <!-- - The TrueZIP plugin can seamlessly copy out of or into (nested) ZIP files as if they were normal file system - paths. No additional moves and deletes with Antrun are necessary. - --> - <executions> - <execution> - <id>unzip-ant-binaries</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>ant/${lib.ant.artifact}-bin.zip/${lib.ant.artifact}</directory> - <outputDirectory>ant</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-ant-sources</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>ant/${lib.ant.artifact}-src.zip/${lib.ant.artifact}/src/main</directory> - <outputDirectory>ant/ant-src.zip</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-beanutils-binaries</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-beanutils-${lib.commons.beanutils.version}.jar</directory> - <outputDirectory>commons/commons.jar</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-collections-binaries</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-collections-${lib.commons.collections.version}.jar</directory> - <outputDirectory>commons/commons.jar</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-digester-binaries</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-digester-${lib.commons.digester.version}.jar</directory> - <outputDirectory>commons/commons.jar</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-logging-binaries</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-logging-${lib.commons.logging.version}.jar</directory> - <outputDirectory>commons/commons.jar</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-beanutils-sources</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-beanutils-${lib.commons.beanutils.version}-sources.jar/commons-beanutils-${lib.commons.beanutils.tag}/src/java</directory> - <outputDirectory>commons/commons-src.zip</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-collections-sources</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-collections-${lib.commons.collections.version}-sources.jar/commons-collections-${lib.commons.collections.tag}/src/java</directory> - <outputDirectory>commons/commons-src.zip</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-digester-sources</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-digester-${lib.commons.digester.version}-sources.jar/commons-digester-${lib.commons.digester.tag}/src/java</directory> - <outputDirectory>commons/commons-src.zip</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-logging-sources</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>commons/commons-logging-${lib.commons.logging.version}-sources.jar/commons-logging-${lib.commons.logging.tag}/src/java</directory> - <outputDirectory>commons/commons-src.zip</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>unzip-docbook-dtd</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>docbook/docbkx412.zip</directory> - <outputDirectory>docbook/docbook-dtd</outputDirectory> - </fileset> - </configuration> - </execution> - <execution> - <id>unzip-docbook-xsl</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>docbook/docbook-xsl-1.44.zip/docbook-xsl-1.44</directory> - <outputDirectory>docbook/docbook-xsl</outputDirectory> - </fileset> - </configuration> - </execution> - <!-- - Obsolete because we uploaded both binary and source JARs to GitHub Packages, so we can use JDiff as a normal - dependency. Keep this for reference, so we can remember how we built it. After download + zip the deployment - was made right from the lib/jdiff directory, using the following commands (without the line breaks): + <artifactItem> + <!-- Available from GitHub Packages (needs special repository declaration) --> + <groupId>org.aspectj</groupId> + <artifactId>org.eclipse.jdt.core</artifactId> + <version>${jdt.core.version}</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>jdtcore-aj</outputDirectory> + <destFileName>jdtcore-for-aspectj.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Available from GitHub Packages (needs special repository declaration) --> + <groupId>org.aspectj</groupId> + <artifactId>org.eclipse.jdt.core</artifactId> + <version>${jdt.core.version}</version> + <type>java-source</type> + <classifier>sources</classifier> + <overWrite>false</overWrite> + <outputDirectory>jdtcore-aj</outputDirectory> + <destFileName>jdtcore-for-aspectj-src.zip</destFileName> + </artifactItem> - mvn -Dfile=jdiff.jar -DrepositoryId=github -Durl=https://maven.pkg.github.com/kriegaex/aspectj-packages - -DgroupId=jdiff -DartifactId=jdiff -Dpackaging=jar -Dversion=1.3 - deploy:deploy-file + <artifactItem> + <!-- Binary is identical to committed version in branch 'jdtcore-new' --> + <groupId>com.googlecode.jarjar</groupId> + <artifactId>jarjar</artifactId> + <version>1.3</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>jarjar</outputDirectory> + <destFileName>jarjar-1.3.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>junit</outputDirectory> + <destFileName>junit.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <!-- TODO: Is this redundant JUnit JAR in ant/lib really necessary? If so, why? --> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>ant/lib</outputDirectory> + <destFileName>junit.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <type>jar</type> + <classifier>sources</classifier> + <overWrite>false</overWrite> + <outputDirectory>junit</outputDirectory> + <destFileName>junit-src.zip</destFileName> + </artifactItem> - mvn -Dfile=jdiff-src.zip -DrepositoryId=github -Durl=https://maven.pkg.github.com/kriegaex/aspectj-packages - -DgroupId=jdiff -DartifactId=jdiff -Dpackaging=jar -Dversion=1.3 - -Dtypes=java-source -Dclassifier=sources - deploy:deploy-file + <!-- Jython does not seem to be used anywhere in AspectJ --> + + <artifactItem> + <!-- Binary is a bit newer than committed version, but produces identical results in 'docs' --> + <groupId>saxon</groupId> + <artifactId>saxon</artifactId> + <version>6.5.3</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>saxon</outputDirectory> + <destFileName>saxon.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <groupId>regexp</groupId> + <artifactId>regexp</artifactId> + <version>${lib.regexp.version}</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>regexp</outputDirectory> + <destFileName>jakarta-regexp-1.2.jar</destFileName> + </artifactItem> + + <!-- + About commons.jar + commons-src.zip: + - Beanutils Binaries are commons-beanutils:commons-beanutils:1.4 (no sources on Maven Central, but + https://github.com/apache/commons-beanutils/archive/refs/tags/BEANUTILS_1_4.zip) + - Collections: Binaries are commons-collections:commons-collections:2.0 (no sources on Maven Central, but + https://github.com/apache/commons-collections/archive/refs/tags/collections-2.0.zip) + - Digester: Binaries are commons-digester:commons-digester:1.3 (no sources on Maven Central, but + https://github.com/apache/commons-digester/archive/refs/tags/DIGESTER_1_3.zip) + - Logging: Binaries are commons-logging:commons-logging:1.0.1 (no sources on Maven Central, but + https://github.com/apache/commons-logging/archive/refs/tags/LOGGING_1_0_1.zip) + --> + <artifactItem> + <!-- Binary is identical to committed version --> + <!-- TODO: not used anywhere -> remove --> + <groupId>commons-beanutils</groupId> + <artifactId>commons-beanutils</artifactId> + <version>${lib.commons.beanutils.version}</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>commons</outputDirectory> + <destFileName>commons-beanutils-${lib.commons.beanutils.version}.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <!-- TODO: not used anywhere -> remove --> + <groupId>commons-collections</groupId> + <artifactId>commons-collections</artifactId> + <version>2.0</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>commons</outputDirectory> + <destFileName>commons-collections-2.0.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <!-- TODO: used in module 'testing' --> + <groupId>commons-digester</groupId> + <artifactId>commons-digester</artifactId> + <version>${lib.commons.digester.version}</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>commons</outputDirectory> + <destFileName>commons-digester-${lib.commons.digester.version}.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <!-- TODO: used in modules 'org.aspectj.matcher' --> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>${lib.commons.logging.version}</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>commons</outputDirectory> + <destFileName>commons-logging-${lib.commons.logging.version}.jar</destFileName> + </artifactItem> + + <!-- Libraries used to create HTML docs from XML DocBook files --> + <artifactItem> + <!-- Binary is identical to committed version --> + <groupId>fop</groupId> + <artifactId>fop</artifactId> + <version>0.20.5</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>docbook</outputDirectory> + <destFileName>fop.jar</destFileName> + </artifactItem> + <artifactItem> + <!-- Binary is identical to committed version --> + <groupId>batik</groupId> + <artifactId>batik-1.5-fop</artifactId> + <version>0.20-5</version> + <type>jar</type> + <overWrite>false</overWrite> + <outputDirectory>docbook</outputDirectory> + <destFileName>batik.jar</destFileName> + </artifactItem> + + </artifactItems> + </configuration> + </execution> + </executions> + </plugin> + + <!-- (Un)zip downloaded libraries the way our build needs them --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>truezip-maven-plugin</artifactId> + <version>1.2</version> + <!-- + The TrueZIP plugin can seamlessly copy out of or into (nested) ZIP files as if they were normal file system + paths. No additional moves and deletes with Antrun are necessary. + --> + <executions> + <execution> + <id>unzip-ant-binaries</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>ant/${lib.ant.artifact}-bin.zip/${lib.ant.artifact}</directory> + <outputDirectory>ant</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-ant-sources</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>ant/${lib.ant.artifact}-src.zip/${lib.ant.artifact}/src/main</directory> + <outputDirectory>ant/ant-src.zip</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-beanutils-binaries</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-beanutils-${lib.commons.beanutils.version}.jar</directory> + <outputDirectory>commons/commons.jar</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-collections-binaries</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-collections-${lib.commons.collections.version}.jar</directory> + <outputDirectory>commons/commons.jar</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-digester-binaries</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-digester-${lib.commons.digester.version}.jar</directory> + <outputDirectory>commons/commons.jar</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-logging-binaries</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-logging-${lib.commons.logging.version}.jar</directory> + <outputDirectory>commons/commons.jar</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-beanutils-sources</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-beanutils-${lib.commons.beanutils.version}-sources.jar/commons-beanutils-${lib.commons.beanutils.tag}/src/java</directory> + <outputDirectory>commons/commons-src.zip</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-collections-sources</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-collections-${lib.commons.collections.version}-sources.jar/commons-collections-${lib.commons.collections.tag}/src/java</directory> + <outputDirectory>commons/commons-src.zip</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-digester-sources</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-digester-${lib.commons.digester.version}-sources.jar/commons-digester-${lib.commons.digester.tag}/src/java</directory> + <outputDirectory>commons/commons-src.zip</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-logging-sources</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>commons/commons-logging-${lib.commons.logging.version}-sources.jar/commons-logging-${lib.commons.logging.tag}/src/java</directory> + <outputDirectory>commons/commons-src.zip</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>unzip-docbook-dtd</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>docbook/docbkx412.zip</directory> + <outputDirectory>docbook/docbook-dtd</outputDirectory> + </fileset> + </configuration> + </execution> + <execution> + <id>unzip-docbook-xsl</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>docbook/docbook-xsl-1.44.zip/docbook-xsl-1.44</directory> + <outputDirectory>docbook/docbook-xsl</outputDirectory> + </fileset> + </configuration> + </execution> + <!-- + Obsolete because we uploaded both binary and source JARs to GitHub Packages, so we can use JDiff as a normal + dependency. Keep this for reference, so we can remember how we built it. After download + zip the deployment + was made right from the lib/jdiff directory, using the following commands (without the line breaks): + + mvn -Dfile=jdiff.jar -DrepositoryId=github -Durl=https://maven.pkg.github.com/kriegaex/aspectj-packages + -DgroupId=jdiff -DartifactId=jdiff -Dpackaging=jar -Dversion=1.3 + deploy:deploy-file + + mvn -Dfile=jdiff-src.zip -DrepositoryId=github -Durl=https://maven.pkg.github.com/kriegaex/aspectj-packages + -DgroupId=jdiff -DartifactId=jdiff -Dpackaging=jar -Dversion=1.3 + -Dtypes=java-source -Dclassifier=sources + deploy:deploy-file + + The second command yields an error, trying to re-upload a POM, but that is no problem because the POM would + be identical to the one already uploaded with the first command. + --> + <!-- + <execution> + <id>zip-jdiff-binaries</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>jdiff/JDiffPlugin-1.3.zip/JDiffPlugin.jar</directory> + <outputDirectory>jdiff/jdiff.jar</outputDirectory> + <includes> + <include>**/*.class</include> + </includes> + <excludes> + <exclude>jdiff/options/**</exclude> + <exclude>jdiff/*.class</exclude> + </excludes> + </fileset> + </configuration> + </execution> + <execution> + <id>zip-jdiff-sources</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <verbose>true</verbose> + <fileset> + <directory>jdiff/JDiffPlugin-1.3.zip/JDiffPlugin</directory> + <outputDirectory>jdiff/jdiff-src.zip</outputDirectory> + <includes> + <include>**/*.java</include> + </includes> + <excludes> + <exclude>jdiff/options/**</exclude> + <exclude>jdiff/*.java</exclude> + </excludes> + </fileset> + </configuration> + </execution> + --> + </executions> + </plugin> - The second command yields an error, trying to re-upload a POM, but that is no problem because the POM would - be identical to the one already uploaded with the first command. - --> <!-- - <execution> - <id>zip-jdiff-binaries</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>jdiff/JDiffPlugin-1.3.zip/JDiffPlugin.jar</directory> - <outputDirectory>jdiff/jdiff.jar</outputDirectory> - <includes> - <include>**/*.class</include> - </includes> - <excludes> - <exclude>jdiff/options/**</exclude> - <exclude>jdiff/*.class</exclude> - </excludes> - </fileset> - </configuration> - </execution> - <execution> - <id>zip-jdiff-sources</id> - <phase>process-resources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <verbose>true</verbose> - <fileset> - <directory>jdiff/JDiffPlugin-1.3.zip/JDiffPlugin</directory> - <outputDirectory>jdiff/jdiff-src.zip</outputDirectory> - <includes> - <include>**/*.java</include> - </includes> - <excludes> - <exclude>jdiff/options/**</exclude> - <exclude>jdiff/*.java</exclude> - </excludes> - </fileset> - </configuration> - </execution> + After all libraries have been provisioned successfully, create a marker file in order to avoid provisioning + them again during the next build --> - </executions> - </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <executions> + <execution> + <id>create-marker-file</id> + <phase>process-resources</phase> + <goals> + <goal>bsh-property</goal> + </goals> + <configuration> + <source><![CDATA[ + myFile = new File(project.getBasedir(), "${lib.provisioned.marker}"); + print("Finished provisioning libraries, creating marker file " + myFile.getCanonicalPath()); + myFile.createNewFile(); + ]]></source> + </configuration> + </execution> + </executions> + </plugin> + + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.aspectj</groupId> + <artifactId>org.eclipse.jdt.core</artifactId> + </dependency> + </dependencies> + + </profile> + + <!-- Profile for including provisioned libraries when running 'mvn clean'; inactive by default, activate manually --> + <profile> + <id>clean-libs</id> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-clean-plugin</artifactId> + <executions> + <execution> + <id>clean-up-libs</id> + <phase>clean</phase> + <goals> + <goal>clean</goal> + </goals> + <configuration> + <filesets> + <fileset> + <directory>.</directory> + <includes> + <include>${lib.provisioned.marker}</include> + <include>ant/**</include> + <include>commons/**</include> + <include>docbook/**</include> + <include>jarjar/**</include> + <!-- Obsolete because JDiff is on GitHub Packages now. Keep for reference. --> + <!--<include>jdiff/**</include>--> + <include>jdtcore-aj/**</include> + <include>junit/**</include> + <include>regexp/**</include> + <include>saxon/**</include> + </includes> + <followSymlinks>false</followSymlinks> + </fileset> + </filesets> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + + </profile> + + </profiles> + + <build> + <plugins> + <!-- + Heuristic consistency check for existence of provisioned library files. Do not just rely on + ${lib.provisioned.marker} file. + --> <plugin> <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-clean-plugin</artifactId> + <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> - <id>clean-up-libs</id> - <phase>clean</phase> + <id>enforce-libraries-exist</id> + <phase>process-resources</phase> <goals> - <goal>clean</goal> + <goal>enforce</goal> </goals> <configuration> - <filesets> - <fileset> - <directory>.</directory> - <includes> - <include>ant/**</include> - <include>commons/**</include> - <include>docbook/**</include> - <include>jarjar/**</include> - <!-- Obsolete because JDiff is on GitHub Packages now. Keep for reference. --> - <!--<include>jdiff/**</include>--> - <include>jdtcore-aj/**</include> - <include>junit/**</include> - <include>regexp/**</include> - <include>saxon/**</include> - </includes> - <followSymlinks>false</followSymlinks> - </fileset> - </filesets> + <rules> + <requireFilesExist> + <!-- + Do NOT insert any line breaks + indentation inside the message, keep it on a single line. + Maven Enforcer does not strip any whitespace or unindent, which looks quite ugly on the console. + --> + <message> + There is an inconsistency in module subdirectory 'lib'. Please run 'mvn --projects lib -P clean-libs clean compile'. This should take care of cleaning and freshly downloading all necessary libraries to that directory, where some tests expect them to be. + </message> + <files> + <file>${lib.provisioned.marker}</file> + <file>ant/bin/ant.bat</file> + <file>ant/lib/junit.jar</file> + <file>commons/commons.jar</file> + <file>docbook/docbook-dtd/docbookx.dtd</file> + <file>docbook/docbook-xsl/html/chunk.xsl</file> + <file>docbook/fop.jar</file> + <file>docbook/batik.jar</file> + <file>jarjar/jarjar-1.3.jar</file> + <file>jdtcore-aj/jdtcore-for-aspectj.jar</file> + <file>junit/junit.jar</file> + <file>regexp/jakarta-regexp-1.2.jar</file> + <file>saxon/saxon.jar</file> + </files> + </requireFilesExist> + </rules> + <fail>true</fail> </configuration> </execution> </executions> </plugin> - </plugins> </build> - <dependencies> - <dependency> - <groupId>org.aspectj</groupId> - <artifactId>org.eclipse.jdt.core</artifactId> - </dependency> - </dependencies> - </project> |