diff options
author | 2016-02-08 13:00:08 +0000 | |
---|---|---|
committer | 2016-02-09 12:16:38 +0000 | |
commit | 7841576856528c56253f2b5c89bb5885c0c63c9b (patch) | |
tree | 6734e8a9c8f320db4051919e1c49b3fd11fa35f8 /src | |
parent | 837e8ec5a22e8e3b6d7d90c0494bcf110f96235a (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')
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); } } } |