glowroot-central
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-central</artifactId>
<version>0.14.0-beta.3</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-parent</artifactId>
<version>0.14.0-beta.3</version>
</parent>
<artifactId>glowroot-central</artifactId>
<!-- need to use default jar packaging, otherwise jar gets installed with war extension and
webdriver tests cannot find it -->
<name>Glowroot Central Collector</name>
<description>Glowroot Central Collector</description>
<dependencies>
<dependency>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-wire-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-common</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-common2</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.glowroot</groupId>
<artifactId>glowroot-ui</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<!-- this is used to instrument central itself -->
<groupId>org.glowroot</groupId>
<artifactId>glowroot-agent-api</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>
<dependency>
<groupId>io.grpc</groupId>
<artifactId>grpc-netty</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-tcnative-boringssl-static</artifactId>
<!-- need to stick to version known to work with gRPC 1.44.1,
see table at https://github.com/grpc/grpc-java/blob/master/SECURITY.md#netty -->
<version>2.0.46.Final</version>
</dependency>
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.7.2</version>
</dependency>
<dependency>
<groupId>org.infinispan</groupId>
<artifactId>infinispan-core</artifactId>
<version>13.0.8.Final</version>
</dependency>
<!-- jgroups-kubernetes specifies that it requires 4.2.x -->
<dependency>
<groupId>org.jgroups</groupId>
<artifactId>jgroups</artifactId>
<version>4.2.18.Final</version>
</dependency>
<dependency>
<groupId>org.jgroups.kubernetes</groupId>
<artifactId>jgroups-kubernetes</artifactId>
<version>1.0.16.Final</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<!-- not using AsyncHttpClient because it introduces another dependency on netty which already
needs to be kept in sync with grpc version -->
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.1.4</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-api</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>3.141.59</version>
</dependency>
<dependency>
<groupId>com.machinepublishers</groupId>
<artifactId>jbrowserdriver</artifactId>
<version>1.0.1</version>
<exclusions>
<exclusion>
<!-- a later version of jna with a different groupId is already included by selenium -->
<groupId>com.sun.jna</groupId>
<artifactId>jna</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.immutables</groupId>
<artifactId>value</artifactId>
<!-- immutables is only needed at compile time -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.immutables</groupId>
<artifactId>serial</artifactId>
<version>${immutables.version}</version>
<!-- immutables is only needed at compile time -->
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-guava</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<!-- this is to resolve maven enforcer RequireUpperBoundDeps error -->
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.10.7</version>
</dependency>
<dependency>
<!-- this is to resolve maven enforcer RequireUpperBoundDeps error -->
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.11</version>
</dependency>
<dependency>
<!-- this is to resolve maven enforcer RequireUpperBoundDeps error -->
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<!-- don't need this dependency at runtime since only annotations -->
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.rauschig</groupId>
<artifactId>jarchivelib</artifactId>
<version>1.0.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<configuration>
<protocVersion>${protoc.version}</protocVersion>
<outputTargets>
<outputTarget>
<type>java</type>
<outputDirectory>target/generated-sources/protobuf-java</outputDirectory>
</outputTarget>
</outputTargets>
</configuration>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- checking against jdk 1.6 signatures is inherited from glowroot-parent -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<properties>
<property>
<!-- this is just a test performance optimization -->
<name>listener</name>
<value>org.glowroot.central.repo.SharedSetupRunListener</value>
</property>
</properties>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- maven-war-plugin needs to execute before maven-jar-plugin, otherwise it messes up the
jar's manifest -->
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<goals>
<goal>war</goal>
</goals>
<configuration>
<classifier>dist</classifier>
<archive>
<manifestEntries>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Build-Commit>${glowroot.build.commit}</Build-Commit>
</manifestEntries>
</archive>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<forceCreation>true</forceCreation>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib</classpathPrefix>
</manifest>
<manifestEntries>
<Build-Time>${maven.build.timestamp}</Build-Time>
<Main-Class>org.glowroot.central.Main</Main-Class>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<configuration>
<descriptors>
<descriptor>dist.xml</descriptor>
</descriptors>
</configuration>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>de.dentrassi.maven</groupId>
<artifactId>rpm</artifactId>
<version>1.8.0</version>
<configuration>
<skipSigning>true</skipSigning>
</configuration>
<executions>
<execution>
<id>rpm</id>
<goals>
<goal>rpm</goal>
</goals>
<configuration>
<attach>false</attach> <!-- don't attach RPM -->
<group>Applications/System</group>
<license>/usr/share/doc/glowroot-central/LICENSE</license>
<url>https://github.com/glowroot/glowroot</url>
<description>Glowroot Central Collector</description>
<prerequisites>
<prerequisite>systemd</prerequisite>
<prerequisite>/usr/sbin/useradd</prerequisite>
<prerequisite>/usr/sbin/groupadd</prerequisite>
<prerequisite>/usr/sbin/userdel</prerequisite>
<prerequisite>/usr/sbin/groupdel</prerequisite>
<prerequisite>/usr/bin/getent</prerequisite>
</prerequisites>
<requires>
<require>jre >= 1.8</require>
</requires>
<provides>
<provide>user(glowroot)</provide>
<provide>group(glowroot)</provide>
</provides>
<!-- create glowroot user and group -->
<beforeInstallation>
getent group glowroot > /dev/null || groupadd -r glowroot
getent passwd glowroot > /dev/null || useradd -g glowroot -M -r glowroot -d /var/run/glowroot-central
if [ $1 -eq 2 ] ; then systemctl stop glowroot-central.service; fi
</beforeInstallation>
<!-- (re)start the collector upon upgrade assuming that it's already correctly configured -->
<afterInstallation>
systemctl daemon-reload
systemd-tmpfiles --create /usr/lib/tmpfiles.d/glowroot-central.conf
if [ $1 -eq 2 ] ; then systemctl start glowroot-central.service; fi
</afterInstallation>
<beforeRemoval>
systemctl stop glowroot-central.service
</beforeRemoval>
<!-- remove glowroot user and group upon un-installation -->
<afterRemoval>
if [ $1 -eq 0 ] ; then userdel glowroot && groupdel glowroot 2> /dev/null; fi
systemctl daemon-reload
</afterRemoval>
<rulesets>
<ruleset>
<id>gc-default</id>
<rules>
<rule>
<user>root</user>
<group>root</group>
</rule>
<rule>
<when>
<type>directory</type>
</when>
<mode>0755</mode>
</rule>
<rule>
<when>
<type>file</type>
</when>
<mode>0644</mode>
</rule>
<rule>
<when>
<type>file</type>
<prefix>/etc/</prefix>
</when>
<configuration>true</configuration>
<noreplace>true</noreplace>
<mode>0640</mode>
<user>root</user>
<group>glowroot</group>
</rule>
<rule>
<when>
<type>file</type>
<prefix>/usr/share/doc/</prefix>
</when>
<documentation>true</documentation>
</rule>
</rules>
</ruleset>
</rulesets>
<entries>
<entry>
<name>/etc/glowroot-central</name>
<directory>true</directory>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/share/doc/glowroot-central</name>
<directory>true</directory>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/lib/glowroot-central</name>
<directory>true</directory>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/lib/glowroot-central/lib</name>
<directory>true</directory>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/etc/glowroot-central/glowroot-central.properties</name>
<file>src/main/conf/glowroot-central.properties</file>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/share/doc/glowroot-central/NOTICE</name>
<file>src/main/webapp/META-INF/NOTICE</file>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/share/doc/glowroot-central/LICENSE</name>
<file>src/main/webapp/META-INF/LICENSE</file>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/lib/glowroot-central/glowroot-central.properties</name>
<file>src/main/rpm/glowroot-central.properties</file>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/lib/glowroot-central/${project.build.finalName}.jar</name>
<file>target/${project.build.finalName}.jar</file>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/lib/glowroot-central/glowroot-central.jar</name>
<linkTo>${project.build.finalName}.jar</linkTo>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/lib/glowroot-central/lib</name>
<collect>
<from>target/${project.build.finalName}-dist/glowroot-central/lib</from>
</collect>
<ruleset>gc-default</ruleset>
</entry>
<entry>
<name>/usr/lib/systemd/system/glowroot-central.service</name>
<file>src/main/rpm/glowroot-central.service</file>
<ruleset>gc-default</ruleset>
<configuration>true</configuration>
</entry>
<entry>
<name>/usr/lib/tmpfiles.d/glowroot-central.conf</name>
<file>src/main/rpm/glowroot-central.conf</file>
<ruleset>gc-default</ruleset>
<configuration>true</configuration>
</entry>
</entries>
</configuration>
</execution>
<execution>
<id>yum-repository</id>
<goals>
<goal>yum-repository</goal>
</goals>
<configuration>
<directories>
<directory>${project.build.directory}</directory>
</directories>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>de.dentrassi.maven</groupId>
<artifactId>rpm</artifactId>
<version>1.8.0</version>
<configuration>
<signature>
<keyringFile>${user.home}/.gnupg/secring.gpg</keyringFile>
</signature>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-yum-repo-file</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/yum</outputDirectory>
<resources>
<resource>
<directory>src/main/rpm</directory>
<includes>
<include>glowroot.repo</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>gpg</executable>
<arguments>
<argument>--armor</argument>
<argument>--out</argument>
<argument>target/yum/RPM-GPG-KEY-${gpg.key.id}</argument>
<argument>--yes</argument> <!-- overwrite without asking -->
<argument>--export</argument>
<argument>${gpg.key.id}</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>