aklivity / zilla

🦎 A multi-protocol edge & service proxy. Seamlessly interface web apps, IoT clients, & microservices to Apache Kafka® via declaratively defined, stateless APIs.
https://docs.aklivity.io/zilla
Other
527 stars 48 forks source link

Support parallel builds #116

Open jfallows opened 1 year ago

jfallows commented 1 year ago

./mvnw -T 1C clean install attempts to execute a parallel build, but needs support for parallel execution from all plugins.

Need to get resolution to https://github.com/moditect/moditect/issues/95.

[WARNING] *****************************************************************
[WARNING] * Your build is requesting parallel execution, but project      *
[WARNING] * contains the following plugin(s) that have goals not marked   *
[WARNING] * as @threadSafe to support parallel building.                  *
[WARNING] * While this /may/ work fine, please look for plugin updates    *
[WARNING] * and/or request plugins be made thread-safe.                   *
[WARNING] * If reporting an issue, report it against the plugin in        *
[WARNING] * question, not against maven-core                              *
[WARNING] *****************************************************************
[WARNING] The following plugins are not marked @threadSafe in zilla::specs::engine.spec:
[WARNING] io.aklivity.zilla:flyweight-maven-plugin:develop-SNAPSHOT
[WARNING] org.moditect:moditect-maven-plugin:1.0.0.RC1
[WARNING] Enable debug to see more precisely which goals are not marked @threadSafe.
[WARNING] *****************************************************************

Note: k3po plugin listens on a tcp port to receive unit test control protocol, so we need a different port for each project running in parallel to avoid collisions.

Ideally, we would run the zilla engine directly from the test, supporting k3po style scripts in a yet-to-be-implemented integration-test binding, allowing us to drive test behavior via configuration without using a tcp control port.

jfallows commented 1 year ago

Note: when running zilla engine directly from the test, we should also use JUnit5 and a per-thread engine directory in target/zilla-itests to support parallel test execution.