Skip to content

Commit 6919fbd

Browse files
committed
Clean up plugins
1 parent 71e6bb7 commit 6919fbd

9 files changed

Lines changed: 103 additions & 76 deletions

File tree

scijava-ops-legacy/src/main/java/module-info.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,7 @@
2626
* POSSIBILITY OF SUCH DAMAGE.
2727
* #L%
2828
*/
29-
module org.scijava.legacy {
30-
31-
exports org.scijava.legacy.service to org.scijava;
32-
exports org.scijava.legacy.module.process to org.scijava;
33-
34-
opens org.scijava.legacy.module.process to org.scijava;
29+
open module org.scijava.legacy {
3530

3631
requires net.imagej;
3732
requires org.scijava;

scijava-ops-legacy/src/main/java/org/scijava/legacy/module/process/OpEnvironmentPreprocessorPlugin.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.scijava.legacy.module.process;
22

33
import org.scijava.Priority;
4-
import org.scijava.legacy.service.OpService;
4+
import org.scijava.legacy.service.OpEnvironmentService;
55
import org.scijava.module.Module;
66
import org.scijava.module.ModuleItem;
77
import org.scijava.module.process.AbstractPreprocessorPlugin;
@@ -16,7 +16,7 @@ public class OpEnvironmentPreprocessorPlugin extends
1616
{
1717

1818
@Parameter
19-
private OpService opService;
19+
private OpEnvironmentService opEnvironmentService;
2020

2121
@Override
2222
public void process(Module module) {
@@ -27,7 +27,7 @@ public void process(Module module) {
2727
if (OpEnvironment.class.equals(type)) {
2828
@SuppressWarnings("unchecked")
2929
final ModuleItem<OpEnvironment> envInput = (ModuleItem<OpEnvironment>) input;
30-
envInput.setValue(module, opService.env());
30+
envInput.setValue(module, opEnvironmentService.env());
3131
module.resolveInput(input.getName());
3232
}
3333
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.scijava.legacy.service;
2+
3+
import org.scijava.ops.api.OpEnvironment;
4+
import org.scijava.plugin.Parameter;
5+
import org.scijava.plugin.Plugin;
6+
import org.scijava.script.ScriptService;
7+
import org.scijava.service.AbstractService;
8+
import org.scijava.service.Service;
9+
10+
@Plugin(type= Service.class)
11+
public class DefaultOpEnvironmentService extends AbstractService implements
12+
OpEnvironmentService
13+
{
14+
15+
@Parameter(required=false)
16+
private ScriptService scriptService;
17+
18+
private OpEnvironment env;
19+
20+
@Override
21+
public void initialize() {
22+
env = OpEnvironment.build();
23+
24+
if (scriptService != null) {
25+
scriptService.addAlias(OpEnvironment.class);
26+
}
27+
}
28+
29+
@Override
30+
public OpEnvironment env() {
31+
return env;
32+
}
33+
}

scijava-ops-legacy/src/main/java/org/scijava/legacy/service/DefaultOpService.java

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.scijava.legacy.service;
2+
3+
import org.scijava.ops.api.OpEnvironment;
4+
import org.scijava.service.SciJavaService;
5+
import org.scijava.service.Service;
6+
7+
/**
8+
* A SciJava {@link Service} that instantiates a single {@link OpEnvironment}.
9+
*
10+
* The primary use case is in SciJava scripting, and within scripts this
11+
* service should not be used
12+
*/
13+
public interface OpEnvironmentService extends SciJavaService {
14+
15+
OpEnvironment env();
16+
17+
}

scijava-ops-legacy/src/main/java/org/scijava/legacy/service/OpService.java

Lines changed: 0 additions & 11 deletions
This file was deleted.

scijava-ops-legacy/src/test/java/org/scijava/legacy/module/process/OpEnvironmentPreprocessorTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package org.scijava.legacy.module.process;
22

3-
import org.junit.jupiter.api.Assertions;
43
import org.junit.jupiter.api.Test;
54
import org.scijava.Context;
65
import org.scijava.command.Command;
76
import org.scijava.command.CommandService;
8-
import org.scijava.legacy.service.OpService;
7+
import org.scijava.legacy.service.OpEnvironmentService;
98
import org.scijava.ops.api.OpEnvironment;
109
import org.scijava.plugin.Parameter;
1110

@@ -17,10 +16,10 @@ public class OpEnvironmentPreprocessorTest {
1716
public void testOpEnvironmentPreprocessor()
1817
throws ExecutionException, InterruptedException
1918
{
20-
final Context context = new Context(CommandService.class, OpService.class);
21-
final CommandService commandService = context.service(CommandService.class);
22-
var command = commandService.run(CommandWithOpEnvironment.class, true).get();
23-
Assertions.assertDoesNotThrow(command::run);
19+
var context = new Context(CommandService.class, OpEnvironmentService.class);
20+
var commandService = context.service(CommandService.class);
21+
commandService.run(CommandWithOpEnvironment.class, true).get();
22+
context.dispose();
2423
}
2524

2625
public static class CommandWithOpEnvironment implements Command {
@@ -31,7 +30,8 @@ public static class CommandWithOpEnvironment implements Command {
3130
@Override
3231
public void run() {
3332
if (env == null) {
34-
throw new IllegalArgumentException("OpEnvironment not properly injected!");
33+
throw new IllegalArgumentException(
34+
"OpEnvironment not properly injected!");
3535
}
3636
}
3737
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package org.scijava.legacy.service;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
import org.scijava.Context;
6+
import org.scijava.ops.api.OpEnvironment;
7+
import org.scijava.script.ScriptService;
8+
9+
public class OpEnvironmentServiceTest {
10+
11+
/**
12+
* Tests that an {@link OpEnvironmentService} produces an {@link OpEnvironment} with some
13+
* Ops in it.
14+
*/
15+
@Test
16+
public void testOpService() {
17+
Context ctx = new Context(OpEnvironmentService.class);
18+
OpEnvironmentService ops = ctx.getService(OpEnvironmentService.class);
19+
Double result = ops.env().binary("math.add") //
20+
.input(2., 3.) //
21+
.outType(Double.class) //
22+
.apply();
23+
Assertions.assertEquals(5., result);
24+
ctx.dispose();
25+
}
26+
27+
/**
28+
* Test that when a {@link ScriptService} is present, the "OpEnvironment"
29+
* alias points to {@link OpEnvironment}.
30+
*/
31+
@Test
32+
public void testOpEnvironmentAlias() {
33+
Context ctx = new Context(OpEnvironmentService.class, ScriptService.class);
34+
ScriptService script = ctx.getService(ScriptService.class);
35+
Assertions.assertEquals( //
36+
OpEnvironment.class, //
37+
script.getAliases().get("OpEnvironment") //
38+
);
39+
ctx.dispose();
40+
}
41+
42+
}

scijava-ops-legacy/src/test/java/org/scijava/legacy/service/OpServiceTest.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

0 commit comments

Comments
 (0)