Skip to content

Commit 02c91b5

Browse files
committed
move code to JupiterConfiguration
Issue: #3717 Signed-off-by: yongjunhong <[email protected]>
1 parent f86c1d6 commit 02c91b5

File tree

7 files changed

+29
-24
lines changed

7 files changed

+29
-24
lines changed

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/Constants.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,15 @@ public final class Constants {
163163
*/
164164
public static final String DEACTIVATE_ALL_CONDITIONS_PATTERN = ClassNamePatternFilterUtils.ALL_PATTERN;
165165

166+
/**
167+
* A blank pattern used for class name filtering: {@value}
168+
*
169+
* <p>This constant is used to represent an empty or blank pattern in class name filtering operations.
170+
*
171+
* @see ClassNamePatternFilterUtils#BLANK
172+
*/
173+
public static final String BLANK = ClassNamePatternFilterUtils.BLANK;
174+
166175
/**
167176
* Property name used to set the default display name generator class name: {@value}
168177
*

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/config/CachingJupiterConfiguration.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.junit.jupiter.api.MethodOrderer;
2727
import org.junit.jupiter.api.TestInstance;
2828
import org.junit.jupiter.api.extension.ExecutionCondition;
29+
import org.junit.jupiter.api.extension.Extension;
2930
import org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope;
3031
import org.junit.jupiter.api.io.CleanupMode;
3132
import org.junit.jupiter.api.io.TempDirFactory;
@@ -47,13 +48,8 @@ public CachingJupiterConfiguration(JupiterConfiguration delegate) {
4748
}
4849

4950
@Override
50-
public Optional<String> getExtensionAutodetectionIncludePattern() {
51-
return delegate.getExtensionAutodetectionIncludePattern();
52-
}
53-
54-
@Override
55-
public Optional<String> getExtensionAutodetectionExcludePattern() {
56-
return delegate.getExtensionAutodetectionExcludePattern();
51+
public Predicate<Class<? extends Extension>> createExtensionFilterByPatterns() {
52+
return delegate.createExtensionFilterByPatterns();
5753
}
5854

5955
@Override

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/config/DefaultJupiterConfiguration.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.junit.jupiter.api.MethodOrderer;
2727
import org.junit.jupiter.api.TestInstance.Lifecycle;
2828
import org.junit.jupiter.api.extension.ExecutionCondition;
29+
import org.junit.jupiter.api.extension.Extension;
2930
import org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope;
3031
import org.junit.jupiter.api.io.CleanupMode;
3132
import org.junit.jupiter.api.io.TempDirFactory;
@@ -74,12 +75,19 @@ public DefaultJupiterConfiguration(ConfigurationParameters configurationParamete
7475
}
7576

7677
@Override
77-
public Optional<String> getExtensionAutodetectionIncludePattern() {
78+
public Predicate<Class<? extends Extension>> createExtensionFilterByPatterns() {
79+
Predicate<String> predicate = ClassNamePatternFilterUtils.includeMatchingClassNames(
80+
getExtensionAutodetectionIncludePattern().orElse(ClassNamePatternFilterUtils.ALL_PATTERN)) //
81+
.and(ClassNamePatternFilterUtils.excludeMatchingClassNames(
82+
getExtensionAutodetectionExcludePattern().orElse(ClassNamePatternFilterUtils.BLANK)));
83+
return clazz -> predicate.test(clazz.getName());
84+
}
85+
86+
private Optional<String> getExtensionAutodetectionIncludePattern() {
7887
return configurationParameters.get(EXTENSIONS_AUTODETECTION_INCLUDE_PROPERTY_NAME);
7988
}
8089

81-
@Override
82-
public Optional<String> getExtensionAutodetectionExcludePattern() {
90+
private Optional<String> getExtensionAutodetectionExcludePattern() {
8391
return configurationParameters.get(EXTENSIONS_AUTODETECTION_EXCLUDE_PROPERTY_NAME);
8492
}
8593

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/config/JupiterConfiguration.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.junit.jupiter.api.MethodOrderer;
2424
import org.junit.jupiter.api.TestInstance;
2525
import org.junit.jupiter.api.extension.ExecutionCondition;
26+
import org.junit.jupiter.api.extension.Extension;
2627
import org.junit.jupiter.api.extension.PreInterruptCallback;
2728
import org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope;
2829
import org.junit.jupiter.api.io.CleanupMode;
@@ -50,9 +51,7 @@ public interface JupiterConfiguration {
5051
String DEFAULT_TEST_CLASS_ORDER_PROPERTY_NAME = ClassOrderer.DEFAULT_ORDER_PROPERTY_NAME;;
5152
String DEFAULT_TEST_INSTANTIATION_EXTENSION_CONTEXT_SCOPE_PROPERTY_NAME = ExtensionContextScope.DEFAULT_SCOPE_PROPERTY_NAME;
5253

53-
Optional<String> getExtensionAutodetectionIncludePattern();
54-
55-
Optional<String> getExtensionAutodetectionExcludePattern();
54+
Predicate<Class<? extends Extension>> createExtensionFilterByPatterns();
5655

5756
Optional<String> getRawConfigurationParameter(String key);
5857

junit-jupiter-engine/src/main/java/org/junit/jupiter/engine/extension/MutableExtensionRegistry.java

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838
import org.junit.platform.commons.logging.LoggerFactory;
3939
import org.junit.platform.commons.support.ReflectionSupport;
4040
import org.junit.platform.commons.util.ClassLoaderUtils;
41-
import org.junit.platform.commons.util.ClassNamePatternFilterUtils;
4241
import org.junit.platform.commons.util.Preconditions;
4342
import org.junit.platform.commons.util.ServiceLoaderUtils;
4443

@@ -98,23 +97,14 @@ public static MutableExtensionRegistry createRegistryWithDefaultExtensions(Jupit
9897

9998
private static void registerAutoDetectedExtensions(MutableExtensionRegistry extensionRegistry,
10099
JupiterConfiguration configuration) {
101-
Predicate<Class<? extends Extension>> filter = createExtensionFilterByPatterns(
102-
configuration.getExtensionAutodetectionIncludePattern().orElse(ClassNamePatternFilterUtils.ALL_PATTERN),
103-
configuration.getExtensionAutodetectionExcludePattern().orElse(""));
100+
Predicate<Class<? extends Extension>> filter = configuration.createExtensionFilterByPatterns();
104101

105102
ServiceLoader<Extension> serviceLoader = ServiceLoader.load(Extension.class,
106103
ClassLoaderUtils.getDefaultClassLoader());
107104
ServiceLoaderUtils.filter(serviceLoader, filter) //
108105
.forEach(extensionRegistry::registerAutoDetectedExtension);
109106
}
110107

111-
private static Predicate<Class<? extends Extension>> createExtensionFilterByPatterns(String include,
112-
String exclude) {
113-
Predicate<String> predicate = ClassNamePatternFilterUtils.includeMatchingClassNames(include) //
114-
.and(ClassNamePatternFilterUtils.excludeMatchingClassNames(exclude));
115-
return clazz -> predicate.test(clazz.getName());
116-
}
117-
118108
/**
119109
* Factory for creating and populating a new registry from a list of
120110
* extension types and a parent registry.

junit-platform-commons/src/main/java/org/junit/platform/commons/util/ClassNamePatternFilterUtils.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ private ClassNamePatternFilterUtils() {
4343

4444
public static final String ALL_PATTERN = "*";
4545

46+
public static final String BLANK = "";
47+
4648
/**
4749
* Create a {@link Predicate} that can be used to exclude (i.e., filter out)
4850
* objects of type {@code T} whose fully qualified class names match any of

jupiter-tests/src/test/java/org/junit/jupiter/engine/extension/ExtensionRegistryTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ void newRegistryWithoutParentHasDefaultExtensions() {
6060
void newRegistryWithoutParentHasDefaultExtensionsPlusAutodetectedExtensionsLoadedViaServiceLoader() {
6161

6262
when(configuration.isExtensionAutoDetectionEnabled()).thenReturn(true);
63+
when(configuration.createExtensionFilterByPatterns()).thenReturn(__ -> true);
6364
registry = createRegistryWithDefaultExtensions(configuration);
6465

6566
List<Extension> extensions = registry.getExtensions(Extension.class);

0 commit comments

Comments
 (0)