Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
a3fcbdf
update to 3.7.0 snapshot
vavi Dec 22, 2025
628270e
support postgresql and found bad api design for id type
vavi Dec 22, 2025
921b5ae
update source plugin
vavi Dec 23, 2025
f0020f2
dev SupervisionQueryService and NotificationQueryService
vavi Dec 23, 2025
954da99
add ut
vavi Dec 23, 2025
e9cde28
add sql
vavi Dec 23, 2025
03f8bec
add docs by chatgpt
vavi Dec 24, 2025
ec629fc
use aura_meta db
vavi Dec 28, 2025
9806622
fk
vavi Jan 28, 2026
15f02ae
add database dialect support,add chain query api
vavi Feb 1, 2026
9201780
add SmartIdTypeHandler, support multiple id type
vavi Feb 1, 2026
885df75
support dual model
vavi Feb 6, 2026
34e796c
StorageMode.MEMORY → StorageMode.CUSTOM
vavi Feb 6, 2026
ff5de10
add docs
vavi Feb 6, 2026
1f60d04
enhance fluent query API, add Oracle/DM schema, deprecate old QuerySe…
vavi Feb 8, 2026
025f10f
add chain query api
vavi Feb 8, 2026
f3de905
add more api method
vavi Feb 8, 2026
29695e7
add dynamic query for task_instance
vavi Feb 8, 2026
f31e923
update docs
vavi Feb 8, 2026
1aedd5b
add data archive
vavi Feb 8, 2026
0cc5bb6
feat: add suspend/resume/claim APIs to SmartEngine command services
vavi Feb 8, 2026
c1c45b9
feat: add database sharding support with index tables and Snowflake ID
vavi Feb 9, 2026
2ef73a9
feat: add EventBasedGateway and IntermediateCatchEvent support
vavi Feb 9, 2026
cdc871d
update CHANELOG.md
vavi Feb 9, 2026
57a0c6c
add docs/ProcessMonitorSolution.md
vavi Feb 11, 2026
f4841fc
fix: generate ID for task operation records to prevent NOT NULL viola…
vavi Feb 22, 2026
b9a8969
update docs
vavi Mar 4, 2026
a15f5de
feat(smart-engine): add 7 task lifecycle event constants to EventCons…
vavi Mar 25, 2026
4425eaa
feat(smart-engine): add TaskEventPublisher SPI interface and wire to …
vavi Mar 25, 2026
ea91847
feat(smart-engine): add taskInstance field to ExecutionContext for ta…
vavi Mar 25, 2026
bbcecbc
feat(smart-engine): fire TASK_ASSIGNED in UserTaskBehavior.enter() fo…
vavi Mar 25, 2026
0a6f544
feat(smart-engine): fire TASK_ASSIGNED in compensate (path C) and TAS…
vavi Mar 25, 2026
e0f7845
feat(smart-engine): fire task events in DefaultTaskCommandService for…
vavi Mar 25, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
15 changes: 15 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Global fallback owner
* @geecoodeer

# Core engine
/core/ @geecoodeer

# Extensions
/extension/ @geecoodeer

# Documentation and release assets
/docs/ @geecoodeer
/README.md @geecoodeer
/README-zh.md @geecoodeer
/CHANGELOG.md @geecoodeer
/CHANGELOG-zh.md @geecoodeer
38 changes: 38 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Bug report
description: Report a reproducible bug in SmartEngine.
title: "[Bug] "
labels: ["bug"]
body:
- type: textarea
id: problem
attributes:
label: Problem description
description: What happened and what did you expect?
validations:
required: true
- type: textarea
id: steps
attributes:
label: Reproduction steps
description: Provide minimal reproducible steps.
validations:
required: true
- type: input
id: version
attributes:
label: SmartEngine version
placeholder: e.g. 3.7.0-SNAPSHOT
validations:
required: true
- type: textarea
id: environment
attributes:
label: Environment
description: JDK, OS, DB, framework versions.
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs / stacktrace
render: shell
5 changes: 5 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
blank_issues_enabled: false
contact_links:
- name: Question and discussion
url: https://github.com/alibaba/SmartEngine/discussions
about: Ask usage questions and discuss design choices.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Feature request
description: Suggest an improvement or new capability.
title: "[Feature] "
labels: ["enhancement"]
body:
- type: textarea
id: motivation
attributes:
label: Motivation
description: What problem are you trying to solve?
validations:
required: true
- type: textarea
id: proposal
attributes:
label: Proposal
description: Describe the expected behavior and API changes.
validations:
required: true
- type: textarea
id: compatibility
attributes:
label: Compatibility impact
description: Any breaking changes, migration steps, or DB impact.
36 changes: 36 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
## Summary

