From 759e2ee78e4416af59279d66fc949a2ebb588b91 Mon Sep 17 00:00:00 2001 From: Jan Eglinger Date: Sun, 24 Sep 2017 15:19:09 +0200 Subject: [PATCH] When processing #@script, register module with ModuleService Also set the priority of ScriptDirectiveScriptProcessor to high to allow processing directives before other script parameters. --- .../script/process/ScriptDirectiveScriptProcessor.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/scijava/script/process/ScriptDirectiveScriptProcessor.java b/src/main/java/org/scijava/script/process/ScriptDirectiveScriptProcessor.java index eefbb4a76..212495c1d 100644 --- a/src/main/java/org/scijava/script/process/ScriptDirectiveScriptProcessor.java +++ b/src/main/java/org/scijava/script/process/ScriptDirectiveScriptProcessor.java @@ -38,6 +38,7 @@ import org.scijava.Priority; import org.scijava.log.LogService; import org.scijava.module.ModuleInfo; +import org.scijava.module.ModuleService; import org.scijava.plugin.Parameter; import org.scijava.plugin.Plugin; @@ -95,7 +96,7 @@ * * @author Curtis Rueden */ -@Plugin(type = ScriptProcessor.class) +@Plugin(type = ScriptProcessor.class, priority=Priority.HIGH) public class ScriptDirectiveScriptProcessor extends DirectiveScriptProcessor { public ScriptDirectiveScriptProcessor() { @@ -104,6 +105,9 @@ public ScriptDirectiveScriptProcessor() { @Parameter private LogService log; + + @Parameter + private ModuleService moduleService; // -- Internal DirectiveScriptProcessor methods -- @@ -114,6 +118,7 @@ protected String process(final String directive, for (final String k : attrs.keySet()) { assignAttribute(k == null ? "name" : k, attrs.get(k)); } + moduleService.addModule(info()); // TODO how to handle duplicate names? return ""; }