diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000000..36f6293d04
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,81 @@
+#
+# 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.
+#
+
+github:
+ description: EventMesh is a new generation serverless event middleware for building distributed event-driven applications.
+ homepage: https://eventmesh.apache.org/
+ labels:
+ - pubsub
+ - event-mesh
+ - event-gateway
+ - event-driven
+ - event-streaming
+ - event-sourcing
+ - event-governance
+ - event-connector
+ - cloud-native
+ - serverless
+ - serverless-workflow
+ - esb
+ - message-bus
+ - cqrs
+ - multi-runtime
+ - microservice
+ - hacktoberfest
+ enabled_merge_buttons:
+ squash: true
+ merge: false
+ rebase: false
+ protected_branches:
+ master:
+ required_status_checks:
+ strict: false
+ contexts:
+ - dependency-review
+ - Build (ubuntu-latest, 8, java)
+ - Build (ubuntu-latest, 11, java)
+ required_pull_request_reviews:
+ dismiss_stale_reviews: true
+ required_approving_review_count: 2
+ # Attempt to make the auto-generated github emails more easily readable in email clients.
+ custom_subjects:
+ new_pr: "[PR] {title} ({repository})"
+ close_pr: "Re: [PR] {title} ({repository})"
+ comment_pr: "Re: [PR] {title} ({repository})"
+ diffcomment: "Re: [PR] {title} ({repository})"
+ merge_pr: "Re: [PR] {title} ({repository})"
+ new_issue: "[I] {title} ({repository})"
+ comment_issue: "Re: [I] {title} ({repository})"
+ close_issue: "Re: [I] {title} ({repository})"
+ catchall: "[GH] {title} ({repository})"
+ new_discussion: "[D] {title} ({repository})"
+ edit_discussion: "Re: [D] {title} ({repository})"
+ close_discussion: "Re: [D] {title} ({repository})"
+ close_discussion_with_comment: "Re: [D] {title} ({repository})"
+ reopen_discussion: "Re: [D] {title} ({repository})"
+ new_comment_discussion: "Re: [D] {title} ({repository})"
+ edit_comment_discussion: "Re: [D] {title} ({repository})"
+ delete_comment_discussion: "Re: [D] {title} ({repository})"
+notifications:
+ commits: commits@eventmesh.apache.org
+ # Send all issue emails (new, closed, comments) to issues@
+ issues: issues@eventmesh.apache.org
+ # Send new/closed PR notifications to dev@
+ pullrequests_status: dev@eventmesh.apache.org
+ # Send individual PR comments/reviews to issues@
+ pullrequests_comment: issues@eventmesh.apache.org
+ jira_options: link label worklog
diff --git a/.coveralls.yml b/.coveralls.yml
deleted file mode 100644
index cf27a37024..0000000000
--- a/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-service_name: travis-pro
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000..c0f64a8361
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,2 @@
+dist/
+build/
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000000..b27bb300d7
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+*.sh text eol=lf
+gradlew text eol=lf
+*.{cmd,[cC][mM][dD]} text eol=crlf
+*.{bat,[bB][aA][tT]} text eol=crlf
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000..a19b99ed3d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,120 @@
+#
+# 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: Bug report
+title: "[Bug] Bug title "
+description: If something isn't working as expected.
+labels: [ "bug" ]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For better global communication, Please write in English.
+
+ - type: checkboxes
+ attributes:
+ label: Search before asking
+ description: >
+ Please make sure to search in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue)
+ first to see whether the same issue was reported already.
+ options:
+ - label: >
+ I had searched in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue) and found
+ no similar issues.
+ required: true
+
+ - type: dropdown
+ attributes:
+ label: Environment
+ description: Describe the environment.
+ options:
+ - Mac
+ - Windows
+ - Linux
+ - Other
+ validations:
+ required: true
+
+ - type: dropdown
+ attributes:
+ label: EventMesh version
+ description: Describe the EventMesh version.
+ options:
+ - master
+ - 1.10.0
+ - 1.9.0
+ - 1.8.0
+ - 1.7.0
+ - 1.6.0
+ - 1.5.0
+ - 1.4.0
+ - 1.3.0
+ - 1.2.0
+ - Other
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: What happened
+ description: Describe what happened.
+ placeholder: >
+ A clear and concise description of what the bug is.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: How to reproduce
+ description: >
+ Describe the steps to reproduce the bug here.
+ placeholder: >
+ Please make sure you provide a reproducible step-by-step case of how to reproduce the problem
+ as minimally and precisely as possible.
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Debug logs
+ description: Anything else we need to know?
+ placeholder: >
+ Add your debug logs here.
+ render: Java
+ validations:
+ required: false
+
+ - type: checkboxes
+ attributes:
+ label: Are you willing to submit PR?
+ description: >
+ This is absolutely not required, but we are happy to guide you in the contribution process
+ especially if you already have a good understanding of how to implement the fix.
+ options:
+ - label: Yes I am willing to submit a PR!
+
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: >
+ The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it..
+ options:
+ - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) *
+
+ - type: markdown
+ attributes:
+ value: "Thanks for completing our form!"
diff --git a/.github/ISSUE_TEMPLATE/documentation_related.yml b/.github/ISSUE_TEMPLATE/documentation_related.yml
new file mode 100644
index 0000000000..1fa6ef875a
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/documentation_related.yml
@@ -0,0 +1,68 @@
+#
+# 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: Documentation Related
+title: "[Doc] Documentation Related "
+description: I find some issues related to the documentation.
+labels: [ "documentation" ]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For better global communication, Please write in English.
+
+ - type: checkboxes
+ attributes:
+ label: Search before asking
+ description: >
+ Please make sure to search in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue)
+ first to see whether the same issue was reported already.
+ options:
+ - label: >
+ I had searched in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue) and found
+ no similar issues.
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Documentation Related
+ description: Describe the suggestion about document.
+ placeholder: >
+ e.g There is a typo
+ validations:
+ required: true
+
+ - type: checkboxes
+ attributes:
+ label: Are you willing to submit PR?
+ description: >
+ This is absolutely not required, but we are happy to guide you in the contribution process
+ especially if you already have a good understanding of how to implement the fix.
+ options:
+ - label: Yes I am willing to submit a PR!
+
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: >
+ The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it..
+ options:
+ - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) *
+
+ - type: markdown
+ attributes:
+ value: "Thanks for completing our form!"
diff --git a/.github/ISSUE_TEMPLATE/enhancement_request.yml b/.github/ISSUE_TEMPLATE/enhancement_request.yml
new file mode 100644
index 0000000000..cd9e0c59ae
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/enhancement_request.yml
@@ -0,0 +1,77 @@
+#
+# 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: Enhancement Request
+title: "[Enhancement] Enhancement title"
+description: I want to suggest an enhancement for this project
+labels: [ "enhancement" ]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For better global communication, Please write in English.
+
+ - type: checkboxes
+ attributes:
+ label: Search before asking
+ description: >
+ Please make sure to search in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue)
+ first to see whether the same issue was reported already.
+ options:
+ - label: >
+ I had searched in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue) and found
+ no similar issues.
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Enhancement Request
+ description: Describe the suggestion.
+ placeholder: >
+ First of all: Have you checked the docs https://github.com/apache/eventmesh/tree/develop/docs,
+ or GitHub issues whether someone else has already reported your issue?
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Describe the solution you'd like
+ description: Describe the suggestion.
+ placeholder: >
+ A clear and concise description of what you want to happen. Add any considered drawbacks.
+ validations:
+ required: true
+
+ - type: checkboxes
+ attributes:
+ label: Are you willing to submit PR?
+ description: >
+ This is absolutely not required, but we are happy to guide you in the contribution process
+ especially if you already have a good understanding of how to implement the fix.
+ options:
+ - label: Yes I am willing to submit a PR!
+
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: >
+ The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it..
+ options:
+ - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) *
+ - type: markdown
+ attributes:
+ value: "Thanks for completing our form!"
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000000..fe9d032068
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,70 @@
+#
+# 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: Feature Request
+title: "[Feature] Feature title "
+description: I want to suggest a feature for this project.
+labels: [ "feature" ]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For better global communication, Please write in English.
+
+ - type: checkboxes
+ attributes:
+ label: Search before asking
+ description: >
+ Please make sure to search in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue)
+ first to see whether the same issue was reported already.
+ options:
+ - label: >
+ I had searched in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue) and found
+ no similar issues.
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Feature Request
+ description: Describe the feature.
+ placeholder: >
+ First of all: Have you checked the docs https://github.com/apache/eventmesh/tree/develop/docs,
+ or GitHub issues whether someone else has already reported your issue?
+ Maybe the feature already exists?
+ validations:
+ required: true
+
+ - type: checkboxes
+ attributes:
+ label: Are you willing to submit PR?
+ description: >
+ This is absolutely not required, but we are happy to guide you in the contribution process
+ especially if you already have a good understanding of how to implement the fix.
+ options:
+ - label: Yes I am willing to submit a PR!
+
+ - type: checkboxes
+ attributes:
+ label: Code of Conduct
+ description: >
+ The Code of Conduct helps create a safe space for everyone. We require that everyone agrees to it..
+ options:
+ - label: I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) *
+
+ - type: markdown
+ attributes:
+ value: "Thanks for completing our form!"
diff --git a/.github/ISSUE_TEMPLATE/question.yml b/.github/ISSUE_TEMPLATE/question.yml
new file mode 100644
index 0000000000..bd39533a10
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/question.yml
@@ -0,0 +1,51 @@
+#
+# 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: Question
+title: "[Question] Question title "
+description: I have a question that isn't answered in docs or issue.
+labels: [ "question" ]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For better global communication, Please write in English.
+
+ - type: checkboxes
+ attributes:
+ label: Search before asking
+ description: >
+ Please make sure to search in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue)
+ first to see whether the same issue was reported already.
+ options:
+ - label: >
+ I had searched in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue) and found
+ no similar issues.
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Question
+ description: Describe your question.
+ placeholder: >
+ Describe your question here :D
+ validations:
+ required: true
+
+ - type: markdown
+ attributes:
+ value: "Thanks for completing our form!"
diff --git a/.github/ISSUE_TEMPLATE/unit_test.yml b/.github/ISSUE_TEMPLATE/unit_test.yml
new file mode 100644
index 0000000000..82ce502400
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/unit_test.yml
@@ -0,0 +1,86 @@
+#
+# 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: Unit Test
+title: "[Unit Test] Unit test title"
+description: I want to do some unit tests for this project
+labels: [ "testing" ]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ For better global communication, Please write in English.
+
+ - type: checkboxes
+ attributes:
+ label: Search before asking
+ description: >
+ Please make sure to search in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue)
+ first to see whether the same issue was reported already.
+ options:
+ - label: >
+ I had searched in the [issues](https://github.com/apache/eventmesh/issues?q=is%3Aissue) and found
+ no similar issues.
+ required: true
+
+ - type: checkboxes
+ attributes:
+ label: Read the unit testing guidelines
+ description: >
+ Read the [unit testing guidelines](https://eventmesh.apache.org/community/contribute/write-unit-test) before writing unit test code.
+ options:
+ - label: >
+ I have read.
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Unit test request
+ description: Describe the unit test.
+ placeholder: >
+ First of all: Have you checked the docs https://github.com/apache/eventmesh/tree/develop/docs,
+ or GitHub issues whether someone else has already reported your issue?
+ Maybe the unit tests you want to do have already been done?
+ validations:
+ required: true
+
+ - type: textarea
+ attributes:
+ label: Describe the unit tests you want to do
+ description: Describe the unit test.
+ value: |
+ Module name:
+ Located at:
+ Task status: ×(unfinished) / √(finished)
+ | Task Status | Class | Type |
+ | :------: | :------ | :------ |
+ | × | xxxxxx | xxxxxx |
+ validations:
+ required: true
+
+ - type: checkboxes
+ attributes:
+ label: Are you willing to submit PR?
+ description: >
+ This is absolutely not required, but we are happy to guide you in the contribution process
+ especially if you already have a good understanding of how to implement the fix.
+ options:
+ - label: Yes I am willing to submit a PR!
+
+ - type: markdown
+ attributes:
+ value: "Thanks for completing our form!"
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000000..428cda5f55
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,42 @@
+
+
+
+
+Fixes #issue_id
+
+### Motivation
+
+*Explain the content here.*
+*Explain why you want to make the changes and what problem you're trying to solve.*
+
+### Modifications
+
+*Describe the modifications you've done.*
+
+### Documentation
+
+- Does this pull request introduce a new feature? (yes / no)
+- If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
+- If a feature is not applicable for documentation, explain why?
+- If a feature is not documented yet in this PR, please create a followup issue for adding the documentation
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000000..b4b1d8e39d
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,39 @@
+#
+# 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
+updates:
+ - package-ecosystem: "gradle"
+ directory: "/"
+ open-pull-requests-limit: 15
+ schedule:
+ interval: "weekly"
+ ignore:
+ - dependency-name: "*"
+ update-types: [ "version-update:semver-major" ]
+ - package-ecosystem: "gomod"
+ directory: "eventmesh-sdks/eventmesh-sdk-go"
+ schedule:
+ interval: "monthly"
+ ignore:
+ - dependency-name: "*"
+ # Disabled temporarily since the Go SDK is not integrated with CI
+ update-types: [ "version-update:semver-major", "version-update:semver-minor", "version-update:semver-patch" ]
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "monthly"
diff --git a/.github/workflows/auto-dependabot.yml b/.github/workflows/auto-dependabot.yml
new file mode 100644
index 0000000000..0d43a05866
--- /dev/null
+++ b/.github/workflows/auto-dependabot.yml
@@ -0,0 +1,42 @@
+#
+# 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: Dependabot Auto-approve
+on: pull_request_target
+
+permissions:
+ contents: write
+ pull-requests: write
+
+jobs:
+ # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/automating-dependabot-with-github-actions
+ # Pull request Auto merge is not enabled for this repository
+ dependabot:
+ runs-on: ubuntu-latest
+ if: github.actor == 'dependabot[bot]'
+ steps:
+ - name: Dependabot metadata
+ id: metadata
+ uses: dependabot/fetch-metadata@v2
+ with:
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
+
+ - name: Approve PR
+ run: gh pr review --approve "$PR_URL"
+ env:
+ PR_URL: ${{ github.event.pull_request.html_url }}
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000000..88f5577ca9
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,82 @@
+#
+# 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: "Continuous Integration"
+
+on:
+ push:
+ branches:
+ - '**'
+ - '!dependabot/**'
+ pull_request:
+ branches: [ '**' ]
+
+jobs:
+ build:
+ name: Build
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [ ubuntu-latest, macOS-latest ]
+ java: [ 8, 11 ]
+ language: [ 'java' ]
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - if: matrix.language == 'cpp' || matrix.language == 'csharp'
+ name: Build C
+ run: |
+ git submodule init
+ git submodule update
+ make -C ./eventmesh-sdks/eventmesh-sdk-c
+
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+
+ - name: GenerateGrammarSource
+ run: ./gradlew clean generateGrammarSource --parallel --daemon
+ env:
+ GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
+
+ - name: Set up JDK ${{ matrix.java }}
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: ${{ matrix.java }}
+
+ # https://docs.gradle.org/current/userguide/performance.html
+ - name: Build
+ run: ./gradlew clean build dist jacocoTestReport -x spotlessJava -x generateGrammarSource --parallel --daemon
+ env:
+ GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
+
+ - name: Install plugin
+ run: ./gradlew installPlugin
+ env:
+ GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
+
+ - name: Upload coverage report to codecov.io
+ run: bash <(curl -s https://codecov.io/bash) || echo 'Failed to upload coverage report!'
diff --git a/.github/workflows/code-scanning.yml b/.github/workflows/code-scanning.yml
new file mode 100644
index 0000000000..04166f7485
--- /dev/null
+++ b/.github/workflows/code-scanning.yml
@@ -0,0 +1,74 @@
+#
+# 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: 'Code Scanning'
+
+on:
+ push:
+ branches:
+ - '**'
+ - '!dependabot/**'
+ pull_request:
+ branches: [ '**' ]
+
+permissions:
+ security-events: write
+ contents: read
+
+jobs:
+ build:
+ name: Analyze
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'java', 'go' ]
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v3
+ with:
+ # 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
+ languages: ${{ matrix.language }}
+
+ - name: Set up JDK 11
+ if: matrix.language == 'java'
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+
+ - name: Setup Gradle
+ if: matrix.language == 'java'
+ uses: gradle/actions/setup-gradle@v3
+ with:
+ cache-disabled: true
+
+ - name: Build
+ if: matrix.language == 'java'
+ run: ./gradlew clean assemble compileTestJava --parallel --daemon
+ env:
+ GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
+
+ - name: Perform CodeQL analysis
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
new file mode 100644
index 0000000000..dfb36970d0
--- /dev/null
+++ b/.github/workflows/docker.yml
@@ -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: Docker
+on:
+ release:
+ types: [released]
+
+jobs:
+ docker:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Login to DockerHub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKERHUB_USER }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ - name: Docker meta
+ id: meta
+ uses: docker/metadata-action@v5
+ with:
+ images: |
+ apache/eventmesh
+
+ - name: Build and push
+ uses: docker/build-push-action@v5
+ with:
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
+ file: ./docker/Dockerfile_jdk8
+ context: ./
diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml
new file mode 100644
index 0000000000..ea438849df
--- /dev/null
+++ b/.github/workflows/greetings.yml
@@ -0,0 +1,76 @@
+#
+# 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: Greetings
+
+on: [ pull_request_target, issues ]
+
+jobs:
+ greeting:
+ name: Greeting
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/first-interaction@v1.3.0
+ with:
+ repo-token: ${{ secrets.GITHUB_TOKEN }}
+ issue-message: |
+ Welcome to the Apache EventMesh community!!
+ We are glad that you are contributing by opening this issue. :D
+
+ Please make sure to include all the relevant context.
+ We will be here shortly.
+
+ If you are interested in contributing to our project, please let us know!
+ You can check out our contributing guide on [contributing to EventMesh](https://eventmesh.apache.org/community/contribute/contribute).
+
+ Want to get closer to the community?
+
+ |WeChat Assistant|WeChat Public Account|Slack|
+ |-|-|-|
+ |
|
|[Join Slack Chat](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)|
+
+ Mailing Lists:
+ | Name | Description |Subscribe |Unsubscribe|Archive
+ | ---- | ---- |---- | ---- | ---- |
+ |Users |User support and questions mailing list| [Subscribe](mailto:users-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:users-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?users@eventmesh.apache.org)|
+ |Development |Development related discussions| [Subscribe](mailto:dev-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:dev-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?dev@eventmesh.apache.org)|
+ |Commits |All commits to repositories| [Subscribe](mailto:commits-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:commits-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?commits@eventmesh.apache.org)|
+ |Issues |Issues or PRs comments and reviews| [Subscribe](mailto:commits-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:commits-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?commits@eventmesh.apache.org)|
+
+ pr-message: |
+ Welcome to the Apache EventMesh community!!
+ This is your first PR in our project. We're very excited to have you onboard contributing. Your contributions are greatly appreciated!
+
+ Please make sure that the changes are covered by tests.
+ We will be here shortly.
+ Let us know if you need any help!
+
+ Want to get closer to the community?
+
+ |WeChat Assistant|WeChat Public Account|Slack|
+ |-|-|-|
+ |
|
|[Join Slack Chat](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)|
+
+ Mailing Lists:
+ | Name | Description |Subscribe |Unsubscribe|Archive
+ | ---- | ---- |---- | ---- | ---- |
+ |Users |User support and questions mailing list| [Subscribe](mailto:users-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:users-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?users@eventmesh.apache.org)|
+ |Development |Development related discussions| [Subscribe](mailto:dev-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:dev-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?dev@eventmesh.apache.org)|
+ |Commits |All commits to repositories| [Subscribe](mailto:commits-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:commits-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?commits@eventmesh.apache.org)|
+ |Issues |Issues or PRs comments and reviews| [Subscribe](mailto:commits-subscribe@eventmesh.incubator.apache.org) |[Unsubscribe](mailto:commits-unsubscribe@eventmesh.incubator.apache.org) |[Mail Archives](https://lists.apache.org/list.html?commits@eventmesh.apache.org)|
diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml
new file mode 100644
index 0000000000..cc52bdd49f
--- /dev/null
+++ b/.github/workflows/license.yml
@@ -0,0 +1,46 @@
+#
+# 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: 'License Check'
+on: [ pull_request ]
+
+permissions:
+ contents: read
+
+jobs:
+ dependency-review:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout Repository
+ uses: actions/checkout@v4
+
+ - name: Check license header
+ uses: apache/skywalking-eyes@main
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v4
+ with:
+ distribution: 'zulu'
+ java-version: 11
+
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@v3
+
+ - name: Check license compatibility
+ run: ./gradlew clean checkDeniedLicense
+ env:
+ GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
new file mode 100644
index 0000000000..c1e4f4ab15
--- /dev/null
+++ b/.github/workflows/stale.yml
@@ -0,0 +1,48 @@
+#
+# 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: 'Remind stale issues and PRs'
+
+on:
+ schedule:
+ - cron: '30 18 * * *'
+
+permissions:
+ issues: write
+ pull-requests: write
+
+jobs:
+ stale:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/stale@v8
+ with:
+ days-before-issue-stale: 90
+ days-before-pr-stale: 60
+ days-before-close: -1 # Never close an issue or PR
+ stale-issue-message: |
+ It has been 90 days since the last activity on this issue. Apache EventMesh values the voices of the community. Please don't hesitate to share your latest insights on this matter at any time, as the community is more than willing to engage in discussions regarding the development and optimization directions of this feature.
+
+ If you feel that your issue has been resolved, please feel free to close it. Should you have any additional information to share, you are welcome to reopen this issue.
+ stale-pr-message: |
+ It has been 60 days since the last activity on this pull request. I am reaching out here to gently remind you that the Apache EventMesh community values every pull request, and please feel free to get in touch with the reviewers at any time. They are available to assist you in advancing the progress of your pull request and offering the latest feedback.
+
+ If you encounter any challenges during development, seeking support within the community is encouraged. We sincerely appreciate your contributions to Apache EventMesh.
+ exempt-issue-labels: 'pinned,discussion,help wanted,WIP,weopen-star,GLCC,summer of code'
+ exempt-pr-labels: 'help wanted,dependencies'
+ exempt-all-milestones: true # Exempt all issues/PRs with milestones from stale
+ operations-per-run: 300
diff --git a/.gitignore b/.gitignore
index 936bb5cb18..2379b9f175 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,11 +9,45 @@ logs
*.iws
*.class
*.log
+*.log.*
.idea
+!/.idea/icon.png
build
.classpath
.project
test-output
dist
+out
.pmd
classes
+package-lock.json
+node_modules
+.run
+
+h2/db.mv.db
+
+# license check tmp file
+/tools/dependency-check/all-dependencies.txt
+self-modules.txt
+third-party-dependencies.txt
+
+# github codespaces or visual studio
+.vscode
+[Dd]ebug/
+[Dd]ebugPublic/
+[Rr]elease/
+[Rr]eleases/
+x64/
+x86/
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+bld/
+[Bb]in/
+[Oo]bj/
+[Ll]og/
+[Ll]ogs/
+**/org/apache/eventmesh/connector/jdbc/antlr4/autogeneration/*
+
+#rust
+Cargo.lock
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000..51d401af7f
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,7 @@
+[submodule "eventmesh-sdks/eventmesh-sdk-c/third_party/json-c"]
+ path = eventmesh-sdks/eventmesh-sdk-c/third_party/json-c
+ url = git@github.com:json-c/json-c.git
+ branch = json-c-0.17
+[submodule "eventmesh-sdks/eventmesh-sdk-c/third_party/curl"]
+ path = eventmesh-sdks/eventmesh-sdk-c/third_party/curl
+ url = git@github.com:curl/curl.git
diff --git a/.idea/icon.png b/.idea/icon.png
new file mode 100644
index 0000000000..59aa06dac9
Binary files /dev/null and b/.idea/icon.png differ
diff --git a/.licenserc.yaml b/.licenserc.yaml
new file mode 100644
index 0000000000..db0d1d0c55
--- /dev/null
+++ b/.licenserc.yaml
@@ -0,0 +1,49 @@
+#
+# 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.
+#
+
+header:
+ license:
+ spdx-id: Apache-2.0
+ copyright-owner: Apache Software Foundation
+
+ paths-ignore:
+ - 'eventmesh-operator/config/crd/bases'
+ - 'eventmesh-operator/config/rbac'
+ - '.github/PULL_REQUEST_TEMPLATE'
+ - '.gitmodules'
+ - '**/.gitkeep'
+ - '**/.gitignore'
+ - '**/.dockerignore'
+ - '**/*.md'
+ - '**/*.json'
+ - '**/*.ftl'
+ - '**/*.iml'
+ - '**/*.ini'
+ - '**/*.crt'
+ - '**/*.pem'
+ - '**/go.sum'
+ - '**/Cargo.lock'
+ - 'LICENSE'
+ - 'NOTICE'
+ - 'gradlew'
+ - 'gradlew.bat'
+ - '**/*.txt'
+ - 'tools/dist-license/licenses/**'
+
+ comment: on-failure
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4c2ba8ba57..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-dist: trusty
-
-language: java
-jdk:
-- oraclejdk8
-
-script:
-- travis_retry gradle check
-
-after_success:
-- gradle clean test jacocoAllTestReport coveralls
-
-env:
- global:
- - secure: "T1QAuaAzcB7K8YjAAVVb4P9+W0JAdOFbyBwRxliyyoSZUShlIqa0eE7ioXHXWBP/d5f3XtROse6lq2qILqcU9sFSncKE2vRJlwJ5p7R23WIsCXdV70A9AVE2gLJcIJiOTMwd/YYYzNDrGLp3CSJNcKo8t7t70V2j/11I9xPTOHnaZ8FHGC3d/7bjfR/+g/3d4EOCvV8Vm6ndEmmailmF8OJ/kcbuRbArKIehjUwNDyQZfwAc9+vvPZlHgnQvR1pJ/KiK6muEIi7RQohDq7lMTmcc2LZSYgy/+aqFrmBcQwXScABFmSwysQ4KMXfrCqqMsBdmvno/NoKVGofHHKdym/oauv/G3lxLx5sgM9A7ZSFBK08x08r7u/6TDsTFmQ9LzVFDNo/OLZhxs3dr9x2C9Pa2A7IP1i1oVbbYkwBJv4z6o3khWpQAAY/IWijlCZ9vkjFfqdIXbvlPqamEaFRAmK5I3MVqL2+eBF+2Or/zwv4rXjo+v5LUKTfmDl77QUshPv6J+hblbBR0cJ/ZTSh9rHgdqhEzPGSt3e0YrEefkKWfinBr8TjIsHgQgmfU8Kz7gf7tvioOuAgKj4WlgEQJs3dPp7J5zxFVNMM6teAMFy8c2MtAdzKrs13Ri1qZWtL6B7JWlH6yhHqhKghyJhRjUFNVZnBkA/z9gzDKZ+tz2m8="
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
index c03c59a0bc..0000000000
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Contributing to EventMesh
-
-Welcome to EventMesh! This document is a guideline about how to contribute to EventMesh.
-If you find something incorrect or missing, please leave comments / suggestions.
-
-## Before you get started
-
-### Setting up your development environment
-
-You should have JDK installed in your operating system.
-
-## Contributing
-
-We are always very happy to have contributions, whether for typo fix, bug fix or big new features.
-Please do not ever hesitate to ask a question or send a pull request.
-
-We strongly value documentation and integration with other projects.
-We are very glad to accept improvements for these aspects.
-
-### GitHub workflow
-
-We use the `develop` branch as the development branch, which indicates that this is an unstable branch.
-
-Here are the workflow for contributors:
-
-1. Fork to your own
-2. Clone fork to local repository
-3. Create a new branch and work on it
-4. Keep your branch in sync
-5. Commit your changes (make sure your commit message concise)
-6. Push your commits to your forked repository
-7. Create a pull request
-
-Please follow [the pull request template](./.github/PULL_REQUEST_TEMPLATE.md).
-Please make sure the PR has a corresponding issue.
-
-After creating a PR, one or more reviewers will be assigned to the pull request.
-The reviewers will review the code.
-
-Before merging a PR, squash any fix review feedback, typo, merged, and rebased sorts of commits.
-The final commit message should be clear and concise.
-
-### Open an issue / PR
-
-We use [GitHub Issues](https://github.com/WeBankFinTech/EventMesh/issues) and [Pull Requests](https://github.com/WeBankFinTech/EventMesh/pulls) for trackers.
-
-If you find a typo in a document, find a bug in code, or want new features, or want to give suggestions,
-you can [open an issue on GitHub](https://github.com/WeBankFinTech/EventMesh/issues/new) to report it.
-Please follow the guideline message in the issue template.
-
-If you want to contribute, please follow the [contribution workflow](#github-workflow) and create a new pull request.
-If your PR contains large changes, e.g. component refactor or new components, please write detailed documents
-about its design and usage.
-
-Note that a single pull request should not be too large. If heavy changes are required, it's better to separate the changes
-to a few individual PRs.
-
-### Code review
-
-All code should be well reviewed by one or more committers. Some principles:
-
-- Readability: Important code should be well-documented. Comply with our code style.
-- Elegance: New functions, classes or components should be well-designed.
-- Testability: Important code should be well-tested (high unit test coverage).
-
-## Community
-
-### Contact us
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000..261eeb9e9f
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000000..910ee0673f
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,5 @@
+Apache EventMesh
+Copyright 2021-2024 The Apache Software Foundation
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
diff --git a/README.md b/README.md
index 1d59312312..ca3ae0bf4b 100644
--- a/README.md
+++ b/README.md
@@ -1,42 +1,227 @@
-[](https://www.travis-ci.org/WeBankFinTech/EventMesh) [](https://coveralls.io/github/WeBankFinTech/EventMesh?branch=master)
+
+
|
| [Join Slack Chat](https://join.slack.com/t/the-asf/shared_invite/zt-1y375qcox-UW1898e4kZE_pqrNsrBM2g)(Please open an issue if this link is expired) |
+
+Bi-weekly meeting : [#Tencent meeting](https://meeting.tencent.com/dm/wes6Erb9ioVV) : 346-6926-0133
+Bi-weekly meeting record : [bilibili](https://space.bilibili.com/1057662180)
+### Mailing List
+| Name | Description | Subscribe | Unsubscribe | Archive |
+|-------------|---------------------------------------------------------|------------------------------------------------------------|----------------------------------------------------------------|----------------------------------------------------------------------------------|
+| Users | User discussion | [Subscribe](mailto:users-subscribe@eventmesh.apache.org) | [Unsubscribe](mailto:users-unsubscribe@eventmesh.apache.org) | [Mail Archives](https://lists.apache.org/list.html?users@eventmesh.apache.org) |
+| Development | Development discussion (Design Documents, Issues, etc.) | [Subscribe](mailto:dev-subscribe@eventmesh.apache.org) | [Unsubscribe](mailto:dev-unsubscribe@eventmesh.apache.org) | [Mail Archives](https://lists.apache.org/list.html?dev@eventmesh.apache.org) |
+| Commits | Commits to related repositories | [Subscribe](mailto:commits-subscribe@eventmesh.apache.org) | [Unsubscribe](mailto:commits-unsubscribe@eventmesh.apache.org) | [Mail Archives](https://lists.apache.org/list.html?commits@eventmesh.apache.org) |
+| Issues | Issues or PRs comments and reviews | [Subscribe](mailto:issues-subscribe@eventmesh.apache.org) | [Unsubscribe](mailto:issues-unsubscribe@eventmesh.apache.org) | [Mail Archives](https://lists.apache.org/list.html?issues@eventmesh.apache.org) |
diff --git a/README.zh-CN.md b/README.zh-CN.md
new file mode 100644
index 0000000000..a134536b1a
--- /dev/null
+++ b/README.zh-CN.md
@@ -0,0 +1,227 @@
+
+
|
| [加入 Slack ](https://join.slack.com/t/apacheeventmesh/shared_invite/zt-1t1816dli-I0t3OE~IpdYWrZbIWhMbXg) |
+
+双周会议 : [#Tencent meeting](https://meeting.tencent.com/dm/wes6Erb9ioVV) : 346-6926-0133
+
+双周会议记录 : [bilibili](https://space.bilibili.com/1057662180)
+
+### 邮件名单
+
+| 名称 | 描述 | 订阅 | 取消订阅 | 邮件列表存档 |
+|---------|--------------------------|-----------------------------------------------------|---------------------------------------------------------|-------------------------------------------------------------------------|
+| 用户 | 用户支持与用户问题 | [订阅](mailto:users-subscribe@eventmesh.apache.org) | [取消订阅](mailto:users-unsubscribe@eventmesh.apache.org) | [邮件存档](https://lists.apache.org/list.html?users@eventmesh.apache.org) |
+| 开发 | 开发相关 (设计文档, Issues等等.) | [订阅](mailto:dev-subscribe@eventmesh.apache.org) | [取消订阅](mailto:dev-unsubscribe@eventmesh.apache.org) | [邮件存档](https://lists.apache.org/list.html?dev@eventmesh.apache.org) |
+| Commits | 所有与仓库相关的 commits 信息通知 | [订阅](mailto:commits-subscribe@eventmesh.apache.org) | [取消订阅](mailto:commits-unsubscribe@eventmesh.apache.org) | [邮件存档](https://lists.apache.org/list.html?commits@eventmesh.apache.org) |
+| Issues | Issues 或者 PR 提交和代码Review | [订阅](mailto:issues-subscribe@eventmesh.apache.org) | [取消订阅](mailto:issues-unsubscribe@eventmesh.apache.org) | [邮件存档](https://lists.apache.org/list.html?issues@eventmesh.apache.org) |
+
diff --git a/build.gradle b/build.gradle
index e69de29bb2..610d8930fa 100644
--- a/build.gradle
+++ b/build.gradle
@@ -0,0 +1,750 @@
+/*
+ * 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.
+ */
+
+import groovy.json.JsonSlurper
+import org.apache.commons.io.IOUtils
+import org.apache.http.client.config.RequestConfig
+import org.apache.http.client.methods.CloseableHttpResponse
+import org.apache.http.client.methods.HttpGet
+import org.apache.http.impl.client.CloseableHttpClient
+import org.apache.http.impl.client.HttpClients
+import org.apache.http.util.EntityUtils
+
+import java.nio.charset.StandardCharsets
+import java.nio.file.Files
+import java.nio.file.Paths
+import java.util.concurrent.TimeUnit
+
+buildscript {
+ repositories {
+ mavenCentral()
+ maven {
+ url "https://maven.aliyun.com/repository/public"
+ }
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
+ }
+
+ dependencies {
+ classpath "com.github.spotbugs.snom:spotbugs-gradle-plugin:5.0.14"
+ classpath "io.spring.gradle:dependency-management-plugin:1.0.11.RELEASE"
+ classpath "com.diffplug.spotless:spotless-plugin-gradle:6.13.0"
+
+ classpath "org.apache.httpcomponents:httpclient:4.5.13"
+ classpath "commons-io:commons-io:2.11.0"
+ }
+}
+
+plugins {
+ id 'org.cyclonedx.bom' version '1.8.2'
+ id 'com.github.jk1.dependency-license-report' version '2.6'
+}
+
+// Remove doclint warnings that pollute javadoc logs when building
+if (JavaVersion.current().isJava8()) {
+ allprojects {
+ tasks.withType(Javadoc) {
+ options.addStringOption('xdoclint:none', '-quiet')
+ }
+ }
+}
+
+allprojects {
+ apply plugin: 'java'
+ apply plugin: "eclipse"
+ apply plugin: "idea"
+ apply plugin: "maven-publish"
+ apply plugin: "project-reports"
+ apply plugin: "jacoco"
+ apply plugin: "pmd"
+ apply plugin: "java-library"
+ apply plugin: 'signing'
+ apply plugin: 'checkstyle'
+ apply plugin: 'com.diffplug.spotless'
+ apply plugin: "com.github.spotbugs"
+
+ [compileJava, compileTestJava, javadoc]*.options*.encoding = 'UTF-8'
+
+ compileJava.options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
+
+ java {
+ sourceCompatibility = "1.8"
+ targetCompatibility = "1.8"
+ }
+
+ clean.doFirst {
+ delete 'build'
+ delete 'dist'
+ delete 'out'
+ }
+
+ checkstyle {
+ toolVersion = '9.0'
+ ignoreFailures = false
+ showViolations = true
+ maxWarnings = 0
+ configFile = new File("${rootDir}/style/checkStyle.xml")
+ configDirectory = file("${rootDir}/style")
+ }
+
+ checkstyleMain.exclude('**/org/apache/eventmesh/client/grpc/protos**')
+ .exclude('**/org/apache/eventmesh/common/protocol/grpc/cloudevents**')
+ .exclude('**/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService**')
+ .exclude('**/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc**')
+ .exclude('**/org/apache/eventmesh/connector/jdbc/antlr**')
+
+ dependencies {
+ repositories {
+ mavenCentral()
+ maven {
+ url "https://maven.aliyun.com/repository/public"
+ }
+ }
+ testImplementation "org.junit.jupiter:junit-jupiter:5.6.0"
+ }
+
+ spotless {
+ enforceCheck false
+ java {
+ target project.fileTree(project.projectDir) {
+ include 'src/*/java/**/*.java'
+ exclude '**/org/apache/eventmesh/**/protos**'
+ exclude '**/org/apache/eventmesh/connector/openfunction/client/EventMeshGrpcService**'
+ exclude '**/org/apache/eventmesh/connector/openfunction/client/CallbackServiceGrpc**'
+ exclude '**/org/apache/eventmesh/connector/jdbc/antlr**'
+ exclude '**/org/apache/eventmesh/common/protocol/grpc**'
+ exclude '**/org/apache/eventmesh/connector/jdbc/source/dialect/snapshot/AbstractSnapshotEngine.java'
+ }
+ importOrder ('\\#org.apache.eventmesh','\\#org.apache','\\#java','\\#javax','\\#org','\\#io','\\#net','\\#junit','\\#com','\\#lombok',
+ 'org.apache.eventmesh','org.apache','java','javax','org','io','net','junit','com','lombok')
+ licenseHeaderFile rootProject.file('style/checkstyle-header-java.txt')
+ eclipse().configFile("${rootDir}/style/task/eventmesh-spotless-formatter.xml")
+ removeUnusedImports()
+ }
+ }
+ afterEvaluate {
+ tasks.forEach {task ->
+ if (task.name.contains("spotlessJava")) {
+ task.dependsOn(compileJava, javadoc, compileTestJava, test, processResources, processTestResources)
+ }
+ }
+ spotlessJava.dependsOn(subprojects.collect {it.tasks["spotlessJava"] })
+ }
+
+ test {
+ useJUnitPlatform()
+ }
+}
+
+tasks.register('dist') {
+ subprojects.forEach { subProject ->
+ dependsOn("${subProject.path}:jar")
+ }
+ dependsOn('generateDistLicense', 'generateDistNotice')
+ def includedProjects =
+ ["eventmesh-common",
+ "eventmesh-meta:eventmesh-meta-api",
+ "eventmesh-metrics-plugin:eventmesh-metrics-api",
+ "eventmesh-protocol-plugin:eventmesh-protocol-api",
+ "eventmesh-retry:eventmesh-retry-api",
+ "eventmesh-runtime",
+ "eventmesh-security-plugin:eventmesh-security-api",
+ "eventmesh-spi",
+ "eventmesh-starter",
+ "eventmesh-storage-plugin:eventmesh-storage-api",
+ "eventmesh-trace-plugin:eventmesh-trace-api",
+ "eventmesh-webhook:eventmesh-webhook-api",
+ "eventmesh-webhook:eventmesh-webhook-admin",
+ "eventmesh-webhook:eventmesh-webhook-receive"]
+ doLast {
+ includedProjects.each {
+ def subProject = findProject(it)
+ logger.lifecycle('Install module: module: {}', subProject.name)
+ copy {
+ from subProject.jar.archivePath
+ into rootProject.file('dist/apps')
+ }
+ copy {
+ from subProject.file('bin')
+ into rootProject.file('dist/bin')
+ }
+ copy {
+ from subProject.file('conf')
+ from subProject.sourceSets.main.resources.srcDirs
+ into rootProject.file('dist/conf')
+ duplicatesStrategy = DuplicatesStrategy.EXCLUDE
+ exclude 'META-INF'
+ }
+ copy {
+ from subProject.configurations.runtimeClasspath
+ into rootProject.file('dist/lib')
+ exclude 'eventmesh-*'
+ }
+ }
+ copy {
+ from 'tools/dist-license'
+ into rootProject.file('dist')
+ }
+ }
+}
+
+tasks.register('tar', Tar) {
+ archiveBaseName.set(project.name)
+ archiveVersion.set(project.version.toString())
+ archiveExtension.set('tar.gz')
+ compression = Compression.GZIP
+ destinationDirectory = new File(projectDir, 'build')
+ into('/') {
+ from 'dist'
+ }
+}
+
+tasks.register('zip', Zip) {
+ archiveBaseName.set(project.name)
+ archiveVersion.set(project.version.toString())
+ archiveExtension.set('zip')
+ destinationDirectory = new File(projectDir, 'build')
+ into('/') {
+ from 'dist'
+ }
+}
+
+tasks.register('installPlugin') {
+ var pluginProjects = subprojects.findAll {
+ it.file('gradle.properties').exists()
+ && it.properties.containsKey('pluginType')
+ && it.properties.containsKey('pluginName')
+ }
+ doLast {
+ String[] libJars = java.util.Optional.ofNullable(file('dist/lib').list()).orElse(new String[0])
+ pluginProjects.forEach(subProject -> {
+ var pluginType = subProject.properties.get('pluginType')
+ var pluginName = subProject.properties.get('pluginName')
+ logger.lifecycle('Install plugin: pluginType: {}, pluginInstanceName: {}, module: {}', pluginType,
+ pluginName, subProject.name)
+ copy {
+ from subProject.jar.archivePath
+ into rootProject.file("dist/plugin/${pluginType}/${pluginName}")
+ }
+ copy {
+ from subProject.configurations.runtimeClasspath
+ into rootProject.file("dist/plugin/${pluginType}/${pluginName}")
+ exclude(libJars)
+ }
+ copy {
+ from subProject.file('conf')
+ from subProject.sourceSets.main.resources.srcDirs
+ into rootProject.file("dist/conf")
+ exclude 'META-INF'
+ }
+ })
+ }
+}
+
+tasks.register('printProjects') {
+ getAllprojects().forEach(subProject -> {
+ if ("EventMesh".equals(subProject.getName())) {
+ return
+ }
+ println String.format("%s-%s.jar", subProject.getName(), subProject.getVersion())
+ })
+}
+
+cyclonedxBom {
+ includeConfigs = ["runtimeClasspath"]
+}
+
+tasks.register('generateDistLicense') {
+ dependsOn('cyclonedxBom') // Task from 'org.cyclonedx.bom' plugin
+ doLast {
+ // Inputs
+ def bomFile = file("$buildDir/reports/bom.json")
+ def bom = new JsonSlurper().parseText(bomFile.text)
+ def projectLicenseText = file('LICENSE').text
+
+ // Outputs
+ def distLicenseFile = file('tools/dist-license/LICENSE')
+ def licensesDir = file('tools/dist-license/licenses/java/')
+ if (licensesDir.exists()) {
+ licensesDir.eachFile { it.delete() }
+ } else {
+ licensesDir.mkdirs()
+ }
+
+ List