- Problem:
- Approach:

## Change Type

- [ ] docs
- [ ] refactor
- [ ] fix
- [ ] feature
- [ ] breaking change

## Compatibility and Risk

- Compatibility impact:
- Rollback plan:

## Testing

- [ ] Unit tests added/updated
- [ ] Integration tests added/updated
- [ ] Local verification command(s):

## Database Impact (if any)

- [ ] No database change
- [ ] MySQL DDL updated
- [ ] PostgreSQL DDL updated
- [ ] SQLMap updated
- [ ] Migration note included

## Documentation

- [ ] README/docs updated
- [ ] CHANGELOG updated
44 changes: 44 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: CI

on:
push:
branches:
- master
- dev
pull_request:

jobs:
build:
name: Build (JDK ${{ matrix.java }})
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java: [8, 17]
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: ${{ matrix.java }}
cache: maven
- name: Compile all modules
run: mvn -B -ntp -DskipTests package

unit-test:
name: Unit tests (DB independent)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
cache: maven
- name: Run core and extension tests without database dependency
run: >-
mvn -B -ntp
-pl core,extension/storage/storage-common,extension/storage/storage-custom,extension/retry/retry-common,extension/retry/retry-custom
-am test
32 changes: 32 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Release

on:
push:
tags:
- 'v*'

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 8
cache: maven
- name: Build artifacts
run: mvn -B -ntp -DskipTests package
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: smart-engine-jars
path: |
**/target/*.jar
!**/*-sources.jar
!**/*-javadoc.jar
- name: Publish GitHub release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,5 @@ release.properties


#lock file using for test
smart-engine.lock
smart-engine.lock
.factorypath
32 changes: 32 additions & 0 deletions .run/smart-engine [test].run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="smart-engine [test]" type="MavenRunConfiguration" factoryName="Maven" nameIsGenerated="true">
<MavenSettings>
<option name="myGeneralSettings" />
<option name="myRunnerSettings" />
<option name="myRunnerParameters">
<MavenRunnerParameters>
<option name="cmdOptions" />
<option name="profiles">
<set />
</option>
<option name="goals">
<list>
<option value="test" />
</list>
</option>
<option name="multimoduleDir" />
<option name="pomFileName" />
<option name="profilesMap">
<map />
</option>
<option name="projectsCmdOptionValues">
<list />
</option>
<option name="resolveToWorkspace" value="false" />
<option name="workingDirPath" value="$PROJECT_DIR$" />
</MavenRunnerParameters>
</option>
</MavenSettings>
<method v="2" />
</configuration>
</component>
File renamed without changes.
17 changes: 17 additions & 0 deletions CHANELOG.md → CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,20 @@
# 3.7.0-SNAPSHOT
1. [Feature] Add database sharding support with index tables and Snowflake ID generator
2. [Feature] Add suspend/resume/claim APIs to SmartEngine command services
3. [Feature] Add data archive module for MySQL, Oracle, and PostgreSQL
4. [Feature] Add dynamic query support for task_instance
5. [Feature] Add chain query API for fluent query operations
6. [Feature] Enhance fluent query API with advanced filtering and pagination
7. [Feature] Add database dialect support - Oracle, DM, PostgreSQL, MySQL, OceanBase, Kingbase, SQL Server, H2
8. [Feature] Add SmartIdTypeHandler for multiple ID type support
9. [Feature] Add NotificationQueryService and SupervisionQueryService
10. [Feature] Add NotificationCommandService and SupervisionCommandService
11. [Feature] Support dual storage mode (MEMORY + CUSTOM)
12. [Breaking Change] StorageMode.MEMORY renamed to StorageMode.CUSTOM
13. [Refactor] Deprecate old QueryService methods in favor of fluent query API
14. [Docs] Comprehensive documentation updates including API guide, architecture, and database schema
15. [Feature] Add EventBasedGateway and IntermediateCatchEvent support for event-driven branching

# 3.6.0-SNAPSHOT
1. [Feature Enhancement] Add multi-tenancy feature, thanks to @yanricheng1 for submitting the PR.
2. [Module adjustment] Remove MongoDB Storage
Expand Down
71 changes: 51 additions & 20 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,57 @@
# Contributing

## Contributing
This repository accepts contributions through pull requests to `master`.
`dev` can be used as a temporary integration branch, but changes should be merged in small, reviewable batches.

If you want to contribute to a project and make it better, your help is very welcome. Contributing is also a great way to learn more about social coding on Github, new technologies and and their ecosystems and how to make constructive, helpful bug reports, feature requests and the noblest of all contributions: a good, clean pull request.
## Prerequisites

### How to make a clean pull request
- JDK 8+
- Maven 3.6+
- MySQL/PostgreSQL only when running database integration tests

Look for a project's contribution instructions. If there are any, follow them.
## Build and Test

- Create a personal fork of the project on Github.
- Clone the fork on your local machine. Your remote repo on Github is called `origin`.
- Add the original repository as a remote called `upstream`.
- If you created your fork a while ago be sure to pull upstream changes into your local repository.
- Create a new branch to work on! Branch from `develop` if it exists, else from `master`.
- Implement/fix your feature, comment your code, .
- Follow the code style of the project, including indentation.
- Write or adapt tests as needed.
- Add or change the documentation as needed.
- Create a new branch if necessary.
- Push your branch to your fork on Github, the remote `origin`.
- From your fork open a pull request in the correct branch. Target the project's `develop` branch if there is one, else go for `master`!
- Wait for approval.
- Once the pull request is approved and merged you can pull the changes from `upstream` to your local repo and delete
your extra branch(es).
Run at repository root:

And last but not least: Always write your commit messages in the present tense. Your commit message should describe what the commit, when applied, does to the code – not what you did to the code.
```bash
mvn -q -DskipTests=false test
```

Module-level examples:

```bash
mvn -pl core -am test
mvn -pl extension/storage/storage-custom -am test
mvn -pl extension/storage/storage-mysql -am test
```

Reference: `docs/07-dev/build-and-test.md`

## Pull Request Requirements

- Keep each PR focused on one theme.
- Use the PR template completely, including risk and rollback notes.
- Add or update tests for behavior changes.
- Update docs for user-visible changes.
- Update `CHANGELOG.md` and `CHANGELOG-zh.md` for release-relevant changes.

For database-related changes:

- Update both MySQL and PostgreSQL DDL.
- Update MyBatis SQL maps.
- Provide migration notes.

## Recommended Merge Strategy for Large Branches

If a branch is too large to review in one PR, split into these categories:

1. Mechanical changes (format/move/rename).
2. Build/dependency changes.
3. Feature additions.
4. Compatibility or semantic behavior changes.

Each category should be merged only after CI passes.

## Commit Message

Use present tense and clearly describe the behavior change, not just the action taken.
2 changes: 1 addition & 1 deletion core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>com.alibaba.smart.framework</groupId>
<artifactId>smart-engine</artifactId>
<version>3.6.0-SNAPSHOT</version>
<version>3.7.0-SNAPSHOT</version>
</parent>

<artifactId>smart-engine-core</artifactId>
Expand Down
Loading
Loading