Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
188 commits
Select commit Hold shift + click to select a range
94a80aa
prepare for release 4.1.0
tombrus Nov 13, 2023
dd1db3e
trace too many changes readability improvement
WimBast Nov 23, 2023
210a287
raw
WimBast Nov 24, 2023
5cc9408
prevent trigger when no change
WimBast Nov 27, 2023
b50e163
Bump actions/setup-java from 3 to 4
dependabot[bot] Nov 30, 2023
3b45372
ripple out cleaner
WimBast Dec 4, 2023
decd1a1
debug tracing too many changes fixes
WimBast Dec 5, 2023
7b289d9
Merge pull request #44 from ModelingValueGroup/dependabot/github_acti…
tombrus Dec 5, 2023
778ffa0
minor reshuffle caused by Context class changes in imm-coll
tombrus Dec 5, 2023
17c3154
Merge remote-tracking branch 'origin/develop' into develop
tombrus Dec 5, 2023
af7fc78
wait for trace with depth
WimBast Dec 5, 2023
573bab7
minor hashCode improvements
tombrus Dec 6, 2023
ea4037a
fixpoint groups
WimBast Dec 7, 2023
062da94
remove trace
WimBast Dec 7, 2023
636a1f3
extra fixpoint group Priority
WimBast Dec 7, 2023
c98ecbf
also adjust test classes
tombrus Dec 7, 2023
4d6fd79
schedule init fixpoint group based
WimBast Dec 12, 2023
e872bce
Merge branch 'develop' of https://github.com/ModelingValueGroup/dclar…
WimBast Dec 12, 2023
997a5b5
[no-ci] updated by mvgplugin
Dec 12, 2023
3526150
cleanup when to much equal hashes in constants
WimBast Dec 14, 2023
513a9ad
class cast exception fix
WimBast Jan 8, 2024
ee7d93f
[no-ci] updated by mvgplugin
Jan 8, 2024
de73c36
Do not match (only replace if already matched) in may non-containment
WimBast Jan 16, 2024
0aa47b0
atomic derivation
WimBast Feb 8, 2024
33484c5
[no-ci] updated by mvgplugin
Feb 8, 2024
c49808b
extra check on deriveValue
WimBast Feb 9, 2024
da895b1
matching observeds
WimBast Feb 20, 2024
23d3bb2
add timing on Actions
tombrus Feb 23, 2024
029a83a
add timing on Actions
tombrus Feb 23, 2024
de1af1c
less deduplication
WimBast Feb 27, 2024
896d77f
Merge branch 'develop' of https://github.com/ModelingValueGroup/dclar…
WimBast Feb 27, 2024
4b389f8
Merge branch 'develop' of
WimBast Feb 27, 2024
2f3db7e
prune equal hashes
WimBast Feb 27, 2024
e0a1828
NO_DEDUPLICATION flag
WimBast Feb 28, 2024
6f7fef2
push / pull support
WimBast Mar 4, 2024
fef31dd
[no-ci] updated by mvgplugin
Mar 4, 2024
70aaf86
copilot ignore
tombrus Mar 10, 2024
916b8de
push pull
WimBast Mar 11, 2024
bf5e085
rename
WimBast Mar 13, 2024
b6922cd
rename
WimBast Mar 13, 2024
6024e00
render json from state in readonly transaction on that state
WimBast Mar 26, 2024
1acfdf5
opposite fix when pulling
WimBast Mar 29, 2024
0faf467
cycle warnings when pulling
WimBast Apr 1, 2024
1a69fda
nullpointer fix in derivation trace
WimBast Apr 3, 2024
fec87cc
do not trace synthetic
WimBast Apr 3, 2024
63521c1
update gradle from 7.6 to 8.7
tombrus Apr 4, 2024
2276fe0
minor refactoring of StateToJson
tombrus Jun 3, 2024
bc379a7
skip checks for NonCheckingObserver
WimBast Jun 13, 2024
af8c1f5
slightly simplified ripple-out
WimBast Jun 25, 2024
8c68c27
defer removal of all freshly contained Mutables (not only Newables)
WimBast Jul 2, 2024
8848871
derivation ripple out / merge
WimBast Jul 9, 2024
7ec2b49
NoCurrentTransactionException
WimBast Sep 6, 2024
95b6fed
[no-ci] updated by mvgplugin
Sep 6, 2024
7bd095c
immediate imperative transactions
WimBast Sep 13, 2024
21f0462
improve immediate
WimBast Sep 13, 2024
941fa4c
optimization
WimBast Sep 13, 2024
c032648
modifiers for imperatives
WimBast Sep 14, 2024
747591f
dHasParentCycle utility method
WimBast Sep 16, 2024
50cc205
removed QualifiedDefaultSet
WimBast Sep 23, 2024
dab4b35
try prune only
WimBast Nov 5, 2024
cfd80f8
restrict matching single containments
WimBast Nov 7, 2024
53b921f
Logic
WimBast Nov 14, 2024
bf03b6c
[no-ci] updated by mvgplugin
Nov 14, 2024
20e1aba
fixes
WimBast Nov 14, 2024
cbeafd5
Merge branch 'develop' of https://github.com/ModelingValueGroup/dclar…
WimBast Nov 14, 2024
fb3726d
Logic unification
WimBast Nov 14, 2024
19dfce9
[no-ci] updated by mvgplugin
Nov 14, 2024
a7322c6
unification
WimBast Nov 14, 2024
c09b079
Merge branch 'develop' of https://github.com/ModelingValueGroup/dclar…
WimBast Nov 14, 2024
782c1c6
better logic
WimBast Nov 16, 2024
a1be7f9
explicit exception handling
WimBast Nov 16, 2024
d571c9b
first successful test of logic
WimBast Nov 16, 2024
54b8829
performance
WimBast Nov 16, 2024
5e52b7f
refactor rules
WimBast Nov 17, 2024
6727c84
bind based on array
WimBast Nov 17, 2024
0a48f68
Working Logic
WimBast Nov 18, 2024
fc61f03
remove tracing
WimBast Nov 18, 2024
10ed579
less annotations
WimBast Nov 18, 2024
cabd9d0
parallel
WimBast Nov 18, 2024
fa4f90e
Renamings
WimBast Nov 18, 2024
0b57622
derived facts
WimBast Nov 18, 2024
7808459
Typed using Dynamic Proxies
WimBast Nov 18, 2024
db30e17
naming example
WimBast Nov 18, 2024
c887857
First steps for support for Structers in Logic
WimBast Nov 18, 2024
29e60a6
more structure preparation
WimBast Nov 18, 2024
e27b54c
unused
WimBast Nov 18, 2024
f4d98a5
switch in proxy
WimBast Nov 18, 2024
3e50b9e
almost refactored
WimBast Nov 19, 2024
e63b467
structure ready
WimBast Nov 19, 2024
17e5b14
better
WimBast Nov 19, 2024
9e103aa
cleanup
WimBast Nov 22, 2024
5d7c9d0
simplified
WimBast Nov 23, 2024
9c83cef
working
WimBast Nov 24, 2024
122c1f1
simplification
WimBast Nov 24, 2024
56e23a7
lazy Collections
WimBast Nov 24, 2024
18e1144
pre order rules
WimBast Nov 25, 2024
27d9a29
no extend
WimBast Nov 25, 2024
211b808
warning
WimBast Nov 25, 2024
02169cb
INCOMPLETE handling
WimBast Nov 25, 2024
195d95c
Test Universe fix.
WimBast Nov 25, 2024
441bf2b
fix
WimBast Nov 25, 2024
7753091
bind utility
WimBast Nov 25, 2024
4f23331
incomplete info and optional EXTEND usage
WimBast Nov 26, 2024
d5829c6
functors
WimBast Nov 26, 2024
56570e0
functors with arguments
WimBast Nov 26, 2024
2b7e105
empty L functor fix
WimBast Nov 26, 2024
2edaf9e
remove hashcode
WimBast Nov 26, 2024
a3d303b
functor uses List iso L
WimBast Nov 26, 2024
27021a6
also cash direct matches
WimBast Nov 27, 2024
5cccc54
reuse array
WimBast Nov 27, 2024
745c688
var
WimBast Nov 27, 2024
11bc302
var method
WimBast Nov 27, 2024
63821cc
separate var methods
WimBast Nov 27, 2024
ceac9c7
Logic with function implementations part 1
WimBast Nov 28, 2024
afd8e28
only run when not more then on unknown variable
WimBast Nov 28, 2024
07c4249
lambdas in logic
WimBast Nov 28, 2024
eef5f91
simplified
WimBast Nov 29, 2024
758a803
nested terms in rules
WimBast Dec 2, 2024
a58ab8e
working nested terms
WimBast Dec 2, 2024
43c0f09
clarified example
WimBast Dec 2, 2024
9a80865
extra test
WimBast Dec 3, 2024
f96a651
mult power
WimBast Dec 3, 2024
0d0e9d0
separate Arithmetic
WimBast Dec 3, 2024
763f0f9
incomplete in lambda's priority
WimBast Dec 4, 2024
5ea58b6
new tests and fixes
WimBast Dec 4, 2024
79af91e
recursion on cycle
WimBast Dec 5, 2024
87a5e47
[no-ci] updated by mvgplugin
Dec 5, 2024
2bb2604
semantic fixes
WimBast Dec 5, 2024
51ccd3a
Merge branch 'develop' of https://github.com/ModelingValueGroup/dclar…
WimBast Dec 5, 2024
fa1a4af
use rec in prio
WimBast Dec 6, 2024
b54ef02
Predicates
WimBast Dec 6, 2024
d48fad5
functions for family tree
WimBast Dec 6, 2024
38d3d06
Facts only allowed for Relations
WimBast Dec 6, 2024
f95d1ba
improved test
WimBast Dec 6, 2024
6619cc0
root function
WimBast Dec 6, 2024
771c1ed
rule methods rename
WimBast Dec 6, 2024
f245d75
test cleanup
WimBast Dec 6, 2024
a8cfd38
literal -> atom
WimBast Dec 6, 2024
58b98bb
unique rules
WimBast Dec 6, 2024
e722835
collect and separate package
WimBast Dec 9, 2024
f28f788
more add functionality on L
WimBast Dec 9, 2024
8702629
incomplete handing in collect
WimBast Dec 9, 2024
ae1586a
sum
WimBast Dec 9, 2024
5c026fb
symmetric is
WimBast Dec 10, 2024
64d9906
deep eq
WimBast Dec 10, 2024
c8dfb16
eq using ==
WimBast Dec 10, 2024
9c98d19
more precise identity index resolvement
WimBast Dec 10, 2024
9d6c3fa
simplified collect
WimBast Dec 10, 2024
ee8c035
make Logic independent of DClare
WimBast Dec 10, 2024
91a157b
remove logic from DClare
WimBast Dec 10, 2024
6506e96
remove Logic from DClare
WimBast Dec 10, 2024
03c63a1
[no-ci] updated by mvgplugin
Jan 5, 2025
206baf7
NULL -> null
WimBast Jan 23, 2025
73b81eb
pushNow
WimBast Feb 25, 2025
879b763
ignore exceptions in IdentityDerivationTransaction
WimBast Mar 3, 2025
7dcee85
defer exception handling when deriving identities
WimBast Mar 6, 2025
ddc4d77
reverse handling
WimBast Mar 20, 2025
79215c4
ignore exceptions in Identity derivation
WimBast Mar 24, 2025
7c45ad1
Atomic Derived
WimBast Mar 27, 2025
0776b7f
not only lazy when pushNow on Mutable
WimBast May 15, 2025
4af77d6
get Setable -> getRaw
WimBast May 15, 2025
97dcb1b
stackoverflow fix
WimBast May 15, 2025
4135d02
get iso getRaw for tracing
WimBast May 15, 2025
c9b9adc
derivation tracing
WimBast May 20, 2025
4a89483
check in doDeriveSet
WimBast May 22, 2025
ea80d71
update
tombrus May 22, 2025
4da1a9d
Merge branch 'develop' of https://github.com/ModelingValueGroup/dclar…
tombrus May 22, 2025
f7706ba
ignore vscode
jthunnissen May 24, 2025
ed953cd
simple pushNow
WimBast May 29, 2025
ea03c61
Bump actions/checkout from 4 to 5
dependabot[bot] Aug 12, 2025
a569094
Bump actions/setup-java from 4 to 5
dependabot[bot] Aug 22, 2025
8159fbb
Merge remote-tracking branch 'origin/dependabot/github_actions/develo…
tombrus Nov 17, 2025
0487f7e
bump checkout to v6
tombrus Dec 2, 2025
d047cbb
[no-ci] updated by mvgplugin
Jan 9, 2026
2357341
upgrade to java21 and gradle 9
tombrus Feb 26, 2026
6de6d9d
upgrade IntelliJ project SDK to Java 21
tombrus Mar 2, 2026
68e9a6b
remove pluginManagement block from settings.gradle.kts
tombrus Mar 2, 2026
5a657ef
upgrade mvgplugin to 2.3.18
tombrus Mar 2, 2026
a5c4351
bump plugin version
tombrus Mar 2, 2026
26302c0
upgrade build.yaml: java 21, remove --scan
tombrus Mar 3, 2026
63b762f
gradle wrapper update
tombrus Mar 3, 2026
1c2d5bc
bump to new gradle version
tombrus Mar 5, 2026
edacc7f
add CLAUDE.md for repository guidelines and introduce `OneShotTracer`…
tombrus Mar 6, 2026
b02f9ad
[no-ci] updated by mvgplugin
Mar 6, 2026
0ae980d
fix memory leak due to unstopped ConstantStates
tombrus Mar 9, 2026
fa23fbb
bump gradle version
tombrus Mar 25, 2026
0d3f52f
update gradle
tombrus May 20, 2026
dd1e5ec
prepare for release 6.0.0
tombrus May 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 19 additions & 14 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## (C) Copyright 2018-2023 Modeling Value Group B.V. (http://modelingvalue.org) ~
## ~
## Licensed under the GNU Lesser General Public License v3.0 (the 'License'). You may not use this file except in ~
## compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.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. ~
## ~
## Maintainers: ~
## Wim Bast, Tom Brus, Ronald Krijgsheld ~
## Contributors: ~
## Arjan Kok, Carel Bast ~
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## (C) Copyright 2018-2026 Modeling Value Group B.V. (http://modelingvalue.org) ~
## ~
## Licensed under the GNU Lesser General Public License v3.0 (the 'License'). You may not use this file except in ~
## compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.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. ~
## ~
## Maintainers: ~
## Wim Bast, Tom Brus ~
## ~
## Contributors: ~
## Ronald Krijgsheld ✝, Arjan Kok, Carel Bast ~
## --------------------------------------------------------------------------------------------------------------------- ~
## In Memory of Ronald Krijgsheld, 1972 - 2023 ~
## Ronald was suddenly and unexpectedly taken from us. He was not only our long-term colleague and team member ~
## but also our friend. "He will live on in many of the lines of code you see below." ~
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

