Improve segmented journal actor metrics
[controller.git] / benchmark / segjournal-benchmark / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   Copyright (c) 2024 PANTHEON.tech s.r.o. and others. All rights reserved.
4
5   This program and the accompanying materials are made available under the
6   terms of the Eclipse Public License v1.0 which accompanies this distribution,
7   and is available at http://www.eclipse.org/legal/epl-v10.html
8   -->
9 <project xmlns="http://maven.apache.org/POM/4.0.0"
10          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
11          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
12     <modelVersion>4.0.0</modelVersion>
13     <parent>
14         <groupId>org.opendaylight.controller</groupId>
15         <artifactId>mdsal-parent</artifactId>
16         <version>9.0.3-SNAPSHOT</version>
17         <relativePath>../../opendaylight/md-sal/parent</relativePath>
18     </parent>
19
20     <artifactId>segjournal-benchmark</artifactId>
21     <packaging>jar</packaging>
22
23     <properties>
24         <maven.javadoc.skip>true</maven.javadoc.skip>
25         <maven.deploy.skip>true</maven.deploy.skip>
26         <maven.install.skip>true</maven.install.skip>
27     </properties>
28
29     <dependencies>
30         <dependency>
31             <groupId>com.github.spotbugs</groupId>
32             <artifactId>spotbugs-annotations</artifactId>
33             <optional>true</optional>
34         </dependency>
35         <dependency>
36             <groupId>org.eclipse.jdt</groupId>
37             <artifactId>org.eclipse.jdt.annotation</artifactId>
38         </dependency>
39         <dependency>
40             <groupId>net.sourceforge.argparse4j</groupId>
41             <artifactId>argparse4j</artifactId>
42         </dependency>
43         <dependency>
44             <groupId>org.slf4j</groupId>
45             <artifactId>slf4j-api</artifactId>
46         </dependency>
47         <dependency>
48             <groupId>ch.qos.logback</groupId>
49             <artifactId>logback-classic</artifactId>
50             <scope>compile</scope>
51         </dependency>
52         <dependency>
53             <groupId>commons-io</groupId>
54             <artifactId>commons-io</artifactId>
55         </dependency>
56         <dependency>
57             <groupId>io.dropwizard.metrics</groupId>
58             <artifactId>metrics-core</artifactId>
59         </dependency>
60         <dependency>
61             <groupId>org.opendaylight.controller</groupId>
62             <artifactId>repackaged-akka</artifactId>
63         </dependency>
64         <dependency>
65             <groupId>org.opendaylight.controller</groupId>
66             <artifactId>sal-clustering-commons</artifactId>
67         </dependency>
68         <dependency>
69             <groupId>org.opendaylight.controller</groupId>
70             <artifactId>atomix-storage</artifactId>
71         </dependency>
72         <dependency>
73             <groupId>org.opendaylight.controller</groupId>
74             <artifactId>sal-akka-segmented-journal</artifactId>
75         </dependency>
76         <dependency>
77             <groupId>org.opendaylight.controller</groupId>
78             <artifactId>sal-clustering-config</artifactId>
79         </dependency>
80     </dependencies>
81
82     <build>
83         <plugins>
84             <plugin>
85                 <groupId>org.apache.maven.plugins</groupId>
86                 <artifactId>maven-shade-plugin</artifactId>
87                 <configuration>
88                     <createDependencyReducedPom>false</createDependencyReducedPom>
89                 </configuration>
90                 <executions>
91                     <execution>
92                         <phase>package</phase>
93                         <goals>
94                             <goal>shade</goal>
95                         </goals>
96                         <configuration>
97                             <shadedArtifactAttached>true</shadedArtifactAttached>
98                             <shadedClassifierName>executable</shadedClassifierName>
99                             <filters>
100                                 <filter>
101                                     <artifact>*:*</artifact>
102                                     <!-- causing SecurityException -->
103                                     <excludes>
104                                         <exclude>META-INF/*.SF</exclude>
105                                         <exclude>META-INF/*.DSA</exclude>
106                                         <exclude>META-INF/*.RSA</exclude>
107                                     </excludes>
108                                 </filter>
109                             </filters>
110                             <transformers>
111                                 <transformer implementation= "org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
112                                     <mainClass>org.opendaylight.controller.akka.segjournal.BenchmarkMain</mainClass>
113                                 </transformer>
114                             </transformers>
115                         </configuration>
116                     </execution>
117                 </executions>
118             </plugin>
119         </plugins>
120     </build>
121
122     <profiles>
123         <profile>
124             <id>benchmarks</id>
125             <build>
126                 <plugins>
127                     <plugin>
128                         <groupId>org.codehaus.mojo</groupId>
129                         <artifactId>exec-maven-plugin</artifactId>
130                         <version>3.1.1</version>
131                         <executions>
132                             <execution>
133                                 <id>execute-segmented-journal-benchmark</id>
134                                 <phase>integration-test</phase>
135                                 <goals>
136                                     <goal>exec</goal>
137                                 </goals>
138                             </execution>
139                         </executions>
140                         <configuration>
141                             <executable>java</executable>
142                             <useMavenLogger>true</useMavenLogger>
143                             <arguments>
144                                 <argument>-classpath</argument>
145                                 <!-- includes all dependencies to class path -->
146                                 <classpath/>
147                                 <argument>org.opendaylight.controller.akka.segjournal.BenchmarkMain</argument>
148                                 <!-- configuration taken from factory-akka.conf of sal-clustering-config -->
149                                 <argument>--current</argument>
150                                 <!-- 100_000 messages to write -->
151                                 <argument>-n100000</argument>
152                                 <!-- message payload is 100K -->
153                                 <argument>-p100K</argument>
154                             </arguments>
155                         </configuration>
156                     </plugin>
157                 </plugins>
158             </build>
159         </profile>
160     </profiles>
161 </project>