Skip to content

Commit afb9e08

Browse files
committed
Switch over to slf4j
1 parent 0bcc8a3 commit afb9e08

20 files changed

Lines changed: 88 additions & 720 deletions

File tree

imagej/imagej2-legacy/src/test/java/net/imagej2/legacy/types/DatasetTypeExtractorTest.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import org.junit.jupiter.api.Test;
3737
import org.scijava.Context;
3838
import org.scijava.discovery.Discoverer;
39-
import org.scijava.log2.StderrLoggerFactory;
4039
import org.scijava.types.Any;
4140
import org.scijava.types.DefaultTypeReifier;
4241
import org.scijava.types.Types;
@@ -55,8 +54,7 @@ public class DatasetTypeExtractorTest {
5554
@Test
5655
public void testDatasetTypeExtractor() {
5756
// Create a TypeReifier
58-
var log = new StderrLoggerFactory().create();
59-
var reifier = new DefaultTypeReifier(log, Discoverer.all(
57+
var reifier = new DefaultTypeReifier(Discoverer.all(
6058
ServiceLoader::load));
6159
// Create a Dataset
6260
var ctx = new Context();
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package org.scijava.log2;
2+
3+
/**
4+
* A static utility class serving as the access point for logging to the {@link Logger} agreed to by the framework.
5+
* This class maintains a shared
6+
*
7+
* @author Gabriel Selzer
8+
*/
9+
public final class Logging {
10+
11+
/**
12+
* Stores the {@link Logger} used on each {@link Thread}.
13+
*/
14+
private static final ThreadLocal<Logger> localLogger =
15+
new InheritableThreadLocal<>()
16+
{
17+
18+
@Override
19+
protected Logger childValue( Logger parentValue) { return parentValue; }
20+
21+
@Override
22+
protected Logger initialValue() {
23+
return new StderrLoggerFactory().create();
24+
}
25+
};
26+
27+
28+
public static Logger getLogger() {
29+
return localLogger.get();
30+
}
31+
32+
public static void setLogger(final Logger logger) {
33+
localLogger.set(logger);
34+
}
35+
36+
}

scijava/scijava-ops-engine/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,10 @@
215215
<groupId>org.javassist</groupId>
216216
<artifactId>javassist</artifactId>
217217
</dependency>
218+
<dependency>
219+
<groupId>org.slf4j</groupId>
220+
<artifactId>slf4j-api</artifactId>
221+
</dependency>
218222
<dependency>
219223
<groupId>org.yaml</groupId>
220224
<artifactId>snakeyaml</artifactId>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@
4848
requires org.scijava.collections;
4949
requires org.scijava.discovery;
5050
requires org.scijava.function;
51-
requires org.scijava.log2;
5251
requires org.scijava.meta;
5352
requires org.scijava.parsington;
5453
requires org.scijava.priority;
@@ -59,6 +58,7 @@
5958
requires org.scijava.types;
6059

6160
requires org.javassist;
61+
requires org.slf4j;
6262
requires org.yaml.snakeyaml;
6363

6464

scijava/scijava-ops-engine/src/main/java/org/scijava/ops/engine/impl/DefaultOpEnvironment.java

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,23 +43,21 @@
4343
import java.util.Objects;
4444
import java.util.ServiceLoader;
4545
import java.util.Set;
46+
import java.util.function.BiConsumer;
4647
import java.util.stream.Collectors;
4748
import java.util.stream.StreamSupport;
4849

4950
import org.scijava.discovery.Discoverer;
5051
import org.scijava.discovery.ManualDiscoverer;
51-
import org.scijava.function.Consumers;
52-
import org.scijava.log2.Logger;
53-
import org.scijava.log2.StderrLoggerFactory;
5452
import org.scijava.meta.Versions;
5553
import org.scijava.ops.api.Hints;
5654
import org.scijava.ops.api.InfoTree;
5755
import org.scijava.ops.api.OpEnvironment;
5856
import org.scijava.ops.api.OpHistory;
5957
import org.scijava.ops.api.OpInfo;
6058
import org.scijava.ops.api.OpInstance;
61-
import org.scijava.ops.api.OpRequest;
6259
import org.scijava.ops.api.OpMatchingException;
60+
import org.scijava.ops.api.OpRequest;
6361
import org.scijava.ops.api.RichOp;
6462
import org.scijava.ops.engine.BaseOpHints.Adaptation;
6563
import org.scijava.ops.engine.BaseOpHints.DependencyMatching;
@@ -89,6 +87,8 @@
8987
import org.scijava.types.Nil;
9088
import org.scijava.types.TypeReifier;
9189
import org.scijava.types.Types;
90+
import org.slf4j.Logger;
91+
import org.slf4j.LoggerFactory;
9292

9393
/**
9494
* Default implementation of {@link OpEnvironment}, whose ops and related state
@@ -104,8 +104,6 @@ public class DefaultOpEnvironment implements OpEnvironment {
104104

105105
private final OpMatcher matcher;
106106

107-
private final Logger log;
108-
109107
private final TypeReifier typeService;
110108

111109
private final OpHistory history;
@@ -145,6 +143,8 @@ public class DefaultOpEnvironment implements OpEnvironment {
145143
*/
146144
private Hints environmentHints = null;
147145

146+
private final Logger log = LoggerFactory.getLogger(getClass());
147+
148148
public DefaultOpEnvironment(){
149149
this(Collections.emptyList());
150150
}
@@ -160,8 +160,7 @@ public DefaultOpEnvironment(
160160
this.discoverers = new ArrayList<>(discoverers);
161161
this.manDiscoverer = new ManualDiscoverer();
162162
this.discoverers.add(this.manDiscoverer);
163-
this.log = new StderrLoggerFactory().create();
164-
this.typeService = new DefaultTypeReifier(log, Discoverer.using(ServiceLoader::load));
163+
this.typeService = new DefaultTypeReifier(Discoverer.using(ServiceLoader::load));
165164
this.history = OpHistory.getOpHistory();
166165
matcher = new DefaultOpMatcher(Discoverer.using(ServiceLoader::load).discover(
167166
MatchingRoutine.class));
@@ -687,13 +686,13 @@ private synchronized void initOpDirectory() {
687686
if (opDirectory != null) return;
688687
Map<String, List<OpInfo>> tmp = new HashMap<>();
689688
// add all OpInfos that are directly discoverable
690-
discoverers.stream().flatMap(d -> d.discover(OpInfo.class).stream()).forEach(info -> addToOpIndex.accept(tmp, info, log));
689+
discoverers.stream().flatMap(d -> d.discover(OpInfo.class).stream()).forEach(info -> addToOpIndex.accept(tmp, info));
691690
List<OpInfoGenerator> generators = infoGenerators();
692691
discoverers.stream().flatMap(d -> d.discover(Op.class).stream()).forEach(o -> registerOpsFrom(tmp, o, generators));
693692
discoverers.stream().flatMap(d -> d.discover(OpCollection.class).stream()).forEach(o -> registerOpsFrom(tmp, o, generators));
694693
Set<OpInfo> infos = tmp.values().stream().flatMap(Collection::stream).map(info -> opsFromObject(info, generators)).flatMap(Collection::stream).collect(
695694
Collectors.toSet());
696-
infos.forEach(info -> addToOpIndex.accept(tmp, info, log));
695+
infos.forEach(info -> addToOpIndex.accept(tmp, info));
697696
opDirectory = tmp;
698697
}
699698

@@ -711,7 +710,7 @@ private List<OpInfo> opsFromObject(Object o, List<OpInfoGenerator> generators) {
711710
}
712711

713712
private void registerOpsFrom(final Map<String, List<OpInfo>> opDirectory, final Object o, List<OpInfoGenerator> generators) {
714-
opsFromObject(o, generators).forEach(info -> addToOpIndex.accept(opDirectory, info, log));
713+
opsFromObject(o, generators).forEach(info -> addToOpIndex.accept(opDirectory, info));
715714
}
716715

717716
private List<OpInfoGenerator> infoGenerators() {
@@ -730,7 +729,7 @@ private synchronized void initIdDirectory() {
730729
.forEach(info -> idDirectory.put(info.id(), info));
731730
}
732731

733-
private final Consumers.Arity3<Map<String, List<OpInfo>>, OpInfo, Logger> addToOpIndex = (final Map<String, List<OpInfo>> directory, final OpInfo opInfo, final Logger log) -> {
732+
private final BiConsumer<Map<String, List<OpInfo>>, OpInfo> addToOpIndex = (final Map<String, List<OpInfo>> directory, final OpInfo opInfo) -> {
734733
if (opInfo.names() == null || opInfo.names().isEmpty()) {
735734
log.error("Skipping Op " + opInfo.implementationName() + ":\n" +
736735
"Op implementation must provide name.");

0 commit comments

Comments
 (0)