aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Ulf Adams <ulfjack@google.com>2016-02-08 13:00:08 +0000
committerGravatar Dmitry Lomov <dslomov@google.com>2016-02-09 12:16:38 +0000
commit7841576856528c56253f2b5c89bb5885c0c63c9b (patch)
tree6734e8a9c8f320db4051919e1c49b3fd11fa35f8 /src
parent837e8ec5a22e8e3b6d7d90c0494bcf110f96235a (diff)
Merge LoadedPackageProvider.Bridge into LoadedPackageProvider.
This was the last implementation of the interface, so we don't really need the interface anymore. Also add a comment not to use this class. -- MOS_MIGRATED_REVID=114099495
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/BuildView.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationEnvironment.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java80
5 files changed, 44 insertions, 53 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index 3712e54e53..f278d3fc31 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -804,7 +804,7 @@ public class BuildView {
protected Target getTarget(Target from, Label label, NestedSetBuilder<Label> rootCauses) {
if (targetCache == null) {
try {
- return LoadedPackageProvider.Bridge.getLoadedTarget(
+ return LoadedPackageProvider.getLoadedTarget(
skyframeExecutor.getPackageManager(), eventHandler, label);
} catch (NoSuchThingException e) {
throw new IllegalStateException(e);
@@ -873,7 +873,7 @@ public class BuildView {
@Override
protected Target getTarget(Target from, Label label, NestedSetBuilder<Label> rootCauses) {
try {
- return LoadedPackageProvider.Bridge.getLoadedTarget(
+ return LoadedPackageProvider.getLoadedTarget(
skyframeExecutor.getPackageManager(), eventHandler, label);
} catch (NoSuchThingException e) {
throw new IllegalStateException(e);
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationEnvironment.java b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationEnvironment.java
index 441e84a1d2..1517ed5598 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationEnvironment.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/ConfigurationEnvironment.java
@@ -59,12 +59,12 @@ public interface ConfigurationEnvironment {
* An implementation backed by a {@link PackageProvider} instance.
*/
public static final class TargetProviderEnvironment implements ConfigurationEnvironment {
- private final LoadedPackageProvider.Bridge packageProvider;
+ private final LoadedPackageProvider packageProvider;
private final BlazeDirectories blazeDirectories;
public TargetProviderEnvironment(PackageProvider packageProvider,
EventHandler eventHandler, BlazeDirectories blazeDirectories) {
- this.packageProvider = new LoadedPackageProvider.Bridge(packageProvider, eventHandler);
+ this.packageProvider = new LoadedPackageProvider(packageProvider, eventHandler);
this.blazeDirectories = blazeDirectories;
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
index bac43de158..a37ff05691 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildTool.java
@@ -197,8 +197,8 @@ public final class BuildTool {
result.setActualTargets(analysisResult.getTargetsToBuild());
result.setTestTargets(analysisResult.getTargetsToTest());
- LoadedPackageProvider.Bridge bridge =
- new LoadedPackageProvider.Bridge(env.getPackageManager(), env.getReporter());
+ LoadedPackageProvider bridge =
+ new LoadedPackageProvider(env.getPackageManager(), env.getReporter());
checkTargetEnvironmentRestrictions(analysisResult.getTargetsToBuild(), bridge);
reportTargets(analysisResult);
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java b/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java
index 4aaf49d3d2..9b6b6841b3 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/LegacyLoadingPhaseRunner.java
@@ -397,10 +397,9 @@ public final class LegacyLoadingPhaseRunner extends LoadingPhaseRunner {
eventBus.post(new LoadingFailureEvent(entry.getKey(), entry.getValue()));
}
- LoadedPackageProvider.Bridge bridge =
- new LoadedPackageProvider.Bridge(packageManager, eventHandler);
+ LoadedPackageProvider packageProvider = new LoadedPackageProvider(packageManager, eventHandler);
return ImmutableSet.copyOf(Sets.difference(ImmutableSet.copyOf(targetsToLoad),
- getTargetsForLabels(bridge, rootCauses.keySet())));
+ getTargetsForLabels(packageProvider, rootCauses.keySet())));
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java b/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java
index 25648cef4f..7bbbb2dea9 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/LoadedPackageProvider.java
@@ -24,13 +24,23 @@ import com.google.devtools.build.lib.packages.Target;
import java.util.concurrent.Callable;
/**
- * Read-only API for retrieving packages, i.e., calling this API should not result in packages being
- * loaded.
+ * A bridge class that implements the legacy semantics of {@link #getLoadedTarget} using a normal
+ * {@link PackageProvider} instance.
*
- * <p><b>Concurrency</b>: Implementations should be thread-safe.
+ * <p>DO NOT USE! It will be removed when the transition to Skyframe is complete.
*/
-// TODO(bazel-team): Skyframe doesn't really implement this - can we remove it?
-public interface LoadedPackageProvider {
+public final class LoadedPackageProvider {
+ private final PackageProvider packageProvider;
+ private final EventHandler eventHandler;
+
+ public LoadedPackageProvider(PackageProvider packageProvider, EventHandler eventHandler) {
+ this.packageProvider = packageProvider;
+ this.eventHandler = eventHandler;
+ }
+
+ public EventHandler getEventHandler() {
+ return eventHandler;
+ }
/**
* Returns a target if it was recently loaded, i.e., since the most recent cache sync. This
@@ -38,48 +48,30 @@ public interface LoadedPackageProvider {
* surrounding package. If the surrounding package is in error, still attempts to retrieve the
* target.
*/
- Target getLoadedTarget(Label label) throws NoSuchPackageException, NoSuchTargetException;
+ public Target getLoadedTarget(Label label) throws NoSuchPackageException, NoSuchTargetException {
+ return getLoadedTarget(packageProvider, eventHandler, label);
+ }
/**
- * A bridge class that implements the legacy semantics of {@link #getLoadedTarget} using a
- * normal {@link PackageProvider} instance.
+ * Uninterruptible method to convert a label into a target using a given package provider and
+ * event handler.
*/
- public static final class Bridge implements LoadedPackageProvider {
- private final PackageProvider packageProvider;
- private final EventHandler eventHandler;
-
- public Bridge(PackageProvider packageProvider, EventHandler eventHandler) {
- this.packageProvider = packageProvider;
- this.eventHandler = eventHandler;
- }
-
- @Override
- public Target getLoadedTarget(Label label)
- throws NoSuchPackageException, NoSuchTargetException {
- return getLoadedTarget(packageProvider, eventHandler, label);
- }
-
- /**
- * Uninterruptible method to convert a label into a target using a given package provider and
- * event handler.
- */
- @VisibleForTesting
- public static Target getLoadedTarget(
- final PackageProvider packageProvider, final EventHandler eventHandler, final Label label)
- throws NoSuchPackageException, NoSuchTargetException {
- try {
- return Uninterruptibles.callUninterruptibly(new Callable<Target>() {
- @Override
- public Target call()
- throws NoSuchPackageException, NoSuchTargetException, InterruptedException {
- return packageProvider.getTarget(eventHandler, label);
- }
- });
- } catch (NoSuchPackageException | NoSuchTargetException e) {
- throw e;
- } catch (Exception e) {
- throw new IllegalStateException(e);
- }
+ @VisibleForTesting
+ public static Target getLoadedTarget(
+ final PackageProvider packageProvider, final EventHandler eventHandler, final Label label)
+ throws NoSuchPackageException, NoSuchTargetException {
+ try {
+ return Uninterruptibles.callUninterruptibly(new Callable<Target>() {
+ @Override
+ public Target call()
+ throws NoSuchPackageException, NoSuchTargetException, InterruptedException {
+ return packageProvider.getTarget(eventHandler, label);
+ }
+ });
+ } catch (NoSuchPackageException | NoSuchTargetException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new IllegalStateException(e);
}
}
}