From 6470060fdea706c1f24163d01689ecbae224d9a2 Mon Sep 17 00:00:00 2001 From: Tobias Weber Date: Mon, 23 Dec 2024 18:19:05 +0100 Subject: [PATCH] Add sample workflows to resources directory --- .../db/workflow/WorkflowManager.java | 73 ++-- .../dag/activities/ActivityWrapper.java | 3 +- .../activities/impl/LpgValuesActivity.java | 5 +- .../db/workflow/dag/edges/ControlEdge.java | 2 +- .../dag/settings/EntitySettingDef.java | 2 +- .../workflow/models/WorkflowConfigModel.java | 1 + .../db/workflow/repo/WorkflowRepo.java | 19 +- .../db/workflow/repo/WorkflowRepoImpl.java | 15 +- .../db/workflow/session/SessionManager.java | 2 + .../resources/workflows/advanced_fusion.json | 157 ++++++++ .../workflows/combined_fuse_and_pipe.json | 188 ++++++++++ .../workflows/common_extract_skip.json | 129 +++++++ .../workflows/common_load_skipped.json | 133 +++++++ .../workflows/common_transactions.json | 242 +++++++++++++ .../resources/workflows/document_values.json | 65 ++++ .../workflows/long_running_pipe.json | 102 ++++++ .../main/resources/workflows/lpg_values.json | 66 ++++ .../src/main/resources/workflows/merge.json | 129 +++++++ .../workflows/parallel_branches.json | 341 ++++++++++++++++++ .../resources/workflows/simple_fusion.json | 72 ++++ .../main/resources/workflows/simple_pipe.json | 103 ++++++ .../resources/workflows/simple_workflow.json | 71 ++++ .../src/main/resources/workflows/union.json | 99 +++++ .../resources/workflows/variable_writing.json | 94 +++++ .../polypheny/db/workflow/WorkflowUtils.java | 31 ++ .../engine/scheduler/GlobalSchedulerTest.java | 8 + 26 files changed, 2098 insertions(+), 54 deletions(-) create mode 100644 plugins/workflow-engine/src/main/resources/workflows/advanced_fusion.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/combined_fuse_and_pipe.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/common_extract_skip.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/common_load_skipped.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/common_transactions.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/document_values.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/long_running_pipe.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/lpg_values.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/merge.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/parallel_branches.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/simple_fusion.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/simple_pipe.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/simple_workflow.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/union.json create mode 100644 plugins/workflow-engine/src/main/resources/workflows/variable_writing.json diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/WorkflowManager.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/WorkflowManager.java index f26645987b..725afd0aba 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/WorkflowManager.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/WorkflowManager.java @@ -17,15 +17,14 @@ package org.polypheny.db.workflow; import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.ObjectNode; -import com.fasterxml.jackson.databind.node.TextNode; import io.javalin.http.ContentType; import io.javalin.http.Context; import io.javalin.http.HttpCode; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; +import java.io.File; +import java.io.IOException; +import java.net.URL; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -38,8 +37,10 @@ import org.polypheny.db.catalog.logistic.DataModel; import org.polypheny.db.ddl.DdlManager; import org.polypheny.db.util.RunMode; +import org.polypheny.db.util.Sources; import org.polypheny.db.webui.ConfigService.HandlerType; import org.polypheny.db.webui.HttpServer; +import org.polypheny.db.workflow.dag.activities.ActivityRegistry; import org.polypheny.db.workflow.dag.activities.ActivityWrapper; import org.polypheny.db.workflow.engine.execution.context.ExecutionContextImpl; import org.polypheny.db.workflow.engine.storage.StorageManager; @@ -47,9 +48,7 @@ import org.polypheny.db.workflow.engine.storage.reader.CheckpointReader; import org.polypheny.db.workflow.models.ActivityConfigModel; import org.polypheny.db.workflow.models.ActivityModel; -import org.polypheny.db.workflow.models.EdgeModel; import org.polypheny.db.workflow.models.RenderModel; -import org.polypheny.db.workflow.models.WorkflowConfigModel; import org.polypheny.db.workflow.models.WorkflowModel; import org.polypheny.db.workflow.models.requests.CreateSessionRequest; import org.polypheny.db.workflow.models.requests.SaveSessionRequest; @@ -155,40 +154,27 @@ private void createExecuteDummyWorkflowTest() { private void addSampleWorkflows() { - try { - UUID id = repo.createWorkflow( "Test Workflow" ); - repo.writeVersion( id, "Initial Version", getWorkflow1() ); - - } catch ( WorkflowRepoException e ) { - throw new RuntimeException( e ); + if ( PolyphenyDb.mode == RunMode.TEST) { + return; + } + URL workflowDir = this.getClass().getClassLoader().getResource( "workflows/" ); + File[] files = Sources.of( workflowDir ) + .file() + .listFiles( ( d, name ) -> name.endsWith( ".json" ) ); + if (files == null) { + return; } - } - - - // TODO: replace with workflows in resource directory - private WorkflowModel getWorkflow( List activities, List edges, boolean fusionEnabled, boolean pipelineEnabled, int maxWorkers ) { - WorkflowConfigModel config = new WorkflowConfigModel( - Map.of( DataModel.RELATIONAL, "hsqldb", DataModel.DOCUMENT, "hsqldb", DataModel.GRAPH, "hsqldb" ), - fusionEnabled, - pipelineEnabled, - maxWorkers, - 10 // low on purpose to observe blocking - ); - Map variables = Map.of( "creationTime", TextNode.valueOf( LocalDateTime.now().format( DateTimeFormatter.ISO_DATE_TIME ) ) ); - return new WorkflowModel( activities, edges, config, variables ); - } - - // TODO: replace with workflows in resource directory - private WorkflowModel getWorkflow1() { - List activities = List.of( - new ActivityModel( "relValues" ), - new ActivityModel( "debug" ) - ); - List edges = List.of( - EdgeModel.of( activities.get( 0 ), activities.get( 1 ) ) - ); - return getWorkflow( activities, edges, false, false, 1 ); + for (File file : files) { + String fileName = file.getName(); + try { + WorkflowModel workflow = mapper.readValue( file, WorkflowModel.class ); + UUID wId = repo.createWorkflow( fileName ); + repo.writeVersion( wId, "Created Sample Workflow", workflow ); + } catch ( IOException e ) { + throw new RuntimeException( e ); + } + } } @@ -219,6 +205,7 @@ private void registerEndpoints() { server.addSerializedRoute( PATH + "/sessions/{sessionId}/workflow/{activityId}", this::getActivity, HandlerType.GET ); server.addSerializedRoute( PATH + "/sessions/{sessionId}/workflow/{activityId}/{outIndex}", this::getIntermediaryResult, HandlerType.GET ); server.addSerializedRoute( PATH + "/workflows", this::getWorkflowDefs, HandlerType.GET ); + server.addSerializedRoute( PATH + "/registry", this::getActivityRegistry, HandlerType.GET ); server.addSerializedRoute( PATH + "/sessions", this::createSession, HandlerType.POST ); server.addSerializedRoute( PATH + "/sessions/{sessionId}/save", this::saveSession, HandlerType.POST ); @@ -272,6 +259,11 @@ private void getWorkflowDefs( final Context ctx ) { } + private void getActivityRegistry( final Context ctx ) { + process( ctx, ActivityRegistry::getRegistry ); + } + + private void createSession( final Context ctx ) { CreateSessionRequest request = ctx.bodyAsClass( CreateSessionRequest.class ); process( ctx, () -> sessionManager.createUserSession( request.getName() ) ); @@ -308,10 +300,13 @@ private void terminateSession( final Context ctx ) { private void process( Context ctx, ResultSupplier s ) { try { sendResult( ctx, s.get() ); + } catch ( WorkflowRepoException e ) { + ctx.status( e.getErrorCode() ); + ctx.json( e.getMessage() ); } catch ( Exception e ) { // TODO: better error handling ctx.status( HttpCode.INTERNAL_SERVER_ERROR ); - ctx.json( e ); + ctx.json( e.getMessage() ); e.printStackTrace(); } } diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/ActivityWrapper.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/ActivityWrapper.java index 63720c5be0..ef9e0abb5e 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/ActivityWrapper.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/ActivityWrapper.java @@ -131,7 +131,8 @@ public ActivityModel toModel( boolean includeState ) { if ( includeState ) { List inTypeModels = inTypePreview.stream().map( inType -> inType.map( TypePreviewModel::of ).orElse( null ) ).toList(); - return new ActivityModel( type, id, serializableSettings, config, rendering, this.state, inTypeModels, invalidStateReason.toString() ); + String invalidReason = invalidStateReason == null ? null : invalidStateReason.toString(); + return new ActivityModel( type, id, serializableSettings, config, rendering, this.state, inTypeModels, invalidReason ); } else { return new ActivityModel( type, id, serializableSettings, config, rendering ); diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/impl/LpgValuesActivity.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/impl/LpgValuesActivity.java index 2f278416ee..eba16968ce 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/impl/LpgValuesActivity.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/activities/impl/LpgValuesActivity.java @@ -28,9 +28,8 @@ import java.util.function.Supplier; import lombok.extern.slf4j.Slf4j; import org.polypheny.db.algebra.type.AlgDataType; -import org.polypheny.db.algebra.type.AlgDataTypeFactory; +import org.polypheny.db.algebra.type.GraphType; import org.polypheny.db.transaction.Transaction; -import org.polypheny.db.type.PolyType; import org.polypheny.db.type.entity.PolyString; import org.polypheny.db.type.entity.PolyValue; import org.polypheny.db.type.entity.graph.PolyDictionary; @@ -143,7 +142,7 @@ public void reset() { private static AlgDataType getType() { - return AlgDataTypeFactory.DEFAULT.createPolyType( PolyType.NODE ); + return GraphType.of(); } diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/edges/ControlEdge.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/edges/ControlEdge.java index 4feb20a6d3..9d8e1d3463 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/edges/ControlEdge.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/edges/ControlEdge.java @@ -46,7 +46,7 @@ public ControlEdge( ActivityWrapper from, ActivityWrapper to, int controlPort ) public EdgeModel toModel( boolean includeState ) { EdgeState state = includeState ? getState() : null; - return new EdgeModel( from.getId(), to.getId(), getControlPort(), 0, false, state ); + return new EdgeModel( from.getId(), to.getId(), getControlPort(), 0, true, state ); } diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/settings/EntitySettingDef.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/settings/EntitySettingDef.java index 8cfea97604..d0469c0cc5 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/settings/EntitySettingDef.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/dag/settings/EntitySettingDef.java @@ -56,7 +56,7 @@ public void validateValue( SettingValue value ) throws InvalidSettingException { case GRAPH -> entityValue.getGraph(); }; if ( entity == null ) { - throw new InvalidSettingException( "Entity does not exist", getKey() ); + throw new InvalidSettingException( "Entity " + entityValue.getNamespace() + "." + entityValue.getName() + " does not exist", getKey() ); } } return; diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/models/WorkflowConfigModel.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/models/WorkflowConfigModel.java index a34e30559a..0702439c99 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/models/WorkflowConfigModel.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/models/WorkflowConfigModel.java @@ -29,6 +29,7 @@ public class WorkflowConfigModel { boolean pipelineEnabled; int maxWorkers; int pipelineQueueCapacity; + // TODO: config value for changing behavior of deleting created checkpoints public static WorkflowConfigModel of() { diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepo.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepo.java index ce1edd4688..fa18efae19 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepo.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepo.java @@ -16,6 +16,7 @@ package org.polypheny.db.workflow.repo; +import io.javalin.http.HttpCode; import java.io.IOException; import java.util.Map; import java.util.UUID; @@ -207,13 +208,27 @@ static UUID getIdFromString( String str ) { @Getter class WorkflowRepoException extends IOException { + private final HttpCode errorCode; + + + WorkflowRepoException( String message, Throwable cause, HttpCode errorCode ) { + super( message, cause ); + this.errorCode = errorCode; + } + + WorkflowRepoException( String message ) { - super( message ); + this( message, null, HttpCode.INTERNAL_SERVER_ERROR ); + } + + + WorkflowRepoException( String message, HttpCode errorCode ) { + this( message, null, errorCode ); } WorkflowRepoException( String message, Throwable cause ) { - super( message, cause ); + this( message, cause, HttpCode.INTERNAL_SERVER_ERROR ); } diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepoImpl.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepoImpl.java index 5bf2991348..fd5768b099 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepoImpl.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/repo/WorkflowRepoImpl.java @@ -17,6 +17,7 @@ package org.polypheny.db.workflow.repo; import com.fasterxml.jackson.databind.ObjectMapper; +import io.javalin.http.HttpCode; import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -86,7 +87,7 @@ public WorkflowDefModel getWorkflowDef( UUID id ) throws WorkflowRepoException { File dir = getWorkflowDir( id ); File defFile = new File( dir, DEF_FILE ); if ( !defFile.exists() ) { - throw new WorkflowRepoException( DEF_FILE + " not found for workflow ID: " + id ); + throw new WorkflowRepoException( DEF_FILE + " not found for workflow ID: " + id, HttpCode.NOT_FOUND ); } try { return mapper.readValue( defFile, WorkflowDefModel.class ); @@ -99,7 +100,7 @@ public WorkflowDefModel getWorkflowDef( UUID id ) throws WorkflowRepoException { @Override public UUID createWorkflow( String name ) throws WorkflowRepoException { if ( doesNameExist( name ) ) { - throw new WorkflowRepoException( "Name already exists: " + name ); + throw new WorkflowRepoException( "Name already exists: " + name, HttpCode.CONFLICT ); } UUID id = UUID.randomUUID(); @@ -124,7 +125,7 @@ public WorkflowModel readVersion( UUID id, int version ) throws WorkflowRepoExce File file = new File( dir, version + ".json" ); if ( !doesExist( id, version ) || !file.exists() ) { - throw new WorkflowRepoException( "Workflow " + id + ", v" + version + " does not exist." ); + throw new WorkflowRepoException( "Workflow " + id + ", v" + version + " does not exist.", HttpCode.NOT_FOUND ); } try { @@ -151,7 +152,7 @@ public int writeVersion( UUID id, String description, WorkflowModel wf ) throws @Override public void deleteWorkflow( UUID id ) throws WorkflowRepoException { if ( !doesExist( id ) ) { - throw new WorkflowRepoException( "Unable to delete non-existent workflow " + id ); + throw new WorkflowRepoException( "Unable to delete non-existent workflow " + id, HttpCode.NOT_FOUND ); } if ( !phm.recursiveDeleteFolder( WORKFLOWS_PATH + "/" + id.toString() ) ) { throw new WorkflowRepoException( "Failed to delete workflow " + id ); @@ -162,13 +163,13 @@ public void deleteWorkflow( UUID id ) throws WorkflowRepoException { @Override public void deleteVersion( UUID id, int version ) throws WorkflowRepoException { if ( !doesExist( id, version ) ) { - throw new WorkflowRepoException( "Unable to delete non-existent workflow version " + id + " v" + version ); + throw new WorkflowRepoException( "Unable to delete non-existent workflow version " + id + " v" + version, HttpCode.NOT_FOUND ); } File dir = getWorkflowDir( id ); File versionFile = new File( dir, version + ".json" ); if ( !versionFile.exists() ) { - throw new WorkflowRepoException( "Version file " + versionFile.getName() + " not found for workflow " + id ); + throw new WorkflowRepoException( "Version file " + versionFile.getName() + " not found for workflow " + id, HttpCode.NOT_FOUND ); } if ( !versionFile.delete() ) { throw new WorkflowRepoException( "Failed to delete version file: " + versionFile.getAbsolutePath() ); @@ -187,7 +188,7 @@ public void renameWorkflow( UUID id, String name ) throws WorkflowRepoException return; // same name as before } if ( doesNameExist( name ) ) { - throw new WorkflowRepoException( "A workflow with name " + name + " already exists" ); + throw new WorkflowRepoException( "A workflow with name " + name + " already exists", HttpCode.CONFLICT ); } def.setName( name ); serializeToFile( new File( getWorkflowDir( id ), DEF_FILE ), def ); // updated definition diff --git a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/session/SessionManager.java b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/session/SessionManager.java index 89afc47858..5558439a51 100644 --- a/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/session/SessionManager.java +++ b/plugins/workflow-engine/src/main/java/org/polypheny/db/workflow/session/SessionManager.java @@ -52,6 +52,8 @@ public static SessionManager getInstance() { public UUID createUserSession( String newWorkflowName ) throws WorkflowRepoException { UUID wId = repo.createWorkflow( newWorkflowName ); + UUID sessionId = registerUserSession( new WorkflowImpl(), wId, 0 ); + saveUserSession( sessionId, "Initial Save" ); // TODO: remove initial save, delete workflow if its session is stopped without a saved version return registerUserSession( new WorkflowImpl(), wId, 0 ); } diff --git a/plugins/workflow-engine/src/main/resources/workflows/advanced_fusion.json b/plugins/workflow-engine/src/main/resources/workflows/advanced_fusion.json new file mode 100644 index 0000000000..a4a11dd9e4 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/advanced_fusion.json @@ -0,0 +1,157 @@ +{ + "activities": [ + { + "type": "debug", + "id": "d6318f1b-577f-4732-a359-3d0614cb6022", + "settings": { + "pipeDelay": 1, + "delay": 50, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relExtract", + "id": "5137a1e0-a6a6-4863-82e3-eeb6e2183366", + "settings": { + "table": { + "namespace": "public", + "name": "emps" + } + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relExtract", + "id": "bd8eb759-422f-4e16-90a3-fb0188d96458", + "settings": { + "table": { + "namespace": "public", + "name": "emps" + } + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relUnion", + "id": "591cc187-1736-49c9-a478-c49d3d3aae25", + "settings": {}, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "9f93aece-473e-4743-9cb4-2c956a53740d", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "591cc187-1736-49c9-a478-c49d3d3aae25", + "toId": "9f93aece-473e-4743-9cb4-2c956a53740d", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "bd8eb759-422f-4e16-90a3-fb0188d96458", + "toId": "591cc187-1736-49c9-a478-c49d3d3aae25", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "5137a1e0-a6a6-4863-82e3-eeb6e2183366", + "toId": "d6318f1b-577f-4732-a359-3d0614cb6022", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "d6318f1b-577f-4732-a359-3d0614cb6022", + "toId": "591cc187-1736-49c9-a478-c49d3d3aae25", + "fromPort": 0, + "toPort": 1, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": true, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3043767" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/combined_fuse_and_pipe.json b/plugins/workflow-engine/src/main/resources/workflows/combined_fuse_and_pipe.json new file mode 100644 index 0000000000..0ec8b66deb --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/combined_fuse_and_pipe.json @@ -0,0 +1,188 @@ +{ + "activities": [ + { + "type": "relUnion", + "id": "e3a54917-5b29-40e0-871e-8e67d974d026", + "settings": {}, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "64339166-711d-4b88-8e59-506cfed28b06", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "c2451002-ffc3-4e32-9b25-83db0198c071", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "5b186583-6912-42b4-aac4-0d4a117d52e8", + "settings": { + "pipeDelay": 1, + "delay": 50, + "isSuccessful": true, + "canPipe": true, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relExtract", + "id": "42be7e3f-51be-408f-9e49-37999a0c9110", + "settings": { + "table": { + "namespace": "public", + "name": "emps" + } + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relExtract", + "id": "8b313e9a-aa91-48e3-8e09-35bd09f8f5a9", + "settings": { + "table": { + "namespace": "public", + "name": "emps" + } + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "64339166-711d-4b88-8e59-506cfed28b06", + "toId": "e3a54917-5b29-40e0-871e-8e67d974d026", + "fromPort": 0, + "toPort": 1, + "isControl": false + }, + { + "fromId": "e3a54917-5b29-40e0-871e-8e67d974d026", + "toId": "c2451002-ffc3-4e32-9b25-83db0198c071", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "5b186583-6912-42b4-aac4-0d4a117d52e8", + "toId": "64339166-711d-4b88-8e59-506cfed28b06", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "8b313e9a-aa91-48e3-8e09-35bd09f8f5a9", + "toId": "5b186583-6912-42b4-aac4-0d4a117d52e8", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "42be7e3f-51be-408f-9e49-37999a0c9110", + "toId": "e3a54917-5b29-40e0-871e-8e67d974d026", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": true, + "pipelineEnabled": true, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3064344" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/common_extract_skip.json b/plugins/workflow-engine/src/main/resources/workflows/common_extract_skip.json new file mode 100644 index 0000000000..be54de4830 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/common_extract_skip.json @@ -0,0 +1,129 @@ +{ + "activities": [ + { + "type": "relValues", + "id": "85a59eea-64b1-44fb-b946-770670eda7b9", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "EXTRACT", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "82f92f6c-18ff-4910-aacc-30583f4d9c11", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "b4a9003f-3691-491b-82e7-26990a0d2c27", + "settings": { + "pipeDelay": 1, + "delay": 50, + "isSuccessful": false, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "EXTRACT", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "c09f4843-db4b-4db7-b3b2-ba30441c6786", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "EXTRACT", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "b4a9003f-3691-491b-82e7-26990a0d2c27", + "toId": "c09f4843-db4b-4db7-b3b2-ba30441c6786", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "85a59eea-64b1-44fb-b946-770670eda7b9", + "toId": "82f92f6c-18ff-4910-aacc-30583f4d9c11", + "fromPort": 1, + "toPort": 0, + "isControl": true + }, + { + "fromId": "85a59eea-64b1-44fb-b946-770670eda7b9", + "toId": "b4a9003f-3691-491b-82e7-26990a0d2c27", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "GRAPH": "hsqldb", + "DOCUMENT": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T17:23:46.8731404" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/common_load_skipped.json b/plugins/workflow-engine/src/main/resources/workflows/common_load_skipped.json new file mode 100644 index 0000000000..7524a6798c --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/common_load_skipped.json @@ -0,0 +1,133 @@ +{ + "activities": [ + { + "type": "debug", + "id": "49918cf1-d12f-4d73-a773-9b013976aef0", + "settings": { + "pipeDelay": 1, + "delay": 50, + "isSuccessful": false, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "f3584d0d-1804-4a90-9ecd-fdcd6652ab2a", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "05f99e8e-cf2b-4427-bba6-0c48d8cc6fc3", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "LOAD", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "d7a8aaa1-78a4-4e0b-90f1-3c68509fc2db", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "LOAD", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "f3584d0d-1804-4a90-9ecd-fdcd6652ab2a", + "toId": "49918cf1-d12f-4d73-a773-9b013976aef0", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "f3584d0d-1804-4a90-9ecd-fdcd6652ab2a", + "toId": "05f99e8e-cf2b-4427-bba6-0c48d8cc6fc3", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "49918cf1-d12f-4d73-a773-9b013976aef0", + "toId": "d7a8aaa1-78a4-4e0b-90f1-3c68509fc2db", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3097338" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/common_transactions.json b/plugins/workflow-engine/src/main/resources/workflows/common_transactions.json new file mode 100644 index 0000000000..3e89c44373 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/common_transactions.json @@ -0,0 +1,242 @@ +{ + "activities": [ + { + "type": "relValues", + "id": "837dc831-5fa4-434f-9bca-f49e5e797ada", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "9099ef8f-61dc-44c8-8e65-7998ca23119e", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "EXTRACT", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "c26a2c1c-410d-44dd-9b72-d69cca0530c8", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "9d81b32c-4227-49e1-b1bc-a05d9c2d2402", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "c36aa9eb-6fff-4258-841b-d364f7de02a2", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "LOAD", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "0619a359-b924-48de-b9af-e639fe752c82", + "settings": { + "pipeDelay": 1, + "delay": 50, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "EXTRACT", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relUnion", + "id": "fbbbae73-4eef-4e42-ae52-b9888cd03593", + "settings": {}, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "LOAD", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "0dcf0cf4-1205-4929-9996-60fbaad1bde4", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "EXTRACT", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "c26a2c1c-410d-44dd-9b72-d69cca0530c8", + "toId": "c36aa9eb-6fff-4258-841b-d364f7de02a2", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "0dcf0cf4-1205-4929-9996-60fbaad1bde4", + "toId": "0619a359-b924-48de-b9af-e639fe752c82", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "9099ef8f-61dc-44c8-8e65-7998ca23119e", + "toId": "c26a2c1c-410d-44dd-9b72-d69cca0530c8", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "c26a2c1c-410d-44dd-9b72-d69cca0530c8", + "toId": "fbbbae73-4eef-4e42-ae52-b9888cd03593", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "9d81b32c-4227-49e1-b1bc-a05d9c2d2402", + "toId": "fbbbae73-4eef-4e42-ae52-b9888cd03593", + "fromPort": 0, + "toPort": 1, + "isControl": false + }, + { + "fromId": "0619a359-b924-48de-b9af-e639fe752c82", + "toId": "9d81b32c-4227-49e1-b1bc-a05d9c2d2402", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "0dcf0cf4-1205-4929-9996-60fbaad1bde4", + "toId": "837dc831-5fa4-434f-9bca-f49e5e797ada", + "fromPort": 1, + "toPort": 0, + "isControl": true + } + ], + "config": { + "preferredStores": { + "GRAPH": "hsqldb", + "DOCUMENT": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T17:23:46.872112" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/document_values.json b/plugins/workflow-engine/src/main/resources/workflows/document_values.json new file mode 100644 index 0000000000..486312288b --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/document_values.json @@ -0,0 +1,65 @@ +{ + "activities": [ + { + "type": "docIdentity", + "id": "2c0cade8-b5ac-4a28-8a85-93d3ca14eec1", + "settings": {}, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "docValues", + "id": "5b052184-754f-4f04-bc36-e80ff91f74c5", + "settings": { + "count": 5, + "fixSeed": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "5b052184-754f-4f04-bc36-e80ff91f74c5", + "toId": "2c0cade8-b5ac-4a28-8a85-93d3ca14eec1", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3097338" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/long_running_pipe.json b/plugins/workflow-engine/src/main/resources/workflows/long_running_pipe.json new file mode 100644 index 0000000000..5c2e327c53 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/long_running_pipe.json @@ -0,0 +1,102 @@ +{ + "activities": [ + { + "type": "identity", + "id": "bb3807f7-8ae7-4986-a668-6b8140799b6b", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "44f24dbe-1550-4adb-9440-142410e75cb9", + "settings": { + "fixSeed": false, + "rowCount": 100 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "bc58a265-5dcb-4051-b9a6-7dd2afddc060", + "settings": { + "pipeDelay": 101, + "delay": 50, + "isSuccessful": true, + "canPipe": true, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "44f24dbe-1550-4adb-9440-142410e75cb9", + "toId": "bc58a265-5dcb-4051-b9a6-7dd2afddc060", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "bc58a265-5dcb-4051-b9a6-7dd2afddc060", + "toId": "bb3807f7-8ae7-4986-a668-6b8140799b6b", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": true, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3064344" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/lpg_values.json b/plugins/workflow-engine/src/main/resources/workflows/lpg_values.json new file mode 100644 index 0000000000..c1c6949232 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/lpg_values.json @@ -0,0 +1,66 @@ +{ + "activities": [ + { + "type": "lpgIdentity", + "id": "ddbe6369-0799-458e-bce7-72ad715a7ae3", + "settings": {}, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "lpgValues", + "id": "86722e95-88f6-4917-a11f-8a504a7914e6", + "settings": { + "count": 5, + "edgeDensity": 0.5, + "fixSeed": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "86722e95-88f6-4917-a11f-8a504a7914e6", + "toId": "ddbe6369-0799-458e-bce7-72ad715a7ae3", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.310737" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/merge.json b/plugins/workflow-engine/src/main/resources/workflows/merge.json new file mode 100644 index 0000000000..890e4dc7e3 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/merge.json @@ -0,0 +1,129 @@ +{ + "activities": [ + { + "type": "relValues", + "id": "aeb28854-a106-4e55-a153-27d7a2733b74", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relMerge", + "id": "b9e21579-e500-4c3b-ab6f-e0d826420f6c", + "settings": {}, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "865bedd9-ad80-45f0-abec-17861d58cbda", + "settings": { + "pipeDelay": 1, + "delay": 50, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "c3579d4d-bb7b-4bd4-9378-48e70fa6fd47", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "c3579d4d-bb7b-4bd4-9378-48e70fa6fd47", + "toId": "b9e21579-e500-4c3b-ab6f-e0d826420f6c", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "865bedd9-ad80-45f0-abec-17861d58cbda", + "toId": "b9e21579-e500-4c3b-ab6f-e0d826420f6c", + "fromPort": 0, + "toPort": 1, + "isControl": false + }, + { + "fromId": "aeb28854-a106-4e55-a153-27d7a2733b74", + "toId": "865bedd9-ad80-45f0-abec-17861d58cbda", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "c3579d4d-bb7b-4bd4-9378-48e70fa6fd47", + "toId": "aeb28854-a106-4e55-a153-27d7a2733b74", + "fromPort": 0, + "toPort": 0, + "isControl": true + } + ], + "config": { + "preferredStores": { + "GRAPH": "hsqldb", + "DOCUMENT": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T17:23:46.8700405" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/parallel_branches.json b/plugins/workflow-engine/src/main/resources/workflows/parallel_branches.json new file mode 100644 index 0000000000..8d1c1ae70b --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/parallel_branches.json @@ -0,0 +1,341 @@ +{ + "activities": [ + { + "type": "debug", + "id": "a202b894-7cea-4cb4-81b8-acc9fe94c27d", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "f47877e6-d4e7-46a6-bec4-65ff1835b773", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "cef1fa7b-df51-420b-9670-2e4fb51b7197", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "7c2f8d23-d7b3-4e28-822f-a4c336a1841f", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "6dc66b68-ab5a-49b6-8e05-e1d50a98075f", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "c04589db-19cd-41f9-be2d-6e7a5e015d24", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "c845c796-b890-47f7-b69f-5da1ac1c1baf", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "e6918902-55e1-4b07-9872-cd2b0b78341d", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "a871edb0-3fb0-4ee1-a6d2-079f6025aeb3", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "debug", + "id": "77828f0e-eccd-43c8-8bf2-298ffa67de4f", + "settings": { + "pipeDelay": 1, + "delay": 1000, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "7c2f8d23-d7b3-4e28-822f-a4c336a1841f", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "6dc66b68-ab5a-49b6-8e05-e1d50a98075f", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "a202b894-7cea-4cb4-81b8-acc9fe94c27d", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "cef1fa7b-df51-420b-9670-2e4fb51b7197", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "f47877e6-d4e7-46a6-bec4-65ff1835b773", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "77828f0e-eccd-43c8-8bf2-298ffa67de4f", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "c845c796-b890-47f7-b69f-5da1ac1c1baf", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "e6918902-55e1-4b07-9872-cd2b0b78341d", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "c04589db-19cd-41f9-be2d-6e7a5e015d24", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "06a8ab8c-35cc-46a7-add2-05b03a0d0db5", + "toId": "a871edb0-3fb0-4ee1-a6d2-079f6025aeb3", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 10, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3075565" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/simple_fusion.json b/plugins/workflow-engine/src/main/resources/workflows/simple_fusion.json new file mode 100644 index 0000000000..c712c3b45d --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/simple_fusion.json @@ -0,0 +1,72 @@ +{ + "activities": [ + { + "type": "relValues", + "id": "37d22408-3303-4100-8bd0-9ba69fb84a10", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "a204a06b-b238-46e8-a91d-ddcb75d50366", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "37d22408-3303-4100-8bd0-9ba69fb84a10", + "toId": "a204a06b-b238-46e8-a91d-ddcb75d50366", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": true, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3029063" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/simple_pipe.json b/plugins/workflow-engine/src/main/resources/workflows/simple_pipe.json new file mode 100644 index 0000000000..246266743a --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/simple_pipe.json @@ -0,0 +1,103 @@ +{ + "activities": [ + { + "type": "relValues", + "id": "f27af3e1-0ade-411c-9c6b-6252571cb38d", + "settings": { + "fixSeed": false, + "rowCount": 20 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "0f1d3a63-37e1-4a10-ad12-7bdf2ee3096f", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "identity", + "id": "cef57a93-1438-44ee-bf43-fc6a5e0dda5b", + "settings": { + "I1": 2, + "I2": [], + "S1": "", + "S2": [ + "test" + ] + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "cef57a93-1438-44ee-bf43-fc6a5e0dda5b", + "toId": "0f1d3a63-37e1-4a10-ad12-7bdf2ee3096f", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "f27af3e1-0ade-411c-9c6b-6252571cb38d", + "toId": "cef57a93-1438-44ee-bf43-fc6a5e0dda5b", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": true, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T16:18:37.3054323" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/simple_workflow.json b/plugins/workflow-engine/src/main/resources/workflows/simple_workflow.json new file mode 100644 index 0000000000..f2bfaa81f3 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/simple_workflow.json @@ -0,0 +1,71 @@ +{ + "activities": [ + { + "type": "debug", + "id": "c46087d3-a763-44a5-8ef1-88bf73f4d7f5", + "settings": { + "pipeDelay": 1, + "delay": 50, + "isSuccessful": true, + "canPipe": false, + "canFuse": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "9f855172-9aaf-4b2e-a2c3-70b85f033223", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "9f855172-9aaf-4b2e-a2c3-70b85f033223", + "toId": "c46087d3-a763-44a5-8ef1-88bf73f4d7f5", + "fromPort": 0, + "toPort": 0, + "isControl": false + } + ], + "config": { + "preferredStores": { + "DOCUMENT": "hsqldb", + "GRAPH": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T13:24:38.1447132" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/union.json b/plugins/workflow-engine/src/main/resources/workflows/union.json new file mode 100644 index 0000000000..3e2dbe34c6 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/union.json @@ -0,0 +1,99 @@ +{ + "activities": [ + { + "type": "relValues", + "id": "fa5fa54b-3b9b-40bf-9f69-13cf1434fe71", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relUnion", + "id": "ff737d1f-6f94-4ccd-90ad-6c6977625060", + "settings": {}, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "relValues", + "id": "0eca366d-d395-448c-b3d6-26d1183025d0", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "fa5fa54b-3b9b-40bf-9f69-13cf1434fe71", + "toId": "ff737d1f-6f94-4ccd-90ad-6c6977625060", + "fromPort": 0, + "toPort": 1, + "isControl": false + }, + { + "fromId": "0eca366d-d395-448c-b3d6-26d1183025d0", + "toId": "ff737d1f-6f94-4ccd-90ad-6c6977625060", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "0eca366d-d395-448c-b3d6-26d1183025d0", + "toId": "fa5fa54b-3b9b-40bf-9f69-13cf1434fe71", + "fromPort": 0, + "toPort": 0, + "isControl": true + } + ], + "config": { + "preferredStores": { + "GRAPH": "hsqldb", + "DOCUMENT": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T17:23:46.8633395" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/main/resources/workflows/variable_writing.json b/plugins/workflow-engine/src/main/resources/workflows/variable_writing.json new file mode 100644 index 0000000000..30702cbb67 --- /dev/null +++ b/plugins/workflow-engine/src/main/resources/workflows/variable_writing.json @@ -0,0 +1,94 @@ +{ + "activities": [ + { + "type": "relValues", + "id": "e6a30a3d-a7ff-475a-adcd-52f1baee5108", + "settings": { + "fixSeed": false, + "rowCount": 3 + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "varToRow", + "id": "0c960101-f909-4ae3-8a33-c3c515e787fb", + "settings": { + "allJson": false + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + }, + { + "type": "fieldNameToVar", + "id": "6e35a701-95ef-447a-88fc-b6f353fa4afc", + "settings": { + "fields": [], + "variableName": "field_names" + }, + "config": { + "enforceCheckpoint": false, + "preferredStores": null, + "commonType": "NONE", + "controlStateMerger": "AND_AND" + }, + "rendering": { + "posX": 0, + "posY": 0, + "name": null, + "notes": null + } + } + ], + "edges": [ + { + "fromId": "e6a30a3d-a7ff-475a-adcd-52f1baee5108", + "toId": "6e35a701-95ef-447a-88fc-b6f353fa4afc", + "fromPort": 0, + "toPort": 0, + "isControl": false + }, + { + "fromId": "6e35a701-95ef-447a-88fc-b6f353fa4afc", + "toId": "0c960101-f909-4ae3-8a33-c3c515e787fb", + "fromPort": 0, + "toPort": 0, + "isControl": true + } + ], + "config": { + "preferredStores": { + "GRAPH": "hsqldb", + "DOCUMENT": "hsqldb", + "RELATIONAL": "hsqldb" + }, + "fusionEnabled": false, + "pipelineEnabled": false, + "maxWorkers": 1, + "pipelineQueueCapacity": 10 + }, + "variables": { + "creationTime": "2024-12-23T17:23:46.871076" + }, + "format_version": "0.0.1" +} diff --git a/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/WorkflowUtils.java b/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/WorkflowUtils.java index 0a1366842c..95e8858107 100644 --- a/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/WorkflowUtils.java +++ b/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/WorkflowUtils.java @@ -16,6 +16,7 @@ package org.polypheny.db.workflow; +import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.BooleanNode; @@ -366,6 +367,36 @@ public static List getTopologicalActivityIds( Workflow workflow ) { } + /** + * Used for exporting the workflows to use them in a non-test setting + */ + public static void exportWorkflows() { // TODO: delete when no longer required + List workflows = List.of( + getUnionWorkflow(), + getMergeWorkflow( false ), + getSimpleFusion(), + getAdvancedFusion().left, + getSimplePipe(), + getLongRunningPipe( 10000 ), + getCombinedFuseAndPipe().left, + getVariableWritingWorkflow(), + getParallelBranchesWorkflow( 10, 1000, 10 ), + getCommonTransactionsWorkflow( false ).left, + getCommonExtractSkipActivityWorkflow().left, + getCommonLoadGetsSkippedWorkflow().left, + getDocumentWorkflow( 5 ), + getLpgWorkflow( 5, 0.5, false ) + ); + for (Workflow wf : workflows) { + try { + System.out.println(mapper.writeValueAsString( wf.toModel( false ) )); + } catch ( JsonProcessingException e ) { + throw new RuntimeException( e ); + } + } + } + + public static JsonNode getEntitySetting( String namespace, String name ) { return new EntityValue( namespace, name ).toJson( mapper ); } diff --git a/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/engine/scheduler/GlobalSchedulerTest.java b/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/engine/scheduler/GlobalSchedulerTest.java index 01c0697606..3eeeec8948 100644 --- a/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/engine/scheduler/GlobalSchedulerTest.java +++ b/plugins/workflow-engine/src/test/java/org/polypheny/db/workflow/engine/scheduler/GlobalSchedulerTest.java @@ -28,6 +28,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.polypheny.db.TestHelper; import org.polypheny.db.type.entity.PolyValue; @@ -401,6 +402,13 @@ void executionMonitorTest() throws Exception { } + @Test + @Disabled + // TODO: delete when no longer required + void exportTestWorkflows() throws Exception { + WorkflowUtils.exportWorkflows(); + } + private void checkFailed( Workflow workflow, List failedActivityIds ) { for ( UUID id : failedActivityIds ) {