Skip to content

Commit

Permalink
merge: #8856
Browse files Browse the repository at this point in the history
8856: [Backport release-1.4.0-alpha2] Deploy flattened POMs and reduce BOM to "public" modules r=oleschoenburg a=github-actions[bot]

# Description
Backport of #8833 to `release-1.4.0-alpha2`.

relates to #8716

Co-authored-by: Nicolas Pepin-Perreault <nicolas.pepin-perreault@camunda.com>
Co-authored-by: Nico Korthout <nico.korthout@camunda.com>
  • Loading branch information
3 people authored Mar 1, 2022
2 parents e292c89 + 54854d4 commit 309a8d6
Show file tree
Hide file tree
Showing 5 changed files with 255 additions and 177 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ work/
public/
tngp-data

.flattened-pom.xml

hs_err*.log
/data/
/metrics/
Expand Down
29 changes: 26 additions & 3 deletions bom/README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# Zeebe BOM

Contains versions for all Zeebe modules. It can be imported using maven by
adding the following dependency to the `dependencyManagement` section of your
pom.
The Bill of Materials (BOM) is the recommended way for third-party projects to import Zeebe
dependencies. It bundles dependencies that we consider consumable.

These dependencies receive special attention from the team when it comes to backwards compatibility.
The team will try to maintain backwards compatibility for these libraries, but this does not mean
that we guarantee it. For our official backwards compatibility guarantees, please refer to the
[Public API documentation](https://docs.camunda.io/docs/apis-clients/public-api/).

## Usage

The BOM can be imported using maven by adding the following dependency to the `dependencyManagement`
section of your pom.

```xml
<dependencyManagement>
Expand All @@ -18,3 +27,17 @@ pom.
</dependencyManagement>
```

Once imported, you can easily add the dependencies you need to the `dependencies` section of your pom.

For example, you can use it to import the
[Zeebe Java Client](https://docs.camunda.io/docs/apis-clients/java-client/).

```xml
<dependencies>
<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-client-java</artifactId>
</dependency>
</dependencies>
```

224 changes: 54 additions & 170 deletions bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,50 +10,41 @@
<!-- do not remove empty tag - http://jira.codehaus.org/browse/MNG-4687 -->
<relativePath />
</parent>

<groupId>io.camunda</groupId>
<artifactId>zeebe-bom</artifactId>
<version>1.4.0-SNAPSHOT</version>
<packaging>pom</packaging>

<name>Zeebe BOM</name>
<description/>
<url>http://zeebe.io/</url>
<inceptionYear>2017</inceptionYear>

<scm>
<connection>scm:git:git@github.com:zeebe-io/zeebe.git</connection>
<developerConnection>scm:git:git@github.com:zeebe-io/zeebe.git</developerConnection>
<connection>scm:git:git@github.com:camunda-cloud/zeebe.git</connection>
<developerConnection>scm:git:git@github.com:camunda-cloud/zeebe.git</developerConnection>
<tag>HEAD</tag>
<url>https://github.com/zeebe-io/zeebe</url>
<url>https://github.com/camunda-cloud/zeebe</url>
</scm>

<issueManagement>
<system>GitHub</system>
<url>https://github.com/camunda-cloud/zeebe/issues</url>
</issueManagement>

<properties>
<!-- release parent settings -->
<nexus.snapshot.repository>https://app.camunda.com/nexus/content/repositories/zeebe-io-snapshots/</nexus.snapshot.repository>
<nexus.release.repository>https://app.camunda.com/nexus/content/repositories/zeebe-io/</nexus.release.repository>
<nexus.sonatype.url>https://s01.oss.sonatype.org</nexus.sonatype.url>

<plugin.version.flatten>1.2.2</plugin.version.flatten>
<plugin.version.javadoc>3.3.2</plugin.version.javadoc>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-broker</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-client-java</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-protocol-test-util</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-bpmn-model</artifactId>
Expand All @@ -62,97 +53,7 @@

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-dispatcher</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-logstreams</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-workflow-engine</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-msgpack-core</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-msgpack-value</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-protocol</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-protocol-impl</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-protocol-jackson</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-transport</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-test-util</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-util</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-db</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-build-tools</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-gateway-protocol</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-gateway-protocol-impl</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-gateway</artifactId>
<artifactId>zeebe-client-java</artifactId>
<version>${project.version}</version>
</dependency>

Expand All @@ -164,71 +65,15 @@

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-elasticsearch-exporter</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-protocol-asserts</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-expression-language</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-feel-integration</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-snapshots</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-journal</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-dmn</artifactId>
<version>${project.version}</version>
</dependency>

<!-- ATOMIX -->
<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-atomix-cluster</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-atomix-storage</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-atomix-utils</artifactId>
<artifactId>zeebe-gateway-protocol-impl</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>io.camunda</groupId>
<artifactId>zeebe-atomix</artifactId>
<artifactId>zeebe-protocol</artifactId>
<version>${project.version}</version>
</dependency>

</dependencies>
</dependencyManagement>

Expand Down Expand Up @@ -258,6 +103,45 @@
</repository>
</repositories>

<build>

<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
<version>${plugin.version.flatten}</version>
<configuration combine.children="append">
<flattenMode>bom</flattenMode>
<!--
do not change the outputDirectory; it must remain the same one as the relative project
directory, as many plugins expect to resolve the project directory from the current POM
file's parent, and any plugin which would run post flatten would resolve the project
directory to the wrong one. For example, if you configure it to
${project.build.directory}, then any plugin after will think that the project's
directory is not /parent/ but /parent/target, which may affect the execution of plugins
(e.g. resource file resolution)
-->
</configuration>
<executions>
<execution>
<id>flatten</id>
<phase>process-resources</phase>
<goals>
<goal>flatten</goal>
</goals>
</execution>
<execution>
<id>flatten.clean</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

<profiles>
<profile>
<id>sonatype-oss-release</id>
Expand Down
4 changes: 0 additions & 4 deletions expression-language/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,6 @@
<properties>
<!-- do we still need to skip JavaDoc generation? -->
<maven.javadoc.skip>true</maven.javadoc.skip>

<!-- ignore Spotbugs failures related to Scala classes -->
<spotbugs.exclude>${basedir}/spotbugs/spotbugs-exclude.xml</spotbugs.exclude>

</properties>

<dependencies>
Expand Down
Loading

0 comments on commit 309a8d6

Please sign in to comment.