Class InMemoryStores
java.lang.Object
com.iantapply.orchestra.adapter.memory.InMemoryStores
- All Implemented Interfaces:
com.iantapply.orchestra.port.DefinitionRepository, com.iantapply.orchestra.port.DistributedLock, com.iantapply.orchestra.port.ExecutionRepository
public final class InMemoryStores
extends Object
implements com.iantapply.orchestra.port.DefinitionRepository, com.iantapply.orchestra.port.ExecutionRepository, com.iantapply.orchestra.port.DistributedLock
Thread-safe in-memory implementation of the core stores and lease provider.
Intended for tests, development, and single-process installations.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.iantapply.orchestra.port.DistributedLock
com.iantapply.orchestra.port.DistributedLock.Lease -
Constructor Summary
ConstructorsConstructorDescriptionCreates empty in-memory definition, execution, and lease stores.InMemoryStores(Clock clock) Creates empty stores using the supplied clock for deterministic lease expiry. -
Method Summary
Modifier and TypeMethodDescriptionbooleancompareAndSet(long expectedVersion, com.iantapply.orchestra.domain.EventExecution replacement) voidcreate(com.iantapply.orchestra.domain.EventExecution execution) Optional<com.iantapply.orchestra.api.EventDefinition> Optional<com.iantapply.orchestra.domain.EventExecution> Collection<com.iantapply.orchestra.domain.EventExecution> findActive(int limit) Collection<com.iantapply.orchestra.api.EventDefinition> findAll()Collection<com.iantapply.orchestra.domain.EventExecution> voidreplaceAll(Collection<com.iantapply.orchestra.api.EventDefinition> replacement) voidsave(com.iantapply.orchestra.api.EventDefinition definition) Optional<com.iantapply.orchestra.port.DistributedLock.Lease> tryAcquire(String key, Duration duration)
-
Constructor Details
-
InMemoryStores
public InMemoryStores()Creates empty in-memory definition, execution, and lease stores. -
InMemoryStores
Creates empty stores using the supplied clock for deterministic lease expiry.- Parameters:
clock- lease expiry clock
-
-
Method Details
-
save
public void save(com.iantapply.orchestra.api.EventDefinition definition) - Specified by:
savein interfacecom.iantapply.orchestra.port.DefinitionRepository
-
find
-
findAll
- Specified by:
findAllin interfacecom.iantapply.orchestra.port.DefinitionRepository
-
replaceAll
- Specified by:
replaceAllin interfacecom.iantapply.orchestra.port.DefinitionRepository
-
create
public void create(com.iantapply.orchestra.domain.EventExecution execution) - Specified by:
createin interfacecom.iantapply.orchestra.port.ExecutionRepository
-
find
-
findDue
- Specified by:
findDuein interfacecom.iantapply.orchestra.port.ExecutionRepository
-
findActive
- Specified by:
findActivein interfacecom.iantapply.orchestra.port.ExecutionRepository
-
compareAndSet
public boolean compareAndSet(long expectedVersion, com.iantapply.orchestra.domain.EventExecution replacement) - Specified by:
compareAndSetin interfacecom.iantapply.orchestra.port.ExecutionRepository
-
tryAcquire
-