Skip to content

Commit fd44f87

Browse files
committed
Resurrect ClasspathScanningSupport and deprecate it
Because jqwik and mainrunner are using it. @sormuras @jlink Please update your engines! 😉
1 parent 7861930 commit fd44f87

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*
2+
* Copyright 2015-2019 the original author or authors.
3+
*
4+
* All rights reserved. This program and the accompanying materials are
5+
* made available under the terms of the Eclipse Public License v2.0 which
6+
* accompanies this distribution and is available at
7+
*
8+
* https://www.eclipse.org/legal/epl-v20.html
9+
*/
10+
11+
package org.junit.platform.engine.support.filter;
12+
13+
import static org.apiguardian.api.API.Status.DEPRECATED;
14+
import static org.junit.platform.engine.Filter.composeFilters;
15+
16+
import java.util.ArrayList;
17+
import java.util.List;
18+
import java.util.function.Predicate;
19+
20+
import org.apiguardian.api.API;
21+
import org.junit.platform.commons.util.ClassFilter;
22+
import org.junit.platform.engine.DiscoveryFilter;
23+
import org.junit.platform.engine.EngineDiscoveryRequest;
24+
import org.junit.platform.engine.discovery.ClassNameFilter;
25+
import org.junit.platform.engine.discovery.PackageNameFilter;
26+
27+
/**
28+
* Support utility methods for classpath scanning.
29+
*
30+
* @since 1.0
31+
* @deprecated Please use {@link org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver}
32+
*/
33+
@Deprecated
34+
@API(status = DEPRECATED, since = "1.5")
35+
public final class ClasspathScanningSupport {
36+
37+
private ClasspathScanningSupport() {
38+
/* no-op */
39+
}
40+
41+
/**
42+
* Build a {@link Predicate} for fully qualified class names to be used for
43+
* classpath scanning from an {@link EngineDiscoveryRequest}.
44+
*
45+
* @param request the request to build a predicate from
46+
* @deprecated Please use {@link org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver}
47+
*/
48+
@Deprecated
49+
public static Predicate<String> buildClassNamePredicate(EngineDiscoveryRequest request) {
50+
List<DiscoveryFilter<String>> filters = new ArrayList<>();
51+
filters.addAll(request.getFiltersByType(ClassNameFilter.class));
52+
filters.addAll(request.getFiltersByType(PackageNameFilter.class));
53+
return composeFilters(filters).toPredicate();
54+
}
55+
56+
/**
57+
* Build a {@link ClassFilter} by combining the name predicate built by
58+
* {@link #buildClassNamePredicate(EngineDiscoveryRequest)} and the passed-in
59+
* class predicate.
60+
*
61+
* @param request the request to build a name predicate from
62+
* @param classPredicate the class predicate
63+
* @deprecated Please use {@link org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver}
64+
*/
65+
@Deprecated
66+
public static ClassFilter buildClassFilter(EngineDiscoveryRequest request, Predicate<Class<?>> classPredicate) {
67+
return ClassFilter.of(buildClassNamePredicate(request), classPredicate);
68+
}
69+
70+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* {@link org.junit.platform.engine.Filter}-related support classes intended to be
3+
* used by test engine implementations.
4+
*/
5+
6+
package org.junit.platform.engine.support.filter;

0 commit comments

Comments
 (0)