blob: 6011b075af3fd0ed38091f0b8a3a028b89a37209 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
-->
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.commons</groupId>
<artifactId>commons-parent</artifactId>
<version>69</version>
</parent>
<groupId>org.apache.bcel</groupId>
<artifactId>bcel</artifactId>
<packaging>jar</packaging>
<version>6.9.1-SNAPSHOT</version>
<name>Apache Commons BCEL</name>
<description>Apache Commons Bytecode Engineering Library</description>
<url>https://commons.apache.org/proper/commons-bcel</url>
<inceptionYear>2004</inceptionYear>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<project.build.outputTimestamp>2024-04-27T12:58:11Z</project.build.outputTimestamp>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<commons.componentid>bcel</commons.componentid>
<commons.module.name>org.apache.bcel</commons.module.name>
<commons.release.version>6.9.0</commons.release.version>
<commons.release.next>6.9.1</commons.release.next>
<commons.release.isDistModule>true</commons.release.isDistModule>
<commons.rc.version>RC1</commons.rc.version>
<commons.bc.version>6.8.2</commons.bc.version>
<commons.release.desc>(Java 8 or above)</commons.release.desc>
<commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-bcel</commons.scmPubUrl>
<commons.distSvnStagingUrl>scm:svn:https://dist.apache.org/repos/dist/dev/commons/${commons.componentid}</commons.distSvnStagingUrl>
<!-- Configuration properties for the OSGi maven-bundle-plugin -->
<commons.osgi.symbolicName>org.apache.${commons.componentid}</commons.osgi.symbolicName>
<commons.osgi.export>org.apache.bcel.*;version=${project.version};-noimport:=true</commons.osgi.export>
<commons.osgi.import>*</commons.osgi.import>
<commons.osgi.dynamicImport />
<commons.osgi.private />
<commons.jira.id>BCEL</commons.jira.id>
<commons.jira.pid>12314220</commons.jira.pid>
<mockito.version>4.11.0</mockito.version>
<assertj.version>3.25.3</assertj.version>
<jna.version>5.14.0</jna.version>
<japicmp.skip>false</japicmp.skip>
<commons.jacoco.haltOnFailure>true</commons.jacoco.haltOnFailure>
<!-- JaCoCo on Java 8 is different from other versions. On JDK9+ there is a profile -->
<!-- JaCoCo: Don't make code coverage worse than: -->
<commons.jacoco.classRatio>0.89</commons.jacoco.classRatio>
<commons.jacoco.instructionRatio>0.65</commons.jacoco.instructionRatio>
<commons.jacoco.methodRatio>0.70</commons.jacoco.methodRatio>
<commons.jacoco.branchRatio>0.59</commons.jacoco.branchRatio>
<commons.jacoco.lineRatio>0.68</commons.jacoco.lineRatio>
<commons.jacoco.complexityRatio>0.58</commons.jacoco.complexityRatio>
</properties>
<distributionManagement>
<site>
<id>apache.website</id>
<name>Apache Commons Site</name>
<url>scm:svn:https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-bcel/</url>
</site>
</distributionManagement>
<ciManagement>
<system>GitHub</system>
<url>https://github.com/apache/commons-bcel/actions</url>
</ciManagement>
<issueManagement>
<system>jira</system>
<url>https://issues.apache.org/jira/browse/BCEL</url>
</issueManagement>
<scm>
<connection>scm:git:https://gitbox.apache.org/repos/asf/commons-bcel.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/commons-bcel.git</developerConnection>
<url>https://gitbox.apache.org/repos/asf?p=commons-bcel.git</url>
</scm>
<build>
<defaultGoal>clean verify apache-rat:check japicmp:cmp checkstyle:check pmd:check spotbugs:check javadoc:javadoc</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>src/test/resources/**</exclude>
<exclude>docs/*.bib</exclude>
<exclude>docs/*.mdl</exclude>
<exclude>docs/eps/*</exclude>
<exclude>**/*.eps</exclude>
<exclude>**/*.bnf</exclude>
<exclude>**/*.mini</exclude>
<exclude>TODO.JustIce</exclude>
<exclude>src/examples/Mini/MiniParser$JJCalls</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
<!-- Temporary fix for BCEL-293, remove this after this has implemented in parent pom -->
<configuration>
<archive combine.children="append">
<manifestEntries>
<Automatic-Module-Name>org.apache.bcel</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<testExcludes>
<testExclude>**/*Benchmark*</testExclude>
</testExcludes>
<!-- MethodParameters attribute in class file -->
<parameters>true</parameters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<!-- Suppress the stats, but keep the test as it exercises the code -->
<PerformanceTest.report>false</PerformanceTest.report>
</systemPropertyVariables>
<includes>
<include>**/*TestCase.java</include>
<include>**/PerformanceTest.java</include>
</includes>
<excludes>
<exclude>**/Abstract*</exclude>
<!-- Takes rather a long time (especially rt.jar) ; only needs to be done occasionally -->
<exclude>**/JDKClassDumpTestCase.java</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<!-- These need to be specified because CP includes a descriptor -->
<descriptors>
<descriptor>src/assembly/bin.xml</descriptor>
<descriptor>src/assembly/src.xml</descriptor>
</descriptors>
<tarLongFileMode>gnu</tarLongFileMode>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<configuration>
<ignorePathsToDelete>
<ignorePathToDelete>javadocs</ignorePathToDelete>
</ignorePathsToDelete>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>${basedir}/src/conf/checkstyle.xml</configLocation>
<!-- Needed to define config_loc -->
<propertyExpansion>config_loc=${basedir}</propertyExpansion>
<enableRulesSummary>false</enableRulesSummary>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
</configuration>
</plugin>
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<configuration>
<threshold>Normal</threshold>
<effort>Default</effort>
<excludeFilterFile>src/conf/spotbugs-exclude-filter.xml</excludeFilterFile>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<targetJdk>${maven.compiler.target}</targetJdk>
<rulesets>
<ruleset>${basedir}/src/conf/pmd-ruleset.xml</ruleset>
</rulesets>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>merge-all-jacoco</id>
<goals>
<goal>merge</goal>
</goals>
<phase>install</phase>
<configuration>
<fileSets>
<fileSet>
<directory>${project.build.directory}</directory>
<includes>
<include>*.exec</include>
</includes>
</fileSet>
</fileSets>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<configLocation>${basedir}/src/conf/checkstyle.xml</configLocation>
<!-- Needed to define config_loc -->
<propertyExpansion>config_loc=${basedir}</propertyExpansion>
<enableRulesSummary>false</enableRulesSummary>
</configuration>
<!-- We need to specify reportSets because 2.9.1 creates two reports -->
<reportSets>
<reportSet>
<reports>
<report>checkstyle</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<targetJdk>${maven.compiler.target}</targetJdk>
<linkXRef>true</linkXRef>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<tags>
<tag>TODO</tag>
<tag>NOPMD</tag>
<tag>NOTE</tag>
</tags>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<version>${commons.rat.version}</version>
<configuration>
<excludes>
<exclude>src/test/resources/**</exclude>
<exclude>docs/*.bib</exclude>
<exclude>docs/*.mdl</exclude>
<exclude>docs/eps/*</exclude>
<exclude>**/*.eps</exclude>
<exclude>**/*.bnf</exclude>
<exclude>**/*.mini</exclude>
<exclude>TODO.JustIce</exclude>
<exclude>src/examples/Mini/MiniParser$JJCalls</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>com.github.siom79.japicmp</groupId>
<artifactId>japicmp-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<configuration>
<threshold>Normal</threshold>
<effort>Default</effort>
<excludeFilterFile>src/conf/spotbugs-exclude-filter.xml</excludeFilterFile>
<!-- Hacky: Don't allow new SpotBugs errors -->
<maxAllowedViolations>9</maxAllowedViolations>
</configuration>
</plugin>
</plugins>
</reporting>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>${jna.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.14.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- BCEL-336 refers to this specific version. -->
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
<version>1.4.0</version>
<scope>test</scope>
</dependency>
<!-- START very old jars for Justice verifier -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.5.3</version>
<scope>test</scope>
</dependency>
<!-- END very old jars for Justice verifier -->
<dependency>
<!-- Eclipse compiler: useful to generate specific .class file patterns -->
<groupId>org.eclipse.jdt</groupId>
<artifactId>ecj</artifactId>
<version>3.26.0</version> <!-- last JDK8-compatible version -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib</artifactId>
<version>1.9.23</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<!-- Profile to build and run PerformanceTest. Use 'mvn test -Pjdk-rt' -->
<profile>
<id>jdk-rt</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>${commons.surefire.version}</version>
<configuration>
<includes>
<include>**/PerformanceTest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile to build and run the benchmarks. Use 'mvn test -Pbenchmark', and add '-Dbenchmark=foo' to run only the foo benchmark -->
<profile>
<id>benchmark</id>
<properties>
<skipTests>true</skipTests>
<benchmark>org.apache</benchmark>
<jmh.version>1.37</jmh.version>
</properties>
<dependencies>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>${jmh.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>${jmh.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.16.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Enable the compilation of the benchmarks -->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>${commons.compiler.version}</version>
<configuration combine.self="override">
<testIncludes>
<testInclude>**/*</testInclude>
</testIncludes>
</configuration>
</plugin>
<!-- Hook the benchmarks to the test phase -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>benchmark</id>
<phase>test</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<classpath />
<argument>org.openjdk.jmh.Main</argument>
<argument>-rf</argument>
<argument>json</argument>
<argument>-rff</argument>
<argument>target/jmh-result.json</argument>
<argument>${benchmark}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- Java 9 and up -->
<id>java-9-up</id>
<activation>
<jdk>[9,)</jdk>
</activation>
<properties>
<!-- JaCoCo: Don't make code coverage worse than: -->
<commons.jacoco.classRatio>0.90</commons.jacoco.classRatio>
<commons.jacoco.instructionRatio>0.65</commons.jacoco.instructionRatio>
<commons.jacoco.methodRatio>0.70</commons.jacoco.methodRatio>
<commons.jacoco.branchRatio>0.58</commons.jacoco.branchRatio>
<commons.jacoco.lineRatio>0.68</commons.jacoco.lineRatio>
<commons.jacoco.complexityRatio>0.58</commons.jacoco.complexityRatio>
</properties>
</profile>
</profiles>
<developers>
<developer>
<name>Dave Brosius</name>
<id>dbrosius</id>
<email>dbrosius at mebigfatguy.com</email>
</developer>
<developer>
<name>Torsten Curdt</name>
<id>tcurdt</id>
<email>tcurdt at apache.org</email>
<organization>ASF</organization>
<organizationUrl>http://www.apache.org/</organizationUrl>
<timezone>+1</timezone>
</developer>
<developer>
<name>Markus Dahm</name>
<id>mdahm</id>
<email>m.dahm at gmx.de</email>
<organization>it-frameworksolutions</organization>
</developer>
<developer>
<name>Jason van Zyl</name>
<email>jason at zenplex.com</email>
</developer>
<developer>
<id>ggregory</id>
<name>Gary Gregory</name>
<email>ggregory at apache.org</email>
<url>https://www.garygregory.com</url>
<organization>The Apache Software Foundation</organization>
<organizationUrl>https://www.apache.org/</organizationUrl>
<roles>
<role>PMC Member</role>
</roles>
<timezone>America/New_York</timezone>
<properties>
<picUrl>https://people.apache.org/~ggregory/img/garydgregory80.png</picUrl>
</properties>
</developer>
</developers>
<contributors>
<contributor>
<name>Enver Haase</name>
<email>enver at convergence.de</email>
</contributor>
<contributor>
<name>David Dixon-Peugh</name>
<email>dixonpeugh at yahoo.com</email>
</contributor>
<contributor>
<name>Patrick Beard</name>
<email>beard at netscape.com</email>
</contributor>
<contributor>
<name>Conor MacNeill</name>
<email>conor at cortexbusiness.com.au</email>
</contributor>
<contributor>
<name>Costin Manolache</name>
<email>cmanolache at yahoo.com</email>
</contributor>
<contributor>
<name>Bill Pugh</name>
<email>bill.pugh at gmail.com</email>
</contributor>
<contributor>
<name>First Hop Ltd / Torsten Rueger</name>
</contributor>
<contributor>
<name>Jérôme Leroux</name>
</contributor>
<contributor>
<name>Mark Roberts</name>
</contributor>
<contributor>
<name>Sam Yoon</name>
</contributor>
<contributor>
<name>Arturo Bernal</name>
</contributor>
</contributors>
</project>