1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements. See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership. The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License. You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied. See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19-->
20<project
21  xmlns="http://maven.apache.org/POM/4.0.0"
22  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
23  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
24
25  <modelVersion>4.0.0</modelVersion>
26
27  <parent>
28    <groupId>org.apache.commons</groupId>
29    <artifactId>commons-parent</artifactId>
30    <version>42</version>
31  </parent>
32
33  <groupId>org.apache.bcel</groupId>
34  <artifactId>bcel</artifactId>
35  <packaging>jar</packaging>
36  <version>6.2</version>
37  <name>Apache Commons BCEL</name>
38  <description>Apache Commons Bytecode Engineering Library</description>
39
40  <url>http://commons.apache.org/proper/commons-bcel</url>
41  <inceptionYear>2004</inceptionYear>
42
43  <properties>
44    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
45    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
46    <maven.compiler.source>1.7</maven.compiler.source>
47    <maven.compiler.target>1.7</maven.compiler.target>
48    <commons.componentid>bcel</commons.componentid>
49    <commons.module.name>org.apache.bcel</commons.module.name>
50    <commons.release.version>6.2</commons.release.version>
51    <commons.release.desc>(Java 7+)</commons.release.desc>
52    <commons.scmPubUrl>https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-bcel</commons.scmPubUrl>
53    <!-- Configuration properties for the OSGi maven-bundle-plugin -->
54    <commons.osgi.symbolicName>org.apache.${commons.componentid}</commons.osgi.symbolicName>
55    <commons.osgi.export>org.apache.bcel.*;version=${project.version};-noimport:=true</commons.osgi.export>
56    <commons.osgi.import>*</commons.osgi.import>
57    <commons.osgi.dynamicImport />
58    <commons.osgi.private />
59    <commons.jira.id>BCEL</commons.jira.id>
60    <commons.jira.pid>12314220</commons.jira.pid>
61    <commons.findbugs.version>3.0.5</commons.findbugs.version>
62    <checkstyle.plugin.version>2.17</checkstyle.plugin.version>
63    <commons.clirr.version>2.8</commons.clirr.version>
64    <jna.version>4.5.0</jna.version>
65  </properties>
66
67  <!-- Cannot be added to Commons Parent, see https://issues.apache.org/jira/browse/COMMONSSITE-26 -->
68  <distributionManagement>
69    <site>
70      <id>apache.website</id>
71      <name>Apache Website</name>
72      <url>scp://people.apache.org/www/commons.apache.org/${commons.componentid}/</url>
73    </site>
74  </distributionManagement>
75
76  <licenses>
77    <license>
78      <name>Apache License, Version 2.0</name>
79      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
80      <distribution>repo</distribution>
81    </license>
82  </licenses>
83
84  <organization>
85    <name>The Apache Software Foundation</name>
86    <url>http://www.apache.org/</url>
87  </organization>
88
89  <developers>
90    <developer>
91      <name>Dave Brosius</name>
92      <id>dbrosius</id>
93      <email>dbrosius at mebigfatguy.com</email>
94    </developer>
95
96    <developer>
97      <name>Torsten Curdt</name>
98      <id>tcurdt</id>
99      <email>tcurdt at apache.org</email>
100      <organization>ASF</organization>
101      <organizationUrl>http://www.apache.org/</organizationUrl>
102      <timezone>+1</timezone>
103    </developer>
104
105    <developer>
106      <name>Markus Dahm</name>
107      <id>mdahm</id>
108      <email>m.dahm at gmx.de</email>
109      <organization>it-frameworksolutions</organization>
110    </developer>
111
112    <developer>
113      <name>Jason van Zyl</name>
114      <email>jason at zenplex.com</email>
115    </developer>
116
117    <developer>
118      <id>ggregory</id>
119      <name>Gary Gregory</name>
120      <email>ggregory@apache.org</email>
121      <organization>Rocket Software</organization>
122      <roles>
123        <role>PMC Member</role>
124      </roles>
125      <timezone>America/New_York</timezone>
126    </developer>
127
128  </developers>
129
130  <contributors>
131
132    <contributor>
133      <name>Enver Haase</name>
134      <email>enver at convergence.de</email>
135    </contributor>
136
137    <contributor>
138      <name>David Dixon-Peugh</name>
139      <email>dixonpeugh at yahoo.com</email>
140    </contributor>
141
142    <contributor>
143      <name>Patrick Beard</name>
144      <email>beard at netscape.com</email>
145    </contributor>
146
147    <contributor>
148      <name>Conor MacNeill</name>
149      <email>conor at cortexbusiness.com.au</email>
150    </contributor>
151
152    <contributor>
153      <name>Costin Manolache</name>
154      <email>cmanolache at yahoo.com</email>
155    </contributor>
156
157    <contributor>
158      <name>Bill Pugh</name>
159      <email>bill.pugh at gmail.com</email>
160    </contributor>
161
162    <contributor>
163      <name>First Hop Ltd / Torsten Rueger</name>
164    </contributor>
165
166    <contributor>
167      <name>Jérôme Leroux</name>
168    </contributor>
169
170    <contributor>
171      <name>Mark Roberts</name>
172    </contributor>
173
174    <contributor>
175      <name>Sam Yoon</name>
176    </contributor>
177  </contributors>
178
179  <mailingLists>
180    <mailingList>
181      <name>BCEL User List</name>
182      <subscribe>user-subscribe@commons.apache.org</subscribe>
183      <unsubscribe>user-unsubscribe@commons.apache.org</unsubscribe>
184      <archive>http://mail-archives.apache.org/mod_mbox/commons-user/</archive>
185    </mailingList>
186    <mailingList>
187      <name>BCEL Developer List</name>
188      <subscribe>dev-subscribe@commons.apache.org</subscribe>
189      <unsubscribe>dev-unsubscribe@commons.apache.org</unsubscribe>
190      <archive>http://mail-archives.apache.org/mod_mbox/commons-dev/</archive>
191    </mailingList>
192  </mailingLists>
193
194  <issueManagement>
195    <system>jira</system>
196    <url>http://issues.apache.org/jira/browse/BCEL</url>
197  </issueManagement>
198
199  <scm>
200    <connection>scm:svn:http://svn.apache.org/repos/asf/commons/proper/bcel/trunk</connection>
201    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/commons/proper/bcel/trunk</developerConnection>
202    <url>http://svn.apache.org/repos/asf/commons/proper/bcel/trunk</url>
203  </scm>
204
205  <build>
206    <plugins>
207      <plugin>
208        <groupId>org.apache.rat</groupId>
209        <artifactId>apache-rat-plugin</artifactId>
210        <version>${commons.rat.version}</version>
211        <configuration>
212          <excludes>
213            <exclude>src/test/resources/**</exclude>
214            <exclude>docs/*.bib</exclude>
215            <exclude>docs/*.mdl</exclude>
216            <exclude>docs/eps/*</exclude>
217            <exclude>**/*.eps</exclude>
218            <exclude>**/*.bnf</exclude>
219            <exclude>**/*.mini</exclude>
220            <exclude>TODO.JustIce</exclude>
221            <exclude>src/examples/Mini/MiniParser$JJCalls</exclude>
222          </excludes>
223        </configuration>
224      </plugin>
225      <!-- Allow Clirr to be run from command line -->
226      <plugin>
227        <groupId>org.codehaus.mojo</groupId>
228        <artifactId>clirr-maven-plugin</artifactId>
229        <version>${commons.clirr.version}</version>
230        <configuration>
231          <minSeverity>${minSeverity}</minSeverity>
232        </configuration>
233      </plugin>
234      <plugin>
235        <groupId>org.apache.maven.plugins</groupId>
236        <artifactId>maven-jar-plugin</artifactId>
237        <executions>
238          <execution>
239            <goals>
240              <goal>test-jar</goal>
241            </goals>
242          </execution>
243        </executions>
244        <!-- Temporary fix for BCEL-293, remove this after this has implemented in parent pom -->
245        <configuration>
246          <archive combine.children="append">
247            <manifestEntries>
248              <Automatic-Module-Name>org.apache.bcel</Automatic-Module-Name>
249            </manifestEntries>
250          </archive>
251        </configuration>
252      </plugin>
253      <plugin>
254        <artifactId>maven-compiler-plugin</artifactId>
255        <configuration>
256          <testExcludes>
257            <testExclude>**/*Benchmark*</testExclude>
258          </testExcludes>
259        </configuration>
260      </plugin>
261      <plugin>
262        <groupId>org.apache.maven.plugins</groupId>
263        <artifactId>maven-source-plugin</artifactId>
264        <executions>
265          <execution>
266            <id>attach-sources</id>
267            <goals>
268              <goal>jar</goal>
269            </goals>
270          </execution>
271        </executions>
272      </plugin>
273      <plugin>
274        <artifactId>maven-surefire-plugin</artifactId>
275        <configuration>
276          <systemProperties>
277            <property>
278              <!-- Suppress the stats, but keep the test as it exercises the code -->
279              <name>PerformanceTest.report</name>
280              <value>false</value>
281            </property>
282          </systemProperties>
283          <includes>
284            <include>**/*TestCase.java</include>
285            <include>**/PerformanceTest.java</include>
286          </includes>
287          <excludes>
288            <exclude>**/Abstract*</exclude>
289            <!-- Takes rather a long time (especially rt.jar) ; only needs to be done occasionally -->
290            <exclude>**/JDKClassDumpTestCase.java</exclude>
291          </excludes>
292        </configuration>
293      </plugin>
294      <plugin>
295        <artifactId>maven-assembly-plugin</artifactId>
296        <configuration>
297          <!-- These need to be specified because CP includes a descriptor -->
298          <descriptors>
299            <descriptor>src/assembly/bin.xml</descriptor>
300            <descriptor>src/assembly/src.xml</descriptor>
301          </descriptors>
302          <tarLongFileMode>gnu</tarLongFileMode>
303        </configuration>
304      </plugin>
305      <plugin>
306        <groupId>org.apache.maven.plugins</groupId>
307        <artifactId>maven-scm-publish-plugin</artifactId>
308        <configuration>
309          <ignorePathsToDelete>
310            <ignorePathToDelete>javadocs</ignorePathToDelete>
311          </ignorePathsToDelete>
312        </configuration>
313      </plugin>
314      <plugin>
315        <groupId>org.apache.maven.plugins</groupId>
316        <artifactId>maven-checkstyle-plugin</artifactId>
317        <version>${checkstyle.plugin.version}</version>
318        <configuration>
319          <configLocation>${basedir}/src/conf/checkstyle.xml</configLocation>
320          <!-- Needed to define config_loc -->
321          <propertyExpansion>config_loc=${basedir}</propertyExpansion>
322          <enableRulesSummary>false</enableRulesSummary>
323        </configuration>
324      </plugin>
325    </plugins>
326  </build>
327
328  <reporting>
329    <plugins>
330      <!--
331        <plugin>
332        <groupId>org.codehaus.mojo</groupId>
333        <artifactId>jardiff-maven-plugin</artifactId>
334        <configuration>
335        <artifacts>
336        <artifact>
337        <version>5.2</version>
338        </artifact>
339        <artifact>
340        <groupId>bcel</groupId>
341        <version>5.1</version>
342        </artifact>
343        </artifacts>
344        </configuration>
345        </plugin>
346      -->
347      <plugin>
348        <groupId>org.apache.maven.plugins</groupId>
349        <artifactId>maven-checkstyle-plugin</artifactId>
350        <version>${checkstyle.plugin.version}</version>
351        <configuration>
352          <configLocation>${basedir}/src/conf/checkstyle.xml</configLocation>
353          <!-- Needed to define config_loc -->
354          <propertyExpansion>config_loc=${basedir}</propertyExpansion>
355          <enableRulesSummary>false</enableRulesSummary>
356        </configuration>
357        <!-- We need to specify reportSets because 2.9.1 creates two reports -->
358        <reportSets>
359          <reportSet>
360            <reports>
361              <report>checkstyle</report>
362            </reports>
363          </reportSet>
364        </reportSets>
365      </plugin>
366      <plugin>
367        <groupId>org.apache.maven.plugins</groupId>
368        <artifactId>maven-pmd-plugin</artifactId>
369        <version>3.8</version>
370        <configuration>
371          <targetJdk>${maven.compiler.target}</targetJdk>
372          <linkXref>true</linkXref>
373          <rulesets>
374            <ruleset>${basedir}/src/conf/pmd.xml</ruleset>
375          </rulesets>
376        </configuration>
377      </plugin>
378      <plugin>
379        <groupId>org.codehaus.mojo</groupId>
380        <artifactId>findbugs-maven-plugin</artifactId>
381        <version>${commons.findbugs.version}</version>
382        <configuration>
383          <threshold>Normal</threshold>
384          <effort>Default</effort>
385          <excludeFilterFile>${basedir}/src/conf/findbugs-exclude-filter.xml</excludeFilterFile>
386          <fork>true</fork>
387          <jvmArgs>-Duser.language=en</jvmArgs>
388        </configuration>
389      </plugin>
390      <plugin>
391        <groupId>org.codehaus.mojo</groupId>
392        <artifactId>taglist-maven-plugin</artifactId>
393        <version>2.4</version>
394        <configuration>
395          <tags>
396            <tag>TODO</tag>
397            <tag>NOPMD</tag>
398            <tag>NOTE</tag>
399          </tags>
400        </configuration>
401      </plugin>
402      <plugin>
403        <groupId>org.apache.rat</groupId>
404        <artifactId>apache-rat-plugin</artifactId>
405        <version>${commons.rat.version}</version>
406        <configuration>
407          <excludes>
408            <exclude>src/test/resources/**</exclude>
409            <exclude>docs/*.bib</exclude>
410            <exclude>docs/*.mdl</exclude>
411            <exclude>docs/eps/*</exclude>
412            <exclude>**/*.eps</exclude>
413            <exclude>**/*.bnf</exclude>
414            <exclude>**/*.mini</exclude>
415            <exclude>TODO.JustIce</exclude>
416            <exclude>src/examples/Mini/MiniParser$JJCalls</exclude>
417          </excludes>
418        </configuration>
419      </plugin>
420    </plugins>
421  </reporting>
422
423  <dependencies>
424    <dependency>
425      <groupId>junit</groupId>
426      <artifactId>junit</artifactId>
427      <version>4.12</version>
428      <scope>test</scope>
429    </dependency>
430    <dependency>
431      <groupId>net.java.dev.jna</groupId>
432      <artifactId>jna</artifactId>
433      <version>${jna.version}</version>
434      <scope>test</scope>
435    </dependency>
436    <dependency>
437      <groupId>net.java.dev.jna</groupId>
438      <artifactId>jna-platform</artifactId>
439      <version>${jna.version}</version>
440      <scope>test</scope>
441    </dependency>
442    <dependency>
443      <groupId>org.apache.commons</groupId>
444      <artifactId>commons-lang3</artifactId>
445      <version>3.7</version>
446      <scope>test</scope>
447    </dependency>
448  </dependencies>
449
450  <profiles>
451    <!--
452        Profile to ignore certain Clirr errors
453        To show all the errors, use -P!quieten-clirr or -Dclirr.allDifferences
454    -->
455    <profile>
456      <id>quieten-clirr</id>
457      <activation>
458        <!-- Enable unless the following is defined -->
459        <property>
460          <name>!clirr.allDifferences</name>
461        </property>
462      </activation>
463      <properties>
464        <!-- It's not possible to undefine this once defined, so we define it in a profile that is normally active -->
465        <clirr.ignoredDifferencesFile>${basedir}/src/conf/clirr-ignored-diffs.xml</clirr.ignoredDifferencesFile>
466      </properties>
467    </profile>
468    <!-- Profile to build and run PerformanceTest. Use 'mvn test -Pjdk-rt' -->
469    <profile>
470      <id>jdk-rt</id>
471      <build>
472        <plugins>
473          <plugin>
474            <artifactId>maven-surefire-plugin</artifactId>
475            <version>${commons.surefire.version}</version>
476            <configuration>
477              <includes>
478                <include>**/PerformanceTest.java</include>
479              </includes>
480            </configuration>
481          </plugin>
482        </plugins>
483      </build>
484    </profile>
485
486    <!-- Profile to build and run the benchmarks. Use 'mvn test -Pbenchmark', and add '-Dbenchmark=foo' to run only the foo benchmark -->
487    <profile>
488      <id>benchmark</id>
489
490      <properties>
491        <skipTests>true</skipTests>
492        <benchmark>org.apache</benchmark>
493        <jmh.version>1.19</jmh.version>
494      </properties>
495
496      <dependencies>
497        <dependency>
498          <groupId>org.openjdk.jmh</groupId>
499          <artifactId>jmh-core</artifactId>
500          <version>${jmh.version}</version>
501          <scope>test</scope>
502        </dependency>
503
504        <dependency>
505          <groupId>org.openjdk.jmh</groupId>
506          <artifactId>jmh-generator-annprocess</artifactId>
507          <version>${jmh.version}</version>
508          <scope>test</scope>
509        </dependency>
510
511        <dependency>
512          <groupId>commons-io</groupId>
513          <artifactId>commons-io</artifactId>
514          <version>2.6</version>
515          <scope>test</scope>
516        </dependency>
517
518        <dependency>
519          <groupId>org.apache.commons</groupId>
520          <artifactId>commons-collections4</artifactId>
521          <version>4.1</version>
522          <scope>test</scope>
523        </dependency>
524      </dependencies>
525
526      <build>
527        <plugins>
528          <!-- Enable the compilation of the benchmarks -->
529          <plugin>
530            <artifactId>maven-compiler-plugin</artifactId>
531            <version>${commons.compiler.version}</version>
532            <configuration combine.self="override">
533              <testIncludes>
534                <testInclude>**/*</testInclude>
535              </testIncludes>
536            </configuration>
537          </plugin>
538
539          <!-- Hook the benchmarks to the test phase -->
540          <plugin>
541            <groupId>org.codehaus.mojo</groupId>
542            <artifactId>exec-maven-plugin</artifactId>
543            <version>1.6.0</version>
544            <executions>
545              <execution>
546                <id>benchmark</id>
547                <phase>test</phase>
548                <goals>
549                  <goal>exec</goal>
550                </goals>
551                <configuration>
552                  <classpathScope>test</classpathScope>
553                  <executable>java</executable>
554                  <arguments>
555                    <argument>-classpath</argument>
556                    <classpath />
557                    <argument>org.openjdk.jmh.Main</argument>
558                    <argument>-rf</argument>
559                    <argument>json</argument>
560                    <argument>-rff</argument>
561                    <argument>target/jmh-result.json</argument>
562                    <argument>${benchmark}</argument>
563                  </arguments>
564                </configuration>
565              </execution>
566            </executions>
567          </plugin>
568        </plugins>
569      </build>
570    </profile>
571
572    <profile>
573      <id>jdk8-javadoc</id>
574      <activation>
575        <jdk>[1.8,)</jdk>
576      </activation>
577      <properties>
578        <additionalparam>-Xdoclint:none</additionalparam>
579      </properties>
580    </profile>
581  </profiles>
582
583</project>
584