version: 2
updates:
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,22 +19,22 @@ on: [ push, workflow_dispatch ]

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[no-ci]')"
env:
ALLREP_TOKEN: "${{secrets.ALLREP_TOKEN}}"
TOKEN: "${{secrets.ALLREP_TOKEN}}"
CI: "true"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0

- uses: actions/setup-java@v3
- uses: actions/setup-java@v5
with:
java-version: 17
java-version: 21
distribution: zulu

################################################################################
- name: "build"
run: ./gradlew --info --scan
run: ./gradlew --info
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ tmp/
tmp/**
tmp/**/*

#### vscode
.vscode/

#### java (https://github.com/github/gitignore/blob/master/Java.gitignore)
*.class
*.ear
Expand All @@ -90,4 +93,4 @@ gradle-app.setting
/TEST-*.xml
**/*_gen
**/*_gen.caches
.mps/workspace.xml
.mps/workspace.xml
2 changes: 2 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

107 changes: 107 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

**dclare** is a declarative rule engine for Java. Rules are enforced continuously and automatically — no listeners needed. The implementation is heavily multi-threaded while the API exposes no concurrency primitives.

- **Group:** `org.modelingvalue`, **Artifact:** `dclare`, **Version:** 5.1.0
- **Java:** 21
- **License:** LGPL-3.0
- **Dependencies:** `immutable-collections` and `mvg-json` (both from org.modelingvalue)

