diff --git a/src/main/java/sirius/biz/process/ProcessContext.java b/src/main/java/sirius/biz/process/ProcessContext.java
index 488ad581a..30436b62b 100644
--- a/src/main/java/sirius/biz/process/ProcessContext.java
+++ b/src/main/java/sirius/biz/process/ProcessContext.java
@@ -262,7 +262,7 @@ public interface ProcessContext extends TaskContextAdapter {
TableOutput.ColumnBuilder addTable(String name, String label);
/**
- * Adds an additional log output to the process.
+ * Adds a log output to the process.
*
* Use {@link ProcessLog#into(String)} to add log entries to this output.
*
diff --git a/src/main/java/sirius/biz/process/Processes.java b/src/main/java/sirius/biz/process/Processes.java
index ddaf1c710..fd0afa932 100644
--- a/src/main/java/sirius/biz/process/Processes.java
+++ b/src/main/java/sirius/biz/process/Processes.java
@@ -176,6 +176,20 @@ public String createProcess(@Nullable String type,
return process.getIdAsString();
}
+ /**
+ * Fetches the currently active process.
+ *
+ * @return the process for which the current thread is executing or an empty optional if no process is active
+ */
+ public Optional> fetchCurrentProcess() {
+ TaskContextAdapter adapter = TaskContext.get().getAdapter();
+ if (adapter instanceof ProcessEnvironment processEnvironment) {
+ return Optional.of(() -> fetchRequiredProcess(processEnvironment.getProcessId()));
+ } else {
+ return Optional.empty();
+ }
+ }
+
/**
* Creates a new process for the currently active user.
*
@@ -1086,7 +1100,7 @@ public Optional fetchProcessLogForUser(String processLogId) {
*
* @param processLog the log entry to modify
* @param newState the new state to set
- * @param webContext the request to respond to
+ * @param webContext the request to respond to
* @param returnUrl the URL to redirect the request to once the modification has been performed and is visible
*/
public void updateProcessLogStateAndReturn(ProcessLog processLog,
diff --git a/src/main/java/sirius/biz/ide/JobTaskContextAdapter.java b/src/main/java/sirius/biz/scripting/JobTaskContextAdapter.java
similarity index 98%
rename from src/main/java/sirius/biz/ide/JobTaskContextAdapter.java
rename to src/main/java/sirius/biz/scripting/JobTaskContextAdapter.java
index f9b863e85..037ed8b5c 100644
--- a/src/main/java/sirius/biz/ide/JobTaskContextAdapter.java
+++ b/src/main/java/sirius/biz/scripting/JobTaskContextAdapter.java
@@ -6,7 +6,7 @@
* http://www.scireum.de - info@scireum.de
*/
-package sirius.biz.ide;
+package sirius.biz.scripting;
import sirius.kernel.async.TaskContextAdapter;
import sirius.kernel.commons.RateLimit;
diff --git a/src/main/java/sirius/biz/ide/LogMacro.java b/src/main/java/sirius/biz/scripting/LogMacro.java
similarity index 93%
rename from src/main/java/sirius/biz/ide/LogMacro.java
rename to src/main/java/sirius/biz/scripting/LogMacro.java
index 6b0ef26b2..5d647c8e4 100644
--- a/src/main/java/sirius/biz/ide/LogMacro.java
+++ b/src/main/java/sirius/biz/scripting/LogMacro.java
@@ -6,7 +6,7 @@
* http://www.scireum.de - info@scireum.de
*/
-package sirius.biz.ide;
+package sirius.biz.scripting;
import sirius.kernel.async.TaskContext;
import sirius.kernel.di.std.Register;
@@ -15,6 +15,7 @@
import sirius.pasta.noodle.compiler.CompilationContext;
import sirius.pasta.noodle.compiler.ir.Node;
import sirius.pasta.noodle.macros.BasicMacro;
+import sirius.pasta.noodle.sandbox.NoodleSandbox;
import javax.annotation.Nonnull;
import java.util.List;
@@ -23,6 +24,7 @@
* Provides a shortcut to invoke {@link TaskContext#log(String, Object...)}.
*/
@Register
+@NoodleSandbox(NoodleSandbox.Accessibility.GRANTED)
public class LogMacro extends BasicMacro {
@Override
protected Class> getType() {
diff --git a/src/main/java/sirius/biz/ide/Scripting.java b/src/main/java/sirius/biz/scripting/Scripting.java
similarity index 97%
rename from src/main/java/sirius/biz/ide/Scripting.java
rename to src/main/java/sirius/biz/scripting/Scripting.java
index c6e114632..f97fa9b2e 100644
--- a/src/main/java/sirius/biz/ide/Scripting.java
+++ b/src/main/java/sirius/biz/scripting/Scripting.java
@@ -6,7 +6,7 @@
* http://www.scireum.de - info@scireum.de
*/
-package sirius.biz.ide;
+package sirius.biz.scripting;
import com.fasterxml.jackson.databind.node.ObjectNode;
import sirius.biz.cluster.Interconnect;
@@ -24,7 +24,6 @@
import sirius.kernel.health.Exceptions;
import sirius.kernel.health.HandledException;
import sirius.kernel.health.Log;
-import sirius.pasta.Pasta;
import sirius.pasta.noodle.Callable;
import sirius.pasta.noodle.ScriptingException;
import sirius.pasta.noodle.SimpleEnvironment;
@@ -54,6 +53,11 @@
@Register(classes = {Scripting.class, InterconnectHandler.class})
public class Scripting implements InterconnectHandler {
+ /**
+ * Contains a global logger to use for errors or messages related to custom scripts.
+ */
+ public static final Log LOG = Log.get("scripting");
+
private static final int MAX_MESSAGES = 256;
private static final String TASK_TYPE = "type";
@@ -237,7 +241,7 @@ private void handleTaskForNode(ObjectNode event, String jobNumber) {
} catch (CompileException | ScriptingException | HandledException exception) {
logInTranscript(jobNumber, exception.getMessage());
} catch (Exception exception) {
- logInTranscript(jobNumber, Exceptions.handle(Pasta.LOG, exception).getMessage());
+ logInTranscript(jobNumber, Exceptions.handle(LOG, exception).getMessage());
}
logInTranscript(jobNumber, Strings.apply("Execution completed (%s)", watch.duration()));
diff --git a/src/main/java/sirius/biz/ide/ScriptingController.java b/src/main/java/sirius/biz/scripting/ScriptingController.java
similarity index 97%
rename from src/main/java/sirius/biz/ide/ScriptingController.java
rename to src/main/java/sirius/biz/scripting/ScriptingController.java
index 45a9a1a38..22d599a85 100644
--- a/src/main/java/sirius/biz/ide/ScriptingController.java
+++ b/src/main/java/sirius/biz/scripting/ScriptingController.java
@@ -6,7 +6,7 @@
* http://www.scireum.de - info@scireum.de
*/
-package sirius.biz.ide;
+package sirius.biz.scripting;
import sirius.biz.web.BizController;
import sirius.kernel.commons.Strings;
@@ -77,7 +77,7 @@ public void scripting(WebContext webContext) {
nodes.addFirst(Tuple.create("Current Machine", Scripting.LOCAL_NODE));
nodes.add(Tuple.create("All Machines", Scripting.ALL_NODES));
- webContext.respondWith().template("/templates/biz/ide/scripting.html.pasta", nodes);
+ webContext.respondWith().template("/templates/biz/scripting/scripting.html.pasta", nodes);
}
/**
diff --git a/src/main/java/sirius/biz/ide/TranscriptMessage.java b/src/main/java/sirius/biz/scripting/TranscriptMessage.java
similarity index 93%
rename from src/main/java/sirius/biz/ide/TranscriptMessage.java
rename to src/main/java/sirius/biz/scripting/TranscriptMessage.java
index 2d5c0273a..acb0f3228 100644
--- a/src/main/java/sirius/biz/ide/TranscriptMessage.java
+++ b/src/main/java/sirius/biz/scripting/TranscriptMessage.java
@@ -6,12 +6,12 @@
* http://www.scireum.de - info@scireum.de
*/
-package sirius.biz.ide;
+package sirius.biz.scripting;
/**
* Wraps a transcript message which can be created by a running script and is available on all nodes.
*/
-class TranscriptMessage {
+public class TranscriptMessage {
private final String node;
private final String jobNumber;
diff --git a/src/main/resources/default/templates/biz/ide/scripting.html.pasta b/src/main/resources/default/templates/biz/scripting/scripting.html.pasta
similarity index 100%
rename from src/main/resources/default/templates/biz/ide/scripting.html.pasta
rename to src/main/resources/default/templates/biz/scripting/scripting.html.pasta