pom.xml revision e640cd3f
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3  ~ Copyright (c) 2016 Cisco and/or its affiliates.
4  ~
5  ~ Licensed under the Apache License, Version 2.0 (the "License");
6  ~ you may not use this file except in compliance with the License.
7  ~ You may obtain a copy of the License at:
8  ~
9  ~     http://www.apache.org/licenses/LICENSE-2.0
10  ~
11  ~ Unless required by applicable law or agreed to in writing, software
12  ~ distributed under the License is distributed on an "AS IS" BASIS,
13  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  ~ See the License for the specific language governing permissions and
15  ~ limitations under the License.
16  -->
17
18<project xmlns="http://maven.apache.org/POM/4.0.0"
19         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    <!-- Parent set as common script to use all groovy dependency versions, etc-->
22    <parent>
23        <groupId>io.fd.honeycomb.common</groupId>
24        <artifactId>honeycomb-parent</artifactId>
25        <version>1.18.01-SNAPSHOT</version>
26        <relativePath>../../../common/honeycomb-parent</relativePath>
27    </parent>
28    <modelVersion>4.0.0</modelVersion>
29
30    <groupId>io.fd.honeycomb.it</groupId>
31    <artifactId>memory-benchmark</artifactId>
32    <!-- Static version, we don't want it to be deployed anyway-->
33    <version>1.0.0</version>
34    <properties>
35        <commons-csv.version>1.4</commons-csv.version>
36        <honeycomb.version>1.18.01-SNAPSHOT</honeycomb.version>
37        <maven.groovy.version>2.0</maven.groovy.version>
38        <groovy.version>2.4.7</groovy.version>
39        <groovy.eclipse.compiler.version>2.9.2-01</groovy.eclipse.compiler.version>
40        <groovy.eclipse.batch.version>2.4.3-01</groovy.eclipse.batch.version>
41    </properties>
42    <!-- to be runnable from command line -->
43    <packaging>jar</packaging>
44
45    <dependencies>
46        <dependency>
47            <groupId>io.fd.honeycomb.it</groupId>
48            <artifactId>memory-benchmark-api</artifactId>
49            <version>${honeycomb.version}</version>
50        </dependency>
51
52        <dependency>
53            <groupId>io.fd.honeycomb</groupId>
54            <artifactId>minimal-distribution</artifactId>
55            <version>${honeycomb.version}</version>
56        </dependency>
57
58        <dependency>
59            <groupId>io.fd.honeycomb.it</groupId>
60            <artifactId>management</artifactId>
61            <version>${honeycomb.version}</version>
62        </dependency>
63
64        <dependency>
65            <groupId>org.apache.commons</groupId>
66            <artifactId>commons-csv</artifactId>
67            <version>${commons-csv.version}</version>
68        </dependency>
69
70        <dependency>
71            <groupId>org.codehaus.groovy</groupId>
72            <artifactId>groovy-all</artifactId>
73            <version>${groovy.version}</version>
74        </dependency>
75
76        <dependency>
77            <groupId>junit</groupId>
78            <artifactId>junit</artifactId>
79            <scope>test</scope>
80        </dependency>
81        <dependency>
82            <groupId>org.mockito</groupId>
83            <artifactId>mockito-core</artifactId>
84            <scope>test</scope>
85        </dependency>
86    </dependencies>
87
88    <build>
89        <plugins>
90
91            <!-- Skip deploy -->
92            <plugin>
93                <groupId>org.apache.maven.plugins</groupId>
94                <artifactId>maven-deploy-plugin</artifactId>
95                <configuration>
96                    <skip>true</skip>
97                </configuration>
98            </plugin>
99
100            <!-- skips test by default but compile them -->
101            <plugin>
102                <groupId>org.apache.maven.plugins</groupId>
103                <artifactId>maven-surefire-plugin</artifactId>
104                <version>2.19.1</version>
105                <configuration>
106                    <skipTests>true</skipTests>
107                </configuration>
108            </plugin>
109
110            <!-- assemble jar with all dependencies and test classes -->
111            <plugin>
112                <artifactId>maven-assembly-plugin</artifactId>
113                <version>2.3</version>
114                <configuration>
115                    <descriptor>src/main/assembly/assembly.xml</descriptor>
116                </configuration>
117                <executions>
118                    <execution>
119                        <id>make-assembly</id>
120                        <phase>package</phase>
121                        <goals>
122                            <goal>single</goal>
123                        </goals>
124                    </execution>
125                </executions>
126            </plugin>
127
128            <!-- generate scripts for benchmarks -->
129            <plugin>
130                <groupId>org.codehaus.gmaven</groupId>
131                <artifactId>groovy-maven-plugin</artifactId>
132                <executions>
133                    <!-- script for on-rest memory benchmark -->
134                    <execution>
135                        <id>generate-on-rest-benchmark-script</id>
136                        <phase>package</phase>
137                        <goals>
138                            <goal>execute</goal>
139                        </goals>
140                        <!-- 0 data samples == empty config file, therefore same as honeycomb on rest -->
141                        <configuration>
142                            <source>
143                            io.fd.honeycomb.benchmark.script.MemoryBenchmarkStartupScriptGenerator.generateWithDataScript(project, log, "memory-benchmark-on-rest-out", 0)
144                            </source>
145                        </configuration>
146                    </execution>
147                    <!-- script for memory benchmark with 1000 nodes in config data-->
148                    <execution>
149                        <id>generate-with-data-1000-benchmark-script</id>
150                        <phase>package</phase>
151                        <goals>
152                            <goal>execute</goal>
153                        </goals>
154                        <configuration>
155                            <source>
156                            io.fd.honeycomb.benchmark.script.MemoryBenchmarkStartupScriptGenerator.generateWithDataScript(project, log, "memory-benchmark-with-data-out", 1000)
157                            </source>
158                        </configuration>
159                    </execution>
160                    <!-- script for memory benchmark with 10000 nodes in config data-->
161                    <execution>
162                        <id>generate-with-data-10000-benchmark-script</id>
163                        <phase>package</phase>
164                        <goals>
165                            <goal>execute</goal>
166                        </goals>
167                        <configuration>
168                            <source>
169                            io.fd.honeycomb.benchmark.script.MemoryBenchmarkStartupScriptGenerator.generateWithDataScript(project, log, "memory-benchmark-with-data-out", 10000)
170                            </source>
171                        </configuration>
172                    </execution>
173                </executions>
174                <dependencies>
175                    <dependency>
176                        <groupId>io.fd.honeycomb.it</groupId>
177                        <artifactId>benchmark-scripts</artifactId>
178                        <version>1.18.01-SNAPSHOT</version>
179                    </dependency>
180                </dependencies>
181            </plugin>
182        </plugins>
183    </build>
184</project>