Honeycomb 1.19.04-RC2
[honeycomb.git] / infra / it / benchmark / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!--
4   ~ Copyright (c) 2016 Cisco and/or its affiliates.
5   ~
6   ~ Licensed under the Apache License, Version 2.0 (the "License");
7   ~ you may not use this file except in compliance with the License.
8   ~ You may obtain a copy of the License at:
9   ~
10   ~     http://www.apache.org/licenses/LICENSE-2.0
11   ~
12   ~ Unless required by applicable law or agreed to in writing, software
13   ~ distributed under the License is distributed on an "AS IS" BASIS,
14   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   ~ See the License for the specific language governing permissions and
16   ~ limitations under the License.
17   -->
18
19 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
20          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
21
22     <parent>
23         <groupId>io.fd.honeycomb.common</groupId>
24         <artifactId>honeycomb-parent</artifactId>
25         <version>1.19.04-RC2</version>
26         <relativePath>../../../common/honeycomb-parent</relativePath>
27     </parent>
28
29     <modelVersion>4.0.0</modelVersion>
30     <groupId>io.fd.honeycomb</groupId>
31     <artifactId>benchmark</artifactId>
32     <version>1.19.04-RC2</version>
33     <name>${project.artifactId}</name>
34     <packaging>jar</packaging>
35
36     <properties>
37         <jmh.version>1.21</jmh.version>
38         <uberjar.name>benchmarks</uberjar.name>
39     </properties>
40
41     <dependencies>
42         <dependency>
43             <groupId>org.openjdk.jmh</groupId>
44             <artifactId>jmh-core</artifactId>
45             <version>${jmh.version}</version>
46         </dependency>
47         <dependency>
48             <groupId>org.openjdk.jmh</groupId>
49             <artifactId>jmh-generator-annprocess</artifactId>
50             <version>${jmh.version}</version>
51             <scope>provided</scope>
52         </dependency>
53         <dependency>
54             <groupId>io.fd.honeycomb</groupId>
55             <artifactId>minimal-distribution</artifactId>
56             <version>${project.version}</version>
57         </dependency>
58         <dependency>
59             <groupId>io.fd.honeycomb.it</groupId>
60             <artifactId>honeycomb-test-model</artifactId>
61             <version>${project.version}</version>
62         </dependency>
63         <dependency>
64             <groupId>org.apache.commons</groupId>
65             <artifactId>commons-csv</artifactId>
66             <version>1.4</version>
67         </dependency>
68
69     </dependencies>
70
71     <build>
72         <resources>
73             <resource>
74                 <directory>${basedir}/src/main/resources</directory>
75                 <!-- Enable maven to replace properties in resource files -->
76                 <filtering>true</filtering>
77             </resource>
78         </resources>
79         <plugins>
80             <plugin>
81                 <artifactId>maven-dependency-plugin</artifactId>
82                 <executions>
83                     <execution>
84                         <id>build-classpath</id>
85                         <phase>compile</phase>
86                         <goals>
87                             <goal>build-classpath</goal>
88                         </goals>
89                         <configuration>
90                             <outputProperty>depClasspath</outputProperty>
91                         </configuration>
92                     </execution>
93                 </executions>
94             </plugin>
95             <plugin>
96                 <groupId>org.codehaus.mojo</groupId>
97                 <artifactId>exec-maven-plugin</artifactId>
98                 <executions>
99                     <execution>
100                         <id>benchmark</id>
101                         <phase>test</phase>
102                         <goals>
103                             <goal>java</goal>
104                         </goals>
105                         <configuration>
106                             <mainClass>org.openjdk.jmh.Main</mainClass>
107                             <systemProperties>
108                                 <systemProperty>
109                                     <key>java.class.path</key>
110                                     <value>${project.build.outputDirectory}${path.separator}${depClasspath}</value>
111                                 </systemProperty>
112                             </systemProperties>
113                             <arguments>
114                                 <!-- Reference org.openjdk.jmh.runner.options.CommandLineOptions -->
115
116                                 <!-- Fail on error -->
117                                 <argument>-foe=true</argument>
118
119                                 <!-- PROFILING -->
120                                 <!--        cl: Classloader profiling via standard MBeans
121                                           comp: JIT compiler profiling via standard MBeans
122                                             gc: GC profiling via standard MBeans
123                                          hs_cl: HotSpot (tm) classloader profiling via implementation-specific MBeans
124                                        hs_comp: HotSpot (tm) JIT compiler profiling via implementation-specific MBeans
125                                          hs_gc: HotSpot (tm) memory manager (GC) profiling via implementation-specific MBeans
126                                          hs_rt: HotSpot (tm) runtime profiling via implementation-specific MBeans
127                                         hs_thr: HotSpot (tm) threading subsystem via implementation-specific MBeans
128                                         pauses: Pauses profiler
129                                          stack: Simple and naive Java stack profiler -->
130                                 <!--<argument>-prof=gc</argument>-->
131
132                                 <!-- REPORT -->
133                                 <!-- formats = Available formats: text, csv, scsv, json, latex-->
134                                 <argument>-rf=csv</argument>
135                                 <argument>-rff=${project.build.directory}/benchmark.csv</argument>
136                             </arguments>
137                         </configuration>
138                     </execution>
139                     <execution>
140                         <id>benchmark-post-processing</id>
141                         <phase>test</phase>
142                         <goals>
143                             <goal>java</goal>
144                         </goals>
145                         <configuration>
146                             <mainClass>io.fd.honeycomb.benchmark.format.BenchmarkOutputFormatter</mainClass>
147                             <arguments>
148                                 <argument>${project.build.directory}/benchmark.csv</argument>
149                             </arguments>
150                         </configuration>
151                     </execution>
152                 </executions>
153             </plugin>
154         </plugins>
155     </build>
156
157 </project>