diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml
new file mode 100644
index 0000000000..1e15d7b8f0
--- /dev/null
+++ b/.github/dependabot.yaml
@@ -0,0 +1,40 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+version: 2
+# Add Maven Central explicitly to work around:
+# https://github.com/dependabot/dependabot-core/issues/8329
+registries:
+ maven-central:
+ type: maven-repository
+ url: https://repo.maven.apache.org/maven2
+
+updates:
+
+ - package-ecosystem: maven
+ directory: "/"
+ open-pull-requests-limit: 10
+ schedule:
+ interval: "daily"
+ target-branch: "trunk"
+ registries:
+ - maven-central
+
+- package-ecosystem: github-actions
+ directory: "/"
+ schedule:
+ interval: "daily"
+ target-branch: "trunk"
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
new file mode 100644
index 0000000000..06a3b9e734
--- /dev/null
+++ b/.github/workflows/build.yaml
@@ -0,0 +1,69 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: build
+
+on:
+ push:
+ branches:
+ - "trunk"
+ - "release/*"
+ pull_request:
+
+permissions: read-all
+
+jobs:
+
+ build:
+ if: github.actor != 'dependabot[bot]'
+ uses: apache/logging-parent/.github/workflows/build-reusable.yaml@rel/11.3.0
+ secrets:
+ DV_ACCESS_TOKEN: ${{ startsWith(github.ref_name, 'release/') && '' || secrets.GE_ACCESS_TOKEN }}
+ with:
+ java-version: 11
+ site-enabled: true
+ reproducibility-check-enabled: true
+ develocity-enabled: ${{ ! startsWith(github.ref_name, 'release/') }}
+
+ deploy-snapshot:
+ needs: build
+ if: github.repository == 'apache/flume' && github.ref == 'refs/heads/trunk'
+ uses: apache/logging-parent/.github/workflows/deploy-snapshot-reusable.yaml@rel/11.3.0
+ # Secrets for deployments
+ secrets:
+ NEXUS_USERNAME: ${{ secrets.NEXUS_USER }}
+ NEXUS_PASSWORD: ${{ secrets.NEXUS_PW }}
+ with:
+ java-version: 11
+
+ deploy-release:
+ needs: build
+ if: github.repository == 'apache/flume' && startsWith(github.ref_name, 'release/')
+ uses: apache/logging-parent/.github/workflows/deploy-release-reusable.yaml@rel/11.3.0
+ # Secrets for deployments
+ secrets:
+ GPG_SECRET_KEY: ${{ secrets.LOGGING_GPG_SECRET_KEY }}
+ NEXUS_USERNAME: ${{ secrets.LOGGING_STAGE_DEPLOYER_USER }}
+ NEXUS_PASSWORD: ${{ secrets.LOGGING_STAGE_DEPLOYER_PW }}
+ SVN_USERNAME: ${{ secrets.LOGGING_SVN_DEV_USERNAME }}
+ SVN_PASSWORD: ${{ secrets.LOGGING_SVN_DEV_PASSWORD }}
+ # Write permissions to allow the Maven `revision` property update, changelog release, etc.
+ permissions:
+ contents: write
+ with:
+ java-version: 11
+ project-id: flume
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index 686e1ed9f2..0000000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,78 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache license, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the license for the specific language governing permissions and
-# limitations under the license.
-
-name: build
-
-on:
- push:
- branches:
- - trunk
- - build-dev
- pull_request:
-
-jobs:
- build:
-
- runs-on: ${{ matrix.os }}
-
- strategy:
- matrix:
- os: [ ubuntu-latest, macos-latest ]
-
- steps:
-
- - name: Checkout repository
- uses: actions/checkout@v2
-
- # JDK 8 is needed for the build, and it is the primary bytecode target.
- - name: Setup JDK 8
- uses: actions/setup-java@v2.3.0
- with:
- distribution: temurin
- java-version: 8
- java-package: jdk
- architecture: x64
- cache: maven
-
- - name: Inspect environment (Linux)
- if: runner.os == 'Linux'
- run: env | grep '^JAVA'
-
- - name: Inspect environment (MacOS)
- if: runner.os == 'macOS'
- run: env | grep '^JAVA'
-
- - name: Show disk usage before
- run: df -kh
-
- - name: Remove unwanted packages
- run: |
- sudo rm -rf /usr/share/dotnet
- sudo rm -rf /usr/local/lib/android
-
- - name: Show disk usage before maven
- run: df -kh
-
- - name: Build with Maven
- timeout-minutes: 120
- shell: bash
- run: |
- ./mvnw clean verify -DredirectTestOutput=true \
- --show-version --batch-mode --errors --no-transfer-progress \
- -DtrimStackTrace=false \
- -Dsurefire.rerunFailingTestsCount=2
-
- - name: Show disk usage after
- run: df -kh
diff --git a/.github/workflows/codeql-analysis.yaml b/.github/workflows/codeql-analysis.yaml
new file mode 100644
index 0000000000..03b612f37f
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yaml
@@ -0,0 +1,41 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: codeql-analysis
+
+on:
+ push:
+ branches: [ 'trunk' ]
+ pull_request:
+ # The branches below must be a subset of the branches provided in `on.push.branches`
+ branches: [ 'trunk' ]
+ schedule:
+ - cron: '32 12 * * 5'
+
+permissions: read-all
+
+jobs:
+
+ analyze:
+ uses: apache/logging-parent/.github/workflows/codeql-analysis-reusable.yaml@e45457c683302242be5e8e7c3c33edf8f0e0ec0e # 10.4.0
+ # Permissions required to publish Security Alerts
+ permissions:
+ actions: read
+ contents: read
+ security-events: write
+ with:
+ java-version: 11
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
deleted file mode 100644
index b1490d04a9..0000000000
--- a/.github/workflows/codeql-analysis.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-# For most projects, this workflow file will not need changing; you simply need
-# to commit it to your repository.
-#
-# You may wish to alter this file to override the set of languages analyzed,
-# or to provide custom queries or build logic.
-#
-# ******** NOTE ********
-# We have attempted to detect the languages in your repository. Please check
-# the `language` matrix defined below to confirm you have the correct set of
-# supported CodeQL languages.
-#
-name: "CodeQL"
-
-on:
- push:
- branches: [ trunk ]
- pull_request:
- # The branches below must be a subset of the branches above
- branches: [ trunk ]
- schedule:
- - cron: '15 0 * * 5'
-
-jobs:
- analyze:
- name: Analyze
- runs-on: ubuntu-latest
- permissions:
- actions: read
- contents: read
- security-events: write
-
- strategy:
- fail-fast: false
- matrix:
- language: [ 'java', 'python' ]
- # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
- # Learn more about CodeQL language support at https://git.io/codeql-language-support
-
- steps:
- - name: Checkout repository
- uses: actions/checkout@v2
-
- # Initializes the CodeQL tools for scanning.
- - name: Initialize CodeQL
- uses: github/codeql-action/init@959cbb7472c4d4ad70cdfe6f4976053fe48ab394 # 2.1.37
- with:
- languages: ${{ matrix.language }}
- # If you wish to specify custom queries, you can do so here or in a config file.
- # By default, queries listed here will override any specified in a config file.
- # Prefix the list here with "+" to use these queries and those in the config file.
- # queries: ./path/to/local/query, your-org/your-repo/queries@main
-
- # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
- # If this step fails, then you should remove it and run the build manually (see below)
- - name: Autobuild
- uses: github/codeql-action/autobuild@959cbb7472c4d4ad70cdfe6f4976053fe48ab394 # 2.1.37
-
- # âšī¸ Command-line programs to run using the OS shell.
- # đ https://git.io/JvXDl
-
- # âī¸ If the Autobuild fails above, remove it and uncomment the following three lines
- # and modify them (or add more) to build your code if your project
- # uses a compiled language
-
- #- run: |
- # make bootstrap
- # make release
-
- - name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@959cbb7472c4d4ad70cdfe6f4976053fe48ab394 # 2.1.37
diff --git a/.github/workflows/merge-dependabot.yaml b/.github/workflows/merge-dependabot.yaml
new file mode 100644
index 0000000000..ecb73c1731
--- /dev/null
+++ b/.github/workflows/merge-dependabot.yaml
@@ -0,0 +1,50 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: merge-dependabot
+
+on:
+ pull_request_target:
+ paths-ignore:
+ - "**.adoc"
+ - "**.md"
+ - "**.txt"
+
+permissions: read-all
+
+jobs:
+
+ build:
+ if: github.repository == 'apache/flume' && github.event_name == 'pull_request_target' && github.actor == 'dependabot[bot]'
+ uses: apache/logging-parent/.github/workflows/build-reusable.yaml@rel/11.3.0
+ secrets:
+ DV_ACCESS_TOKEN: ${{ secrets.GE_ACCESS_TOKEN }}
+ with:
+ java-version: 11
+ develocity-enabled: true
+ reproducibility-check-enabled: false
+
+ merge-dependabot:
+ needs: build
+ uses: apache/logging-parent/.github/workflows/merge-dependabot-reusable.yaml@rel/11.3.0
+ with:
+ java-version: 11
+ permissions:
+ contents: write # to push changelog commits
+ pull-requests: write # to close the PR
+ secrets:
+ GPG_SECRET_KEY: ${{ secrets.LOGGING_GPG_SECRET_KEY }} # to sign commits
diff --git a/.github/workflows/scorecards-analysis.yaml b/.github/workflows/scorecards-analysis.yaml
new file mode 100644
index 0000000000..6371a0f46a
--- /dev/null
+++ b/.github/workflows/scorecards-analysis.yaml
@@ -0,0 +1,40 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+name: scorecards-analysis
+
+on:
+ branch_protection_rule:
+ schedule:
+ - cron: "30 1 * * 6"
+ push:
+ branches: [ main ]
+
+permissions: read-all
+
+jobs:
+
+ analysis:
+ uses: apache/logging-parent/.github/workflows/scorecards-analysis-reusable.yaml@e45457c683302242be5e8e7c3c33edf8f0e0ec0e # 10.4.0
+ permissions:
+ # Needed to upload the results to the code-scanning dashboard.
+ security-events: write
+ actions: read
+ id-token: write # This is required for requesting the JWT
+ contents: read # This is required for actions/checkout
+ with:
+ java-version: 11
diff --git a/.mvn/develocity.xml b/.mvn/develocity.xml
new file mode 100644
index 0000000000..b4ca7ef406
--- /dev/null
+++ b/.mvn/develocity.xml
@@ -0,0 +1,30 @@
+
+
+ logging-flume
+
+ https://ge.apache.org
+
+
+
+ true
+ true
+
+
+ 0.0.0.0
+
+
+
+
+
+
+ false
+
+
+
+ false
+
+
+ false
+
+
+
diff --git a/flume-ng-core/pom.xml b/flume-ng-core/pom.xml
index 2ea97b7345..d4107ff14d 100644
--- a/flume-ng-core/pom.xml
+++ b/flume-ng-core/pom.xml
@@ -38,6 +38,15 @@ limitations under the License.
+
+
+
+
+ src/main/resources
+ true
+
+
+
@@ -139,29 +148,6 @@ limitations under the License.
-
- org.apache.maven.plugins
- maven-antrun-plugin
- ${mvn-antrun-plugin.version}
-
-
- generate-version
- generate-sources
-
-
-
-
-
-
-
-
-
- run
-
-
-
- org.codehaus.mojo
@@ -196,29 +182,6 @@ limitations under the License.
-
- org.apache.maven.plugins
- maven-antrun-plugin
- ${mvn-antrun-plugin.version}
-
-
- generate-version
- generate-sources
-
-
-
-
-
-
-
-
-
- run
-
-
-
- org.codehaus.mojo
diff --git a/flume-ng-core/scripts/saveVersion.ps1 b/flume-ng-core/scripts/saveVersion.ps1
deleted file mode 100644
index dff88134ee..0000000000
--- a/flume-ng-core/scripts/saveVersion.ps1
+++ /dev/null
@@ -1,61 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This script is used to generate the annotation of package info that
-# records the version, revision, branch, url, user and timestamp.
-
-$version=$args[0]
-$buildDirectory=$args[1]
-$outputFile= "$buildDirectory\generated-sources\java\org\apache\flume\package-info.java"
-$user = $Env:username
-$date = Get-Date
-
-cmd /c svn info 2>&1 | Out-Null
-if ( $LastExitCode -eq 0 ) {
- $revision=svn info | % { if( $_ -match "Last Changed Rev: (?.*)" ) { $matches['rev'];} }
- $url=svn info | % { if( $_ -match "URL: (?.*)" ) { $matches['url'];} }
- $branch= if( $url -match ".*(?(branches.*)|(tags.*)|(trunk.*))" ) { $matches['branch']; } else { "Unknown"; }
-}
-else {
- cmd /c git rev-parse HEAD 2>&1 | Out-Null
- if ( $LastExitCode -eq 0 ) {
- $revision=$(git log -1 --pretty=format:"%H")
- $branch=$(git name-rev --name-only HEAD)
- $remote=$(git config branch.$branch.remote)
- $url=$(git config remote.$remote.url)
- }
- else {
- revision="Unknown"
- branch="Unknown"
- url="file://$cwd"
- }
-}
-
-$srcChecksum="N/A"
-
-
-$fileContent = @"
-/*
- * Generated by scripts/saveVersion.ps1
- */
-@VersionAnnotation(version="$version", revision="$revision", branch="$branch",
- user="$user", date="$date", url="$url",
- srcChecksum="$srcChecksum")
-package org.apache.flume;
-"@
-
-New-Item $outputFile -value $fileContent -force -type file
-
diff --git a/flume-ng-core/scripts/saveVersion.sh b/flume-ng-core/scripts/saveVersion.sh
deleted file mode 100755
index ad3f8b195d..0000000000
--- a/flume-ng-core/scripts/saveVersion.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/sh
-
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# This script is used to generate the annotation of package info that
-# records the version, revision, branch, url, user and timestamp.
-
-unset LANG
-unset LC_CTYPE
-unset LC_TIME
-version=$1
-buildDirectory=$2
-user=`whoami`
-date=`date`
-dir=`pwd`
-cwd=`dirname $dir`
-if [ -d ../.svn ]; then
- revision=`svn info ../ | sed -n -e 's/Last Changed Rev: \(.*\)/\1/p'`
- url=`svn info ../ | sed -n -e 's/URL: \(.*\)/\1/p'`
- branch=`echo $url | sed -n -e 's,.*\(branches/.*\)$,\1,p' \
- -e 's,.*\(tags/.*\)$,\1,p' \
- -e 's,.*trunk$,trunk,p'`
-elif git rev-parse HEAD 2>/dev/null > /dev/null ; then
- revision=`git log -1 --pretty=format:"%H"`
- hostname=`hostname`
- branch=`git branch | sed -n -e 's/^* //p'`
- url="git://${hostname}${cwd}"
-else
- revision="Unknown"
- branch="Unknown"
- url="file://$cwd"
-fi
-
-if [ -n "$(which md5sum)" ]; then
- srcChecksum=`find ../ -name '*.java' | grep -v generated-sources | LC_ALL=C sort | \
- xargs md5sum | md5sum | cut -d ' ' -f 1`
-else
- srcChecksum=`find ../ -name '*.java' | grep -v generated-sources | LC_ALL=C sort | \
- xargs md5 | md5 | cut -d ' ' -f 1`
-fi
-
-mkdir -p $buildDirectory/generated-sources/java/org/apache/flume/
-cat << EOF | \
- sed -e "s/VERSION/$version/" -e "s/USER/$user/" -e "s/DATE/$date/" \
- -e "s|URL|$url|" -e "s/REV/$revision/" \
- -e "s|BRANCH|$branch|" -e "s/SRCCHECKSUM/$srcChecksum/" \
- > $buildDirectory/generated-sources/java/org/apache/flume/package-info.java
-/*
- * Generated by scripts/saveVersion.sh
- */
-@VersionAnnotation(version="VERSION", revision="REV", branch="BRANCH",
- user="USER", date="DATE", url="URL",
- srcChecksum="SRCCHECKSUM")
-package org.apache.flume;
-EOF
\ No newline at end of file
diff --git a/flume-ng-core/src/main/java/org/apache/flume/tools/VersionInfo.java b/flume-ng-core/src/main/java/org/apache/flume/tools/VersionInfo.java
index 574e527ce6..ca98c4b0d9 100644
--- a/flume-ng-core/src/main/java/org/apache/flume/tools/VersionInfo.java
+++ b/flume-ng-core/src/main/java/org/apache/flume/tools/VersionInfo.java
@@ -6,9 +6,9 @@
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -17,7 +17,12 @@
*/
package org.apache.flume.tools;
-import org.apache.flume.VersionAnnotation;
+import java.io.IOException;
+import java.io.InputStream;
+import java.time.Instant;
+import java.time.ZoneOffset;
+import java.time.format.DateTimeFormatter;
+import java.util.Properties;
/*
* This class provides version info of Flume NG
@@ -25,72 +30,70 @@
public class VersionInfo {
- private static Package myPackage;
- private static VersionAnnotation version;
+ private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss z yyyy");
+ private static final Properties properties = new Properties();
static {
- myPackage = VersionAnnotation.class.getPackage();
- version = myPackage.getAnnotation(VersionAnnotation.class);
- }
-
- /**
- * Get the meta-data for the Flume package.
- * @return
- */
- static Package getPackage() {
- return myPackage;
+ try (InputStream is = VersionInfo.class.getResourceAsStream("VersionInfo.properties");) {
+ properties.load(is);
+ } catch (IOException e) {
+ throw new IllegalStateException(e);
+ }
}
/**
* Get the Flume version.
+ *
* @return the Flume version string, eg. "1.1"
*/
public static String getVersion() {
- return version != null ? version.version() : "Unknown";
+ return properties.getProperty("version", "Unknown");
}
/**
* Get the subversion revision number for the root directory
+ *
* @return the revision number, eg. "100755"
*/
public static String getRevision() {
- if (version != null
- && version.revision() != null
- && !version.revision().isEmpty()) {
- return version.revision();
- }
- return "Unknown";
+ return properties.getProperty("revision", "Unknown");
}
/**
* Get the branch on which this originated.
+ *
* @return The branch name, e.g. "trunk" or "branches/branch-1.1"
*/
public static String getBranch() {
- return version != null ? version.branch() : "Unknown";
+ return properties.getProperty("branch", "Unknown");
}
/**
* The date that Flume was compiled.
+ *
* @return the compilation date in unix date format
*/
public static String getDate() {
- return version != null ? version.date() : "Unknown";
+ String timestamp = properties.getProperty("date");
+ return timestamp == null
+ ? "Unknown"
+ : Instant.parse(timestamp).atZone(ZoneOffset.UTC).format(formatter);
}
/**
* The user that compiled Flume.
+ *
* @return the username of the user
*/
public static String getUser() {
- return version != null ? version.user() : "Unknown";
+ return properties.getProperty("user", "Unknown");
}
/**
* Get the subversion URL for the root Flume directory.
*/
public static String getUrl() {
- return version != null ? version.url() : "Unknown";
+ return properties.getProperty("url", "Unknown");
}
/**
@@ -98,7 +101,7 @@ public static String getUrl() {
* built.
**/
public static String getSrcChecksum() {
- return version != null ? version.srcChecksum() : "Unknown";
+ return properties.getProperty("srcChecksum", "Unknown");
}
/**
diff --git a/flume-ng-core/src/main/resources/org/apache/flume/tools/VersionInfo.properties b/flume-ng-core/src/main/resources/org/apache/flume/tools/VersionInfo.properties
new file mode 100644
index 0000000000..59ee36cd96
--- /dev/null
+++ b/flume-ng-core/src/main/resources/org/apache/flume/tools/VersionInfo.properties
@@ -0,0 +1,25 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+##
+# Contains the version information
+version = ${project.version}
+revision = N/A
+branch = trunk
+date = ${maven.build.timestamp}
+user = N/A
+url = https://github.com/apache/logging-flume
+srcChecksum = N/A
\ No newline at end of file
diff --git a/flume-ng-dist/pom.xml b/flume-ng-dist/pom.xml
index 373b499fea..19d5b9ed6f 100644
--- a/flume-ng-dist/pom.xml
+++ b/flume-ng-dist/pom.xml
@@ -132,18 +132,10 @@
org.apache.flumeflume-kafka-channel
-
- org.apache.flume
- flume-hdfs-sink
- org.apache.flume.flume-ng-sinksflume-irc-sink
-
- org.apache.flume
- flume-hbase2-sink
- org.apache.flume.flume-ng-sinksflume-http-sink
@@ -156,10 +148,6 @@
org.apache.flumeflume-kafka-sink
-
- org.apache.flume
- flume-hive-sink
- org.apache.flume.flume-ng-sourcesflume-scribe-source
@@ -192,10 +180,6 @@
org.apache.flumeflume-ng-environment-variable-config-filter
-
- org.apache.flume
- flume-hadoop-credential-store-config-filter
- org.apache.flumeflume-ng-external-process-config-filter
diff --git a/flume-parent/pom.xml b/flume-parent/pom.xml
index 4e4203e763..7c4ce31dbb 100644
--- a/flume-parent/pom.xml
+++ b/flume-parent/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
org.apacheapache
- 23
+ 314.0.0
@@ -33,14 +33,19 @@ limitations under the License.
Apache Flume
-
- 2022-01-02T00:00:00Z
+
+ 2024-09-24T13:33:09ZUTF-8
- 1.8
- 1.8
+ 8rgoers@apache.org
@@ -455,6 +460,7 @@ limitations under the License.
+
org.apache.maven.pluginsmaven-antrun-plugin
@@ -478,8 +484,7 @@ limitations under the License.
maven-compiler-plugin${mvn-compiler-plugin.version}
- ${sourceJavaVersion}
- ${targetJavaVersion}
+ ${releaseJavaVersion}
diff --git a/pom.xml b/pom.xml
index 771e932252..d4090990d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -21,7 +21,7 @@ limitations under the License.
org.apacheapache
- 23
+ 314.0.0
@@ -32,6 +32,12 @@ limitations under the License.
Apache Flume Project
+
+
+ 1.22.2
+ 2.0.1
+
+
flume-bomflume-parent
@@ -52,4 +58,24 @@ limitations under the License.
build-support
+
+
+
+
+
+ com.gradle
+ develocity-maven-extension
+ ${develocity-maven-dependency.version}
+
+
+
+
+ com.gradle
+ common-custom-user-data-maven-extension
+ ${develocity-user-data-extension.version}
+
+
+
+
+