diff --git a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java index 3c34e74cd..25602e280 100644 --- a/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java +++ b/li.strolch.agent/src/main/java/li/strolch/persistence/api/AbstractTransaction.java @@ -739,6 +739,12 @@ public abstract class AbstractTransaction implements StrolchTransaction { return configuration; } + @Override + public Resource lockAndGetConfiguration() { + lock(Resource.locatorFor(TYPE_CONFIGURATION, RES_CONFIGURATION)); + return getConfiguration(); + } + @Override public Order getOrderTemplate(String type) { return getOrderTemplate(type, false); diff --git a/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java b/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java index d40be21f1..20b090670 100644 --- a/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java +++ b/li.strolch.agent/src/main/java/li/strolch/persistence/api/StrolchTransaction.java @@ -800,6 +800,20 @@ public interface StrolchTransaction extends AutoCloseable { */ Resource getConfiguration(); + /** + *

Returns the {@link Resource} with the type {@link StrolchConstants#TYPE_CONFIGURATION} and id {@link + * StrolchConstants#RES_CONFIGURATION}.

+ * + *

Should the configuration resource not exist, then it will be created without any parameters, as {@link + * Resource#getBoolean(String)} methods et. al. will then just return empty values for their corresponding + * types.

+ * + *

This method first locks the resource's locator, so that we can perform a read lock

+ * + * @return the configuration resource + */ + Resource lockAndGetConfiguration(); + /** *

* Returns a copy of the {@link Order} of Type {@link StrolchModelConstants#TEMPLATE} with the given type as id, or