aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Carmi Grushko <carmi@google.com>2016-05-23 11:28:49 +0000
committerGravatar Yue Gan <yueg@google.com>2016-05-23 13:08:17 +0000
commit7777e6f68ceb1b616292567b71b402c95de59e80 (patch)
tree6d183f9a74596a12220d18f5fab80b27a5851b23 /src/main/java/com/google/devtools
parent5a77623179445f22a3d6daf92669ddcfe0fd4c68 (diff)
JavaLibraryHelper: do not handle jars in deps.
To use jars in deps, wrap them in java_import. -- MOS_MIGRATED_REVID=122985072
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java41
1 files changed, 8 insertions, 33 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
index fe9d5d2617..969ce07dc7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
@@ -16,11 +16,9 @@ package com.google.devtools.build.lib.rules.java;
import static com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode.OFF;
-import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.analysis.FileProvider;
import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.Runfiles;
@@ -36,7 +34,6 @@ import com.google.devtools.build.lib.rules.cpp.CcLinkParamsProvider;
import com.google.devtools.build.lib.rules.cpp.CcLinkParamsStore;
import com.google.devtools.build.lib.rules.cpp.CcSpecificLinkParamsProvider;
import com.google.devtools.build.lib.rules.java.JavaConfiguration.JavaClasspathMode;
-import com.google.devtools.build.lib.util.FileType;
import com.google.devtools.build.lib.util.Preconditions;
import java.util.ArrayList;
@@ -58,17 +55,6 @@ public final class JavaLibraryHelper {
private static final String DEFAULT_SUFFIX_IS_EMPTY_STRING = "";
/**
- * Function for extracting the {@link JavaCompilationArgs} - note that it also handles .jar files.
- */
- private static final Function<TransitiveInfoCollection, JavaCompilationArgsProvider>
- TO_COMPILATION_ARGS = new Function<TransitiveInfoCollection, JavaCompilationArgsProvider>() {
- @Override
- public JavaCompilationArgsProvider apply(TransitiveInfoCollection target) {
- return forTarget(target);
- }
- };
-
- /**
* Contains the providers as well as the compilation outputs.
*/
public static final class Info {
@@ -302,26 +288,15 @@ public final class JavaLibraryHelper {
}
private Iterable<JavaCompilationArgsProvider> transformDeps() {
- return Iterables.transform(deps, TO_COMPILATION_ARGS);
- }
-
- private static JavaCompilationArgsProvider forTarget(TransitiveInfoCollection target) {
- if (target.getProvider(JavaCompilationArgsProvider.class) != null) {
- // If the target has JavaCompilationArgs, we use those.
- return target.getProvider(JavaCompilationArgsProvider.class);
- } else {
- // Otherwise we look for any jar files. It would be good to remove this, and require
- // intermediate java_import rules in these cases.
- NestedSet<Artifact> filesToBuild =
- target.getProvider(FileProvider.class).getFilesToBuild();
- final List<Artifact> jars = new ArrayList<>();
- Iterables.addAll(jars, FileType.filter(filesToBuild, JavaSemantics.JAR));
- JavaCompilationArgs args = JavaCompilationArgs.builder()
- .addCompileTimeJars(jars)
- .addRuntimeJars(jars)
- .build();
- return new JavaCompilationArgsProvider(args, args);
+ ImmutableList.Builder<JavaCompilationArgsProvider> result = ImmutableList.builder();
+ for (TransitiveInfoCollection target : deps) {
+ JavaCompilationArgsProvider argsProvider =
+ target.getProvider(JavaCompilationArgsProvider.class);
+ if (argsProvider != null) {
+ result.add(argsProvider);
+ }
}
+ return result.build();
}
private boolean isStrict() {