diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 03c3a23804..e834e33229 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -19,7 +19,7 @@ jobs:
- name: Build Cache
uses: ./.github/actions/build-cache
- name: Test
- run: mvn test --batch-mode
+ run: mvn -f kotlin-runtime/ftl-runtime -B test
test:
name: Test Go
runs-on: ubuntu-latest
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 58fc733479..a898cafddf 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -112,9 +112,9 @@ jobs:
cache: "maven"
- name: Publish JARs # Snapshots are published first, then the tagged release
run: |
- mvn -U -B clean deploy -P release
- mvn -B versions:set -DnewVersion="$(git describe --tags --abbrev=0 | cut -c2-)" -DprocessAllModules -DgenerateBackupPoms=false
- mvn -U -B clean deploy -P release
+ mvn -f kotlin-runtime/ftl-runtime -U -B clean deploy -P release
+ mvn -f kotlin-runtime/ftl-runtime -B versions:set -DnewVersion="$(git describe --tags --abbrev=0 | cut -c2-)" -DprocessAllModules -DgenerateBackupPoms=false
+ mvn -f kotlin-runtime/ftl-runtime -U -B clean deploy -P release
git clean -f ./*.flattened_pom.xml
env:
SIGN_KEY_PASS: ${{ secrets.GPG_PASSPHRASE }}
diff --git a/.github/workflows/writecache.yml b/.github/workflows/writecache.yml
index 242de489d2..6c3b881e79 100644
--- a/.github/workflows/writecache.yml
+++ b/.github/workflows/writecache.yml
@@ -24,7 +24,7 @@ jobs:
- name: Rebuild All
run: bit
- name: Download Maven Dependencies
- run: mvn dependency:resolve --batch-mode
+ run: mvn -f kotlin-runtime/ftl-runtime dependency:resolve --batch-mode
- name: Download Go Dependencies
run: go mod download -x
- id: find-go-build-cache
diff --git a/Bitfile b/Bitfile
index 2d5d5159ea..4b51008e70 100644
--- a/Bitfile
+++ b/Bitfile
@@ -27,7 +27,7 @@ PROTO_OUT = backend/protos/xyz/block/ftl/v1/ftlv1connect/ftl.connect.go \
COMMON_LOG_IN = internal/log/api.go
COMMON_LOG_OUT = internal/log/log_level_string.go
-KT_RUNTIME_IN = kotlin-runtime/ftl-runtime/**/*.{kt,kts} pom.xml kotlin-runtime/ftl-runtime/**/pom.xml
+KT_RUNTIME_IN = kotlin-runtime/ftl-runtime/**/*.{kt,kts} kotlin-runtime/ftl-runtime/**/pom.xml
KT_RUNTIME_OUT = kotlin-runtime/ftl-runtime/target/ftl-runtime-1.0-SNAPSHOT.jar
KT_RUNTIME_RUNNER_TEMPLATE_OUT = build/template/ftl/jars/ftl-runtime.jar
@@ -113,9 +113,8 @@ kotlin-runtime/external-module-template.zip: kotlin-runtime/external-module-temp
%{KT_RUNTIME_OUT}: %{KT_RUNTIME_IN} %{PROTO_IN}
# TODO: Figure out how to make Maven build completely offline. Bizarrely "-o" does not do this.
build:
- mvn -B -N install
- mvn -Dmaven.test.skip=true -B -pl :ftl-runtime install
- +clean: mvn -B -pl :ftl-runtime clean
+ mvn -f kotlin-runtime/ftl-runtime -Dmaven.test.skip=true -B install
+ +clean: mvn -f kotlin-runtime/ftl-runtime -B install clean
%(dirname %{KT_RUNTIME_RUNNER_TEMPLATE_OUT})%:
build: install -m 0700 -d %{OUT}
diff --git a/Dockerfile.controller b/Dockerfile.controller
index 15e80ed559..7510ec7f03 100644
--- a/Dockerfile.controller
+++ b/Dockerfile.controller
@@ -10,7 +10,7 @@ WORKDIR /src
# Seed some of the most common tools - this will be cached
RUN go version
-RUN mvn -B --version
+RUN mvn -f kotlin-runtime/ftl-runtime -B --version
# Download Go dependencies separately so Docker will cache them
COPY go.mod go.sum ./
diff --git a/Dockerfile.runner b/Dockerfile.runner
index 39d0f99441..603bfabd5f 100644
--- a/Dockerfile.runner
+++ b/Dockerfile.runner
@@ -12,7 +12,7 @@ RUN hermit install openjre-18.0.2.1_1
RUN hermit uninstall openjre
RUN hermit install jbr
RUN go version
-RUN mvn -B --version
+RUN mvn -f kotlin-runtime/ftl-runtime -B --version
WORKDIR /src
diff --git a/kotlin-runtime/ftl-runtime/pom.xml b/kotlin-runtime/ftl-runtime/pom.xml
index 284fac3d65..88767e69d9 100644
--- a/kotlin-runtime/ftl-runtime/pom.xml
+++ b/kotlin-runtime/ftl-runtime/pom.xml
@@ -1,27 +1,78 @@
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
-
- xyz.block
- ftl
- 1.0-SNAPSHOT
- ../../pom.xml
-
-
+ xyz.block
ftl-runtime
jar
+ 1.0-SNAPSHOT
+ FTL
+ Towards a 𝝺-calculus for large-scale systems
+ https://github.com/TBD54566975/ftl
+
+
+
+ The Apache License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+
+
- ${project.groupId}:${project.artifactId}
+
+
+ Alec Thomas
+ TBD
+ https://github.com/TBD54566975
+
+
+ Wes Billman
+ TBD
+ https://github.com/TBD54566975
+
+
+ Elizabeth Worstell
+ TBD
+ https://github.com/TBD54566975
+
+
+ Matt Toohey
+ TBD
+ https://github.com/TBD54566975
+
+
+
+
+ scm:git:git://github.com/TBD54566975/ftl.git
+ scm:git:ssh://github.com/TBD54566975/ftl.git
+ https://github.com/TBD54566975/ftl/tree/main
+
${basedir}/../..
false
1.23.5
+ 17
+ 1.9.23
+ false
+ 4.9.7
+ 1.62.2
+ 1.5.3
+ 5.10.2
+ 7.4
+
+
+
+ org.junit
+ junit-bom
+ ${junit.version}
+ pom
+ import
+
+
+
org.jetbrains.kotlin
@@ -52,46 +103,59 @@
com.squareup.wire
wire-runtime-jvm
+ ${wire.version}
com.squareup.wire
wire-grpc-server
+ ${wire.version}
com.squareup.wire
wire-grpc-client-jvm
+ ${wire.version}
org.jetbrains.kotlin
kotlin-stdlib
+ ${kotlin.version}
+
net.logstash.logback
logstash-logback-encoder
+ ${logstash.version}
ch.qos.logback
logback-classic
+ ${logback.version}
ch.qos.logback
logback-core
+ ${logback.version}
+
io.grpc
grpc-netty
+ ${grpc.version}
io.grpc
grpc-protobuf
+ ${grpc.version}
io.grpc
grpc-stub
+ ${grpc.version}
org.hotswapagent
hotswap-agent-core
+ 1.4.1
@@ -101,10 +165,26 @@
${detekt.version}
test
+
+ org.jetbrains.kotlin
+ kotlin-test-junit5
+ ${kotlin.version}
+ test
+
org.junit.jupiter
junit-jupiter
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-params
+ test
+
org.junit-pioneer
junit-pioneer
@@ -120,6 +200,170 @@
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.5.0
+
+
+ generate-sources
+
+ add-source
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.2.5
+
+
+ Test*
+ *Test
+
+
+ --add-opens java.base/java.util=ALL-UNNAMED
+ --add-opens java.base/java.lang=ALL-UNNAMED
+
+
+
+
+ kotlin-maven-plugin
+ org.jetbrains.kotlin
+ ${kotlin.version}
+
+
+ compile
+
+ compile
+
+
+
+ ${project.basedir}/src/main/kotlin
+
+
+
+
+ test-compile
+
+ test-compile
+
+
+
+ ${project.basedir}/src/test/kotlin
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.6.1
+
+
+ initialize
+
+ copy
+
+
+
+
+ com.squareup.wire
+ wire-compiler
+ ${wire.version}
+ jar-with-dependencies
+ wire-compiler.jar
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+ 3.2.0
+
+
+ wire-client
+ initialize
+
+ exec
+
+
+ java
+
+ -jar
+ target/dependency/wire-compiler.jar
+ --proto_path=${rootDir}/backend/protos
+
+ --kotlin_out=${project.build.directory}/generated-sources/wire
+
+ --kotlin_rpc_role=client
+
+
+
+
+ wire-server
+ initialize
+
+ exec
+
+
+ java
+
+ -jar
+ target/dependency/wire-compiler.jar
+ --proto_path=${rootDir}/backend/protos
+ --kotlin_out=target/generated-sources/wire
+ --kotlin_rpc_role=server
+ --kotlin_rpc_call_style=blocking
+ --kotlin_grpc_server_compatible
+ --includes=xyz.block.ftl.v1.VerbService
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.5.2
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+ 1.6.0
+
+
+ flatten
+ process-resources
+
+ flatten
+
+
+
+ flatten.clean
+ clean
+
+ clean
+
+
+
+
+
+
org.codehaus.mojo
@@ -146,11 +390,117 @@
org.apache.maven.plugins
maven-compiler-plugin
+ 3.12.1
-
- 11
+
+ ${java.version}
+
+
+ default-compile
+ none
+
+
+
+
+
+
+ release
+
+
+
+ org.codehaus.mojo
+ flatten-maven-plugin
+
+ ossrh
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 3.3.0
+
+
+ attach-sources
+ package
+
+ jar-no-fork
+
+
+
+
+
+ org.jetbrains.dokka
+ dokka-maven-plugin
+ 1.9.20
+
+
+ attach-javadoc
+ package
+
+ javadocJar
+
+
+
+
+
+ ${project.basedir}/src/main/kotlin
+
+ ${project.build.directory}
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 3.1.0
+
+
+ sign-artifacts
+ verify
+
+ sign
+
+
+
+ --pinentry-mode
+ loopback
+ --keyserver
+ hkp://keys.openpgp.org/
+
+
+
+
+
+
+ org.sonatype.plugins
+ nexus-staging-maven-plugin
+ 1.6.13
+ true
+
+ ${maven.deploy.skip}
+ ossrh
+ https://s01.oss.sonatype.org/
+ true
+ 10
+
+
+
+
+
+
+
+ ossrh
+ https://s01.oss.sonatype.org/content/repositories/snapshots
+
+
+ ossrh
+ https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index c5bef3a7d0..0000000000
--- a/pom.xml
+++ /dev/null
@@ -1,441 +0,0 @@
-
-
- 4.0.0
-
- xyz.block
- ftl
- 1.0-SNAPSHOT
- pom
-
- FTL
- Towards a 𝝺-calculus for large-scale systems
- https://github.com/TBD54566975/ftl
-
-
-
- The Apache License, Version 2.0
- http://www.apache.org/licenses/LICENSE-2.0.txt
-
-
-
-
-
- Alec Thomas
- TBD
- https://github.com/TBD54566975
-
-
- Wes Billman
- TBD
- https://github.com/TBD54566975
-
-
- Elizabeth Worstell
- TBD
- https://github.com/TBD54566975
-
-
-
-
- scm:git:git://github.com/TBD54566975/ftl.git
- scm:git:ssh://github.com/TBD54566975/ftl.git
- https://github.com/TBD54566975/ftl/tree/main
-
-
-
- kotlin-runtime/ftl-runtime
-
-
-
- true
- ${basedir}
- 1.8
- 1.9.23
- false
- 4.9.7
- 1.62.2
- 1.5.3
- 5.10.2
- 7.4
-
-
-
-
-
- org.junit
- junit-bom
- ${junit.version}
- pom
- import
-
-
- com.squareup.wire
- wire-runtime-jvm
- ${wire.version}
-
-
- com.squareup.wire
- wire-grpc-server
- ${wire.version}
-
-
- com.squareup.wire
- wire-grpc-client-jvm
- ${wire.version}
-
-
- org.jetbrains.kotlin
- kotlin-stdlib
- ${kotlin.version}
-
-
-
-
- net.logstash.logback
- logstash-logback-encoder
- ${logstash.version}
-
-
- ch.qos.logback
- logback-classic
- ${logback.version}
-
-
- ch.qos.logback
- logback-core
- ${logback.version}
-
-
-
- io.grpc
- grpc-netty
- ${grpc.version}
-
-
- io.grpc
- grpc-protobuf
- ${grpc.version}
-
-
- io.grpc
- grpc-stub
- ${grpc.version}
-
-
- org.hotswapagent
- hotswap-agent-core
- 1.4.1
-
-
-
-
-
-
-
- org.junit.jupiter
- junit-jupiter-engine
- test
-
-
- org.jetbrains.kotlin
- kotlin-test-junit5
- ${kotlin.version}
- test
-
-
- org.junit.jupiter
- junit-jupiter-params
- test
-
-
- org.junit-pioneer
- junit-pioneer
- 2.2.0
- test
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.12.1
-
-
- default-compile
- none
-
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- 3.5.0
-
-
- generate-sources
-
- add-source
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 3.2.5
-
-
- Test*
- *Test
-
-
- --add-opens java.base/java.util=ALL-UNNAMED
- --add-opens java.base/java.lang=ALL-UNNAMED
-
-
-
-
- kotlin-maven-plugin
- org.jetbrains.kotlin
- ${kotlin.version}
-
-
- compile
-
- compile
-
-
-
- ${project.basedir}/src/main/kotlin
-
-
-
-
- test-compile
-
- test-compile
-
-
-
- ${project.basedir}/src/test/kotlin
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
- 3.6.1
-
-
- initialize
-
- copy
-
-
-
-
- com.squareup.wire
- wire-compiler
- ${wire.version}
- jar-with-dependencies
- wire-compiler.jar
-
-
-
-
-
-
-
-
- org.codehaus.mojo
- exec-maven-plugin
- 3.2.0
-
-
- wire-client
- initialize
-
- exec
-
-
- java
-
- -jar
- target/dependency/wire-compiler.jar
- --proto_path=${rootDir}/backend/protos
-
- --kotlin_out=${project.build.directory}/generated-sources/wire
-
- --kotlin_rpc_role=client
-
-
-
-
- wire-server
- initialize
-
- exec
-
-
- java
-
- -jar
- target/dependency/wire-compiler.jar
- --proto_path=${rootDir}/backend/protos
- --kotlin_out=target/generated-sources/wire
- --kotlin_rpc_role=server
- --kotlin_rpc_call_style=blocking
- --kotlin_grpc_server_compatible
- --includes=xyz.block.ftl.v1.VerbService
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-shade-plugin
- 3.5.2
-
-
- org.codehaus.mojo
- flatten-maven-plugin
- 1.6.0
-
-
- flatten
- process-resources
-
- flatten
-
-
-
- flatten.clean
- clean
-
- clean
-
-
-
-
-
-
-
-
-
-
-
- release
-
- kotlin-runtime/ftl-runtime
-
-
-
-
- org.codehaus.mojo
- flatten-maven-plugin
-
- ossrh
- true
-
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 3.3.0
-
-
- attach-sources
- package
-
- jar-no-fork
-
-
-
-
-
- org.jetbrains.dokka
- dokka-maven-plugin
- 1.9.20
-
-
- attach-javadoc
- package
-
- javadocJar
-
-
-
-
-
- ${project.basedir}/src/main/kotlin
-
- ${project.build.directory}
-
-
-
- org.apache.maven.plugins
- maven-gpg-plugin
- 3.1.0
-
-
- sign-artifacts
- verify
-
- sign
-
-
-
- --pinentry-mode
- loopback
- --keyserver
- hkp://keys.openpgp.org/
-
-
-
-
-
-
- org.sonatype.plugins
- nexus-staging-maven-plugin
- 1.6.13
- true
-
- ${maven.deploy.skip}
- ossrh
- https://s01.oss.sonatype.org/
- true
- 10
-
-
-
-
-
-
-
- ossrh
- https://s01.oss.sonatype.org/content/repositories/snapshots
-
-
- ossrh
- https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
-
-
-
-
-
\ No newline at end of file