Skip to content

Commit 9e9703c

Browse files
committed
Use access-filter for filtering gradle and junit metadata
1 parent a02c042 commit 9e9703c

File tree

5 files changed

+36
-174
lines changed

5 files changed

+36
-174
lines changed

common/utils/src/main/java/org/graalvm/buildtools/agent/AgentConfiguration.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,21 @@
4040
*/
4141
package org.graalvm.buildtools.agent;
4242

43+
import java.io.File;
44+
import java.io.IOException;
45+
import java.io.InputStream;
4346
import java.io.Serializable;
47+
import java.nio.file.CopyOption;
48+
import java.nio.file.Files;
49+
import java.nio.file.Path;
50+
import java.nio.file.StandardCopyOption;
4451
import java.util.ArrayList;
4552
import java.util.Collection;
4653
import java.util.List;
4754

4855
public class AgentConfiguration implements Serializable {
4956

57+
private static final String DEFAULT_ACCESS_FILTER_FILE = "/access-filter.json";
5058
private final Collection<String> callerFilterFiles;
5159
private final Collection<String> accessFilterFiles;
5260
private final Boolean builtinCallerFilter;
@@ -79,6 +87,7 @@ public AgentConfiguration(Collection<String> callerFilterFiles,
7987
AgentMode agentMode) {
8088
this.callerFilterFiles = callerFilterFiles;
8189
this.accessFilterFiles = accessFilterFiles;
90+
addDefaultAccessFilter();
8291
this.builtinCallerFilter = builtinCallerFilter;
8392
this.builtinHeuristicFilter = builtinHeuristicFilter;
8493
this.experimentalPredefinedClasses = experimentalPredefinedClasses;
@@ -127,4 +136,18 @@ private void addToCmd(String option, Boolean value, List<String> cmdLine) {
127136
}
128137
}
129138

139+
private void addDefaultAccessFilter() {
140+
try(InputStream accessFilter = AgentConfiguration.class.getResourceAsStream(DEFAULT_ACCESS_FILTER_FILE)) {
141+
if (accessFilter != null) {
142+
Path accessFilterPath = Files.createTempFile("access-filter", ".json");
143+
Files.copy(accessFilter, accessFilterPath, StandardCopyOption.REPLACE_EXISTING);
144+
accessFilterFiles.add(accessFilterPath.toString());
145+
} else {
146+
throw new IOException("Cannot find access-filter.json on default location: " + DEFAULT_ACCESS_FILTER_FILE);
147+
}
148+
} catch (IOException e) {
149+
throw new RuntimeException("Cannot add default access-filter.json" ,e);
150+
}
151+
}
152+
130153
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"rules": [
3+
{
4+
"includeClasses": "**"
5+
},
6+
{
7+
"excludeClasses": "org.gradle.**"
8+
},
9+
{
10+
"excludeClasses": "org.junit.**"
11+
}
12+
]
13+
}

native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/NativeImagePlugin.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@
6464
import org.graalvm.buildtools.gradle.tasks.NativeRunTask;
6565
import org.graalvm.buildtools.gradle.tasks.actions.CleanupAgentFilesAction;
6666
import org.graalvm.buildtools.gradle.tasks.actions.MergeAgentFilesAction;
67-
import org.graalvm.buildtools.gradle.tasks.actions.ProcessGeneratedGraalResourceFilesAction;
6867
import org.graalvm.buildtools.utils.SharedConstants;
6968
import org.graalvm.reachability.DirectoryConfiguration;
7069
import org.gradle.api.Action;
@@ -871,11 +870,6 @@ public void execute(@Nonnull Task task) {
871870
execOperations));
872871

873872
taskToInstrument.doLast(new CleanupAgentFilesAction(mergeInputDirs, fileOperations));
874-
875-
taskToInstrument.doLast(new ProcessGeneratedGraalResourceFilesAction(
876-
outputDir,
877-
graalExtension.getAgent().getFilterableEntries()
878-
));
879873
}
880874

881875
private static void injectTestPluginDependencies(Project project, Property<Boolean> testSupportEnabled) {

native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/internal/DefaultGraalVmExtension.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,6 @@ public DefaultGraalVmExtension(NamedDomainObjectContainer<NativeImageOptions> na
7878
agentOpts.getEnabled().convention(false);
7979
agentOpts.getModes().getConditional().getParallel().convention(true);
8080
agentOpts.getMetadataCopy().getMergeWithExisting().convention(false);
81-
// TODO: replace with agent access filter
82-
// agentOpts.getFilterableEntries().convention(Arrays.asList("org.gradle.", "org.junit."));
8381
agentOpts.getBuiltinHeuristicFilter().convention(true);
8482
agentOpts.getBuiltinCallerFilter().convention(true);
8583
agentOpts.getEnableExperimentalPredefinedClasses().convention(false);

native-gradle-plugin/src/main/java/org/graalvm/buildtools/gradle/tasks/actions/ProcessGeneratedGraalResourceFilesAction.java

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

0 commit comments

Comments
 (0)