## Build Commands

```bash
./gradlew # Runs default tasks: mvgCorrector, test, publish, mvgTagger
./gradlew test # Run all tests
./gradlew test --tests "org.modelingvalue.dclare.test.DclareTests.source2target" # Single test method
./gradlew test --tests "org.modelingvalue.dclare.test.DclareTests" # Single test class
```

There is no separate lint command; the `mvgCorrector` task handles code corrections (copyright headers, formatting).

## Architecture

### Core Abstractions

The engine is built around a **transaction-based state machine** where immutable `State` snapshots evolve through transactions:

- **Universe** — Root mutable object; entry point for the entire model. Created via `Universe.of(...)`.
- **Mutable** — Base interface for all model objects. Establishes parent/child containment hierarchy.
- **MutableClass** — Metadata interface describing the features (observables, observers, derivers) of a Mutable type.

### Property System (Getable → Setable → Observed/Constant)

- **Getable<O,T>** — Base readable property with ID and default function.
- **Setable<O,T>** — Writable property. Supports opposites, scoping, orphan protection.
- **Observed<O,T>** — Tracked property that triggers observer re-evaluation on change.
- **Constant<O,T>** — Derived/cached value computed from a deriver function. Can be lazy or pushed.

### Rule System (Leaf → Action/Observer)

