turing-workflow
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.scivicslab</groupId>
<artifactId>turing-workflow</artifactId>
<version>4.1.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.scivicslab</groupId>
<artifactId>turing-workflow</artifactId>
<version>4.1.0</version>
<packaging>jar</packaging>
<name>Turing-workflow</name>
<description>A YAML-based workflow engine built on POJO-actor. Provides a Turing-complete state machine interpreter with kustomize-style overlays, subworkflows, and distributed execution.</description>
<url>https://github.com/scivicslab/Turing-workflow</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>scivicslab</id>
<name>Scivics Lab</name>
<email>devteam@scivicslab.com</email>
<organization>Scivics Lab</organization>
<organizationUrl>https://scivics-lab.com</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/scivicslab/Turing-workflow.git</connection>
<developerConnection>scm:git:ssh://github.com:scivicslab/Turing-workflow.git</developerConnection>
<url>https://github.com/scivicslab/Turing-workflow</url>
</scm>
<distributionManagement>
<snapshotRepository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
</snapshotRepository>
<repository>
<id>ossrh</id>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
</properties>
<dependencies>
<!-- Core actor library -->
<dependency>
<groupId>com.scivicslab</groupId>
<artifactId>pojo-actor</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>com.github.victools</groupId>
<artifactId>jsonschema-generator</artifactId>
<version>4.38.0</version>
<optional>true</optional>
</dependency>
<!-- Not optional: IIActorRef gives its ActionDispatcher the schemas, so an action that
declares argsType validates its argument, and this is what performs that check.
Left optional, a project would compile and then fail on the first such call. -->
<dependency>
<groupId>com.networknt</groupId>
<artifactId>json-schema-validator</artifactId>
<version>1.5.5</version>
</dependency>
<!-- @NotNull marks which fields of an argsType record must be present.
ActionSchemaGenerator reads it to emit "required"; not optional, because a project
that declares argsType has to be able to write the annotation. -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.1.1</version>
</dependency>
<!-- Workflow engine dependencies -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>2.20.0</version>
</dependency>
<!-- json-schema-validator drags in jackson-core 2.17.2, which databind 2.20 cannot run
against: ParserMinimalBase lost a constructor between them. Declared here so Maven's
nearest-definition rule picks the matching version. -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.20.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.20.0</version>
</dependency>
<!-- JSON processing -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20240303</version>
</dependency>
<!-- Expression language -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jexl3</artifactId>
<version>3.3</version>
</dependency>
<!-- CLI -->
<dependency>
<groupId>com.scivicslab</groupId>
<artifactId>pluggable-cli</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.9.3</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<source>21</source>
<target>21</target>
</configuration>
</plugin>
<!-- turing-workflow is both a library (depended on directly by
Turing-workflow-editor, Turing-workflow-plugins submodules,
quarkus-chat-ui/ui3, chat-ui-with-audit-trail, etc.) and a standalone CLI
(com.scivicslab.turingworkflow.cli.App), so it is case 3 of
CodingStandard_260401_oo01 section 6: all three settings below are required
together. shadedArtifactAttached keeps the main artifact
(turing-workflow-<version>.jar) a plain jar with no bundled dependencies, and
createDependencyReducedPom=false keeps that artifact's pom declaring the
dependencies it no longer bundles. The self-contained CLI jar is published
separately under the "shaded" classifier. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>shaded</shadedClassifierName>
<createDependencyReducedPom>false</createDependencyReducedPom>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.scivicslab.turingworkflow.cli.App</mainClass>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<configuration>
<doclint>none</doclint>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.11.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
</configuration>
</plugin>
<!-- Generate a JSON Schema for every @Action that declares argsType. -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.1.0</version>
<dependencies>
<!-- Optional in this project's own dependencies, so the plugin needs its own copy. -->
<dependency>
<groupId>com.github.victools</groupId>
<artifactId>jsonschema-generator</artifactId>
<version>4.38.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>generate-action-schemas</id>
<phase>process-classes</phase>
<goals><goal>java</goal></goals>
<configuration>
<includePluginDependencies>true</includePluginDependencies>
<mainClass>com.scivicslab.pojoactor.action.schema.ActionSchemaGenerator</mainClass>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.1.0</version>
<dependencies>
<dependency>
<groupId>me.fabriciorby</groupId>
<artifactId>maven-surefire-junit5-tree-reporter</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
<configuration>
<reportFormat>plain</reportFormat>
<statelessTestsetInfoReporter
implementation="org.apache.maven.plugin.surefire.extensions.junit5.JUnit5StatelessTestsetInfoTreeReporter">
</statelessTestsetInfoReporter>
</configuration>
</plugin>
</plugins>
</build>
</project>