Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
8 changes: 7 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,18 @@ jobs:
path: blue-quickjs
submodules: recursive

- name: Set up JDK
- name: Set up Java 8 test runtime
uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'corretto'

- name: Set up JDK 25
uses: actions/setup-java@v3
with:
java-version: '25'
distribution: 'corretto'

- name: Set up pnpm
uses: pnpm/action-setup@v4
with:
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,16 @@ jobs:
path: blue-quickjs
submodules: recursive

- name: Set up JDK
- name: Set up Java 8 test runtime
uses: actions/setup-java@v3
with:
java-version: '17'
java-version: '8'
distribution: 'corretto'

- name: Set up JDK 25
uses: actions/setup-java@v3
with:
java-version: '25'
distribution: 'corretto'

- name: Set up pnpm
Expand Down
27 changes: 18 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,12 @@ dependencies {
}
```

The project targets Java 8 bytecode and depends on:
The project targets Java 8-compatible bytecode, builds with JDK 25, runs tests
on Java 8, and depends on:

```groovy
api "blue.language:blue-language-java:3.0.0"
api "blue.repo:blue-repo-java:2.0.1"
api "blue.repo:blue-repo-java:3.0.0-rc.1"
api "blue.bex:blue-bex-java:1.0.0"
```

Expand Down Expand Up @@ -64,7 +65,9 @@ DocumentProcessor processor =
`CoordinationProcessors` intentionally does not register a concrete processor
for `Coordination/Timeline Channel`. Applications should provide their own
timeline provider channel processor or register a small local test processor
for fixtures that use `Coordination/Timeline Entry`.
for fixtures that use `Coordination/Timeline Entry`. `Coordination/All Timelines
Channel` delegates to those registered timeline channel processors when deciding
which declared timelines can invoke a shared operation.

## Counter Document

Expand All @@ -79,14 +82,10 @@ contracts:
timelineId: counter-demo

increment:
type: Coordination/Operation
type: Coordination/Sequential Workflow Operation
channel: ownerChannel
request:
type: Integer

incrementImpl:
type: Coordination/Sequential Workflow Operation
operation: increment
steps:
- name: IncrementAndEmit
type: Coordination/Compute
Expand Down Expand Up @@ -158,14 +157,18 @@ processing from the same resolved state.

This library provides executable behavior for:

- `Coordination/All Timelines Channel`;
- `Coordination/Composite Timeline Channel`;
- `Coordination/Operation`;
- `Coordination/Chat Workflow Operation`;
- `Coordination/Sequential Workflow`;
- `Coordination/Sequential Workflow Operation`;
- `Coordination/Compute`;
- `Coordination/Update Document`;
- `Coordination/Trigger Event`.

It also registers `Coordination/Operation` as a non-executable declaration
type for operation-shaped contracts.

The underlying `blue-language-java` runtime provides base behavior used by
Coordination documents:

Expand Down Expand Up @@ -198,6 +201,10 @@ Common workflow bindings:

## Build And Test

Gradle runs on JDK 25 and uses a Java 8 toolchain for tests. If Java 8 is not
installed locally, Gradle can provision it through the configured Foojay
toolchain resolver.

Run tests:

```bash
Expand Down Expand Up @@ -240,7 +247,9 @@ src/main/java/blue/coordination/processor
CoordinationProcessors.java
CoordinationProcessorOptions.java
CoordinationBexIntrinsics.java
AllTimelinesChannelProcessor.java
CompositeTimelineChannelProcessor.java
ChatWorkflowOperationProcessor.java
OperationProcessor.java
SequentialWorkflowProcessor.java
SequentialWorkflowOperationProcessor.java
Expand Down
16 changes: 8 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ plugins {
id 'java-library'
id 'maven-publish'
id 'signing'
id 'org.jreleaser' version '1.13.1'
id 'org.jreleaser' version '1.24.0'
}

group = 'blue.coordination'
Expand All @@ -28,21 +28,18 @@ repositories {
java {
withSourcesJar()
withJavadocJar()
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
if (JavaVersion.current().isJava9Compatible()) {
options.release = 8
}
options.release = 8
}

dependencies {
api 'blue.language:blue-language-java:3.0.0'
api 'blue.repo:blue-repo-java:2.0.1'
api 'blue.repo:blue-repo-java:3.0.0-rc.1'
api 'blue.bex:blue-bex-java:1.0.0'

implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'
Expand All @@ -59,6 +56,9 @@ compileTestJava {
}

test {
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(8)
}
useJUnitPlatform()
reports {
junitXml.required = false
Expand Down
2 changes: 2 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
org.gradle.java.installations.auto-download=true
org.gradle.java.installations.fromEnv=JAVA_HOME_8_X64,JAVA_HOME_8_ARM64,JAVA8_HOME
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
4 changes: 3 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.0-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
11 changes: 4 additions & 7 deletions gradlew

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

Loading
Loading