- **Action<O>** — Imperative operation triggered by state changes. Has priority and direction.
- **Observer<O>** — Declarative rule that re-executes when its dependencies change. The primary mechanism for maintaining consistency.
- **Derivation** — Lazy computation that evaluates on demand.

### Transaction Hierarchy

```
Transaction (abstract)
├── LeafTransaction (abstract)
│ ├── ActionTransaction
│ ├── ObserverTransaction
│ ├── DerivationTransaction / LazyDerivationTransaction / IdentityDerivationTransaction
│ ├── ReadOnlyTransaction
│ └── ImperativeTransaction
├── MutableTransaction
└── UniverseTransaction ← orchestrates the overall execution loop
```

### Priority Scheduling

Actions/Observers have priorities (`Priority.one` through `Priority.six`) controlling execution order. Lower priorities execute first. `Priority.zero` represents the currently executing level.

### Modifiers

- **SetableModifier** / **CoreSetableModifier** — containment, mandatory, preserved, plumbing, durable, doNotMerge, symmetricOpposite
- **LeafModifier** / **CoreLeafModifier** — preserved, read
- **Direction** — Push (eager) vs Pull (lazy) evaluation

### Synchronization Module (`sync/`)

Enables multi-instance state synchronization via JSON deltas. Key classes: `DeltaAdaptor`, `SerialisationPool`, `UniverseSynchronizer`, `SocketSyncConnection`.

### OneShot

Abstract class for single-run model initialization. Methods annotated with `@OneShotAction` are discovered and executed in alphabetical order. Supports state caching.

## Naming Conventions

- `D_` prefix — Internal system properties on Mutable (e.g., `D_PARENT_CONTAINING`, `D_OBSERVERS`)
- `d*()` methods — Dclare-specific operations on Mutable (e.g., `dParent()`, `dChildren()`, `dDelete()`)
- Factory pattern — Most core types use `of(...)` static factory methods
- Property access — `.get(object)` to read, `.set(object, value)` to write within transaction context

## Configuration

`DclareConfig` supports system properties for debugging:

- `DEV_MODE` — Enable debug features
- `RUN_SEQUENTIAL` — Disable parallelism (useful for debugging)
- `CHECK_ORPHAN_STATE` — Validate orphan handling
- `TRACE_UNIVERSE`, `TRACE_MUTABLE`, `TRACE_ACTIONS`, `TRACE_MATCHING`, `TRACE_RIPPLE_OUT`, `TRACE_DERIVATION` — Various tracing flags
- `MAX_TOTAL_NR_OF_CHANGES`, `MAX_NR_OF_CHANGES`, `MAX_NR_OF_OBSERVED`, `MAX_NR_OF_OBSERVERS` — Safety limits

## Testing

Tests use JUnit 5. Test support classes are in `src/test/java/org/modelingvalue/dclare/test/support/` providing `TestUniverse`, `TestMutable`, `TestMutableClass`, and other helpers for constructing test models.

## File Headers

All source files include a copyright header block for Modeling Value Group B.V. The `mvgCorrector` gradle task maintains these automatically.

## Eclipse Integration

When `GRADLE_ECLIPSE=true` environment variable is set, the build uses `includeBuild` to substitute local checkouts of `immutable-collections` and `mvg-json` from sibling directories.
39 changes: 22 additions & 17 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,30 +1,35 @@
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// (C) Copyright 2018-2023 Modeling Value Group B.V. (http://modelingvalue.org) ~
// ~
// Licensed under the GNU Lesser General Public License v3.0 (the 'License'). You may not use this file except in ~
// compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.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. ~
// ~
// Maintainers: ~
// Wim Bast, Tom Brus, Ronald Krijgsheld ~
// Contributors: ~
// Arjan Kok, Carel Bast ~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// (C) Copyright 2018-2026 Modeling Value Group B.V. (http://modelingvalue.org) ~
// ~
// Licensed under the GNU Lesser General Public License v3.0 (the 'License'). You may not use this file except in ~
// compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.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. ~
// ~
// Maintainers: ~
// Wim Bast, Tom Brus ~
// ~
// Contributors: ~
// Ronald Krijgsheld ✝, Arjan Kok, Carel Bast ~
// --------------------------------------------------------------------------------------------------------------------- ~
// In Memory of Ronald Krijgsheld, 1972 - 2023 ~
// Ronald was suddenly and unexpectedly taken from us. He was not only our long-term colleague and team member ~
// but also our friend. "He will live on in many of the lines of code you see below." ~
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

defaultTasks("mvgCorrector", "test", "publish", "mvgTagger")

plugins {
`java-library`
`maven-publish`
id("org.modelingvalue.gradle.mvgplugin") version "1.1.3"
id("org.modelingvalue.gradle.mvgplugin") version "2.3.21"
idea
eclipse
}
dependencies {
implementation("org.modelingvalue:immutable-collections:4.0.0-BRANCHED")
implementation("org.modelingvalue:mvg-json:4.0.0-BRANCHED")
implementation("org.modelingvalue:immutable-collections:6.0.0-BRANCHED")
implementation("org.modelingvalue:mvg-json:6.0.0-BRANCHED")
}
publishing {
publications {
Expand Down
37 changes: 21 additions & 16 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## (C) Copyright 2018-2023 Modeling Value Group B.V. (http://modelingvalue.org) ~
## ~
## Licensed under the GNU Lesser General Public License v3.0 (the 'License'). You may not use this file except in ~
## compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.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. ~
## ~
## Maintainers: ~
## Wim Bast, Tom Brus, Ronald Krijgsheld ~
## Contributors: ~
## Arjan Kok, Carel Bast ~
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## (C) Copyright 2018-2026 Modeling Value Group B.V. (http://modelingvalue.org) ~
## ~
## Licensed under the GNU Lesser General Public License v3.0 (the 'License'). You may not use this file except in ~
## compliance with the License. You may obtain a copy of the License at: https://choosealicense.com/licenses/lgpl-3.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. ~
## ~
## Maintainers: ~
## Wim Bast, Tom Brus ~
## ~
## Contributors: ~
## Ronald Krijgsheld ✝, Arjan Kok, Carel Bast ~
## --------------------------------------------------------------------------------------------------------------------- ~
## In Memory of Ronald Krijgsheld, 1972 - 2023 ~
## Ronald was suddenly and unexpectedly taken from us. He was not only our long-term colleague and team member ~
## but also our friend. "He will live on in many of the lines of code you see below." ~
##~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# suppress inspection "UnusedProperty" for whole file
group = org.modelingvalue
artifact = dclare
version = 4.0.0
version_java = 17
version = 6.0.0
version_java = 21
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
Loading
Loading