diff options
53 files changed, 113 insertions, 110 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java index a5075f42a4..ebd4efccb7 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelRepositoryModule.java @@ -34,14 +34,10 @@ import com.google.devtools.build.lib.bazel.repository.HttpDownloadValue; import com.google.devtools.build.lib.bazel.repository.HttpFileFunction; import com.google.devtools.build.lib.bazel.repository.HttpJarFunction; import com.google.devtools.build.lib.bazel.repository.JarFunction; -import com.google.devtools.build.lib.bazel.repository.LocalRepositoryFunction; import com.google.devtools.build.lib.bazel.repository.MavenJarFunction; import com.google.devtools.build.lib.bazel.repository.MavenServerFunction; import com.google.devtools.build.lib.bazel.repository.NewGitRepositoryFunction; import com.google.devtools.build.lib.bazel.repository.NewHttpArchiveFunction; -import com.google.devtools.build.lib.bazel.repository.NewLocalRepositoryFunction; -import com.google.devtools.build.lib.bazel.repository.RepositoryDelegatorFunction; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction; import com.google.devtools.build.lib.bazel.repository.TarGzFunction; import com.google.devtools.build.lib.bazel.repository.ZipFunction; import com.google.devtools.build.lib.bazel.rules.android.AndroidNdkRepositoryFunction; @@ -52,12 +48,16 @@ import com.google.devtools.build.lib.bazel.rules.workspace.GitRepositoryRule; import com.google.devtools.build.lib.bazel.rules.workspace.HttpArchiveRule; import com.google.devtools.build.lib.bazel.rules.workspace.HttpFileRule; import com.google.devtools.build.lib.bazel.rules.workspace.HttpJarRule; -import com.google.devtools.build.lib.bazel.rules.workspace.LocalRepositoryRule; import com.google.devtools.build.lib.bazel.rules.workspace.MavenJarRule; import com.google.devtools.build.lib.bazel.rules.workspace.NewGitRepositoryRule; import com.google.devtools.build.lib.bazel.rules.workspace.NewHttpArchiveRule; -import com.google.devtools.build.lib.bazel.rules.workspace.NewLocalRepositoryRule; import com.google.devtools.build.lib.pkgcache.PackageCacheOptions; +import com.google.devtools.build.lib.rules.repository.LocalRepositoryFunction; +import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule; +import com.google.devtools.build.lib.rules.repository.NewLocalRepositoryFunction; +import com.google.devtools.build.lib.rules.repository.NewLocalRepositoryRule; +import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.runtime.BlazeCommand; import com.google.devtools.build.lib.runtime.BlazeModule; import com.google.devtools.build.lib.runtime.Command; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java index b0e39f34c0..c1961b95a4 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitCloneFunction.java @@ -14,10 +14,10 @@ package com.google.devtools.build.lib.bazel.repository; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.events.Reporter; import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.FileSystemUtils; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java index d0efe62082..433e355595 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/GitRepositoryFunction.java @@ -18,6 +18,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.bazel.rules.workspace.GitRepositoryRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.vfs.FileSystemUtils; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java index 824aa4add8..406673bc58 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpArchiveFunction.java @@ -18,6 +18,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.bazel.rules.workspace.HttpArchiveRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.vfs.FileSystemUtils; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java index 89c2f2c57a..db1d0a4306 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpDownloadFunction.java @@ -14,10 +14,10 @@ package com.google.devtools.build.lib.bazel.repository; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.events.Reporter; import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.SkyFunction; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java index 5621a0690c..e1917f270d 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpFileFunction.java @@ -19,6 +19,7 @@ import com.google.devtools.build.lib.bazel.rules.workspace.HttpFileRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.SkyFunctionException; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java index 9cbd4f6049..26d52de9c2 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/HttpJarFunction.java @@ -18,6 +18,7 @@ import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.bazel.rules.workspace.HttpJarRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.SkyFunctionException; import com.google.devtools.build.skyframe.SkyFunctionName; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/JarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/JarFunction.java index d432717765..b9fc40cc5e 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/JarFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/JarFunction.java @@ -15,7 +15,7 @@ package com.google.devtools.build.lib.bazel.repository; import com.google.common.base.Joiner; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction.RepositoryFunctionException; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.SkyFunction; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java index b74fc1fff6..e6d997aef6 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenJarFunction.java @@ -28,6 +28,7 @@ import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.syntax.EvalException; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java index b4c45e8761..6fca3a9bef 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/MavenServerFunction.java @@ -22,6 +22,7 @@ import com.google.devtools.build.lib.bazel.rules.workspace.MavenServerRule; import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.vfs.PathFragment; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java index 414522282a..5431342406 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/NewGitRepositoryFunction.java @@ -17,6 +17,7 @@ package com.google.devtools.build.lib.bazel.repository; import com.google.devtools.build.lib.bazel.rules.workspace.NewGitRepositoryRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.SkyFunctionException; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java index 2bc8248036..0acb940df2 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/TarGzFunction.java @@ -15,7 +15,7 @@ package com.google.devtools.build.lib.bazel.repository; import com.google.common.base.Optional; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction.RepositoryFunctionException; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java index 5951a37d48..f0783ec693 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/ZipFunction.java @@ -15,7 +15,7 @@ package com.google.devtools.build.lib.bazel.repository; import com.google.common.base.Optional; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction.RepositoryFunctionException; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java index 2e7f654655..aa25b8e2bb 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRuleClassProvider.java @@ -62,13 +62,10 @@ import com.google.devtools.build.lib.bazel.rules.workspace.GitRepositoryRule; import com.google.devtools.build.lib.bazel.rules.workspace.HttpArchiveRule; import com.google.devtools.build.lib.bazel.rules.workspace.HttpFileRule; import com.google.devtools.build.lib.bazel.rules.workspace.HttpJarRule; -import com.google.devtools.build.lib.bazel.rules.workspace.LocalRepositoryRule; import com.google.devtools.build.lib.bazel.rules.workspace.MavenJarRule; import com.google.devtools.build.lib.bazel.rules.workspace.MavenServerRule; import com.google.devtools.build.lib.bazel.rules.workspace.NewGitRepositoryRule; import com.google.devtools.build.lib.bazel.rules.workspace.NewHttpArchiveRule; -import com.google.devtools.build.lib.bazel.rules.workspace.NewLocalRepositoryRule; -import com.google.devtools.build.lib.bazel.rules.workspace.WorkspaceBaseRule; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.ideinfo.AndroidStudioInfoAspect; import com.google.devtools.build.lib.packages.Attribute; @@ -118,7 +115,10 @@ import com.google.devtools.build.lib.rules.objc.ObjcXcodeprojRule; import com.google.devtools.build.lib.rules.proto.BazelProtoLibraryRule; import com.google.devtools.build.lib.rules.python.PythonConfigurationLoader; import com.google.devtools.build.lib.rules.python.PythonOptions; -import com.google.devtools.build.lib.rules.workspace.BindRule; +import com.google.devtools.build.lib.rules.repository.BindRule; +import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule; +import com.google.devtools.build.lib.rules.repository.NewLocalRepositoryRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; import com.google.devtools.build.lib.util.ResourceFileLoader; import com.google.devtools.build.lib.vfs.PathFragment; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java index 55de864ecf..be1cbaf8fd 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryFunction.java @@ -15,7 +15,6 @@ package com.google.devtools.build.lib.bazel.rules.android; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.analysis.RuleDefinition; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction; import com.google.devtools.build.lib.bazel.rules.android.ndkcrosstools.AndroidNdkCrosstools; import com.google.devtools.build.lib.bazel.rules.android.ndkcrosstools.AndroidNdkCrosstools.NdkCrosstoolsException; import com.google.devtools.build.lib.bazel.rules.android.ndkcrosstools.ApiLevel; @@ -27,6 +26,7 @@ import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.skyframe.FileSymlinkException; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.InconsistentFilesystemException; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryRule.java index 65e5c91939..2afc5b52a8 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidNdkRepositoryRule.java @@ -22,13 +22,13 @@ import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.bazel.rules.android.ndkcrosstools.StlImpls; -import com.google.devtools.build.lib.bazel.rules.workspace.WorkspaceBaseRule; -import com.google.devtools.build.lib.bazel.rules.workspace.WorkspaceConfiguredTargetFactory; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; import java.util.Map; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java index db898fc575..1556ffe962 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryFunction.java @@ -14,11 +14,11 @@ package com.google.devtools.build.lib.bazel.rules.android; import com.google.devtools.build.lib.analysis.RuleDefinition; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.NonconfigurableAttributeMapper; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.ResourceFileLoader; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryRule.java index e6921ab334..f336a41e1d 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/AndroidSdkRepositoryRule.java @@ -21,13 +21,13 @@ import com.google.common.base.Function; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; -import com.google.devtools.build.lib.bazel.rules.workspace.WorkspaceBaseRule; -import com.google.devtools.build.lib.bazel.rules.workspace.WorkspaceConfiguredTargetFactory; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; import java.util.Map; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/GitRepositoryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/GitRepositoryRule.java index 7092a0c89e..48d4c63b14 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/GitRepositoryRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/GitRepositoryRule.java @@ -21,6 +21,8 @@ import static com.google.devtools.build.lib.syntax.Type.STRING; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; /** * Rule definition for the git_repository rule. diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpArchiveRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpArchiveRule.java index bf64480a2a..e8c340ec5a 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpArchiveRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpArchiveRule.java @@ -22,6 +22,8 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; /** * Rule definition for the http_archive rule. diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpFileRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpFileRule.java index 0d68d82d3b..ea513dab3f 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpFileRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpFileRule.java @@ -23,6 +23,8 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; /** * Rule definition for the http_file rule. diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpJarRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpJarRule.java index f7613e5c71..1cadc6bdd9 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpJarRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/HttpJarRule.java @@ -22,6 +22,8 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; /** * Rule definition for the http_jar rule. diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenJarRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenJarRule.java index 2d32337bbd..01f9a9e570 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenJarRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenJarRule.java @@ -21,6 +21,8 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; import com.google.devtools.build.lib.syntax.Type; /** diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenServerRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenServerRule.java index 2252400fd3..021c8d3d60 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenServerRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/MavenServerRule.java @@ -21,6 +21,8 @@ import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.RuleClass.Builder; import com.google.devtools.build.lib.packages.RuleClass.Builder.RuleClassType; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; import com.google.devtools.build.lib.syntax.Type; /** diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewGitRepositoryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewGitRepositoryRule.java index 30ab0b6199..a3615f3f15 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewGitRepositoryRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewGitRepositoryRule.java @@ -21,6 +21,8 @@ import static com.google.devtools.build.lib.syntax.Type.STRING; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; /** * Rule definition for the new_git_repository rule. diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewHttpArchiveRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewHttpArchiveRule.java index 1bda24ccf3..f3211c24af 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewHttpArchiveRule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewHttpArchiveRule.java @@ -20,6 +20,8 @@ import static com.google.devtools.build.lib.syntax.Type.STRING; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; import com.google.devtools.build.lib.packages.RuleClass; +import com.google.devtools.build.lib.rules.repository.WorkspaceBaseRule; +import com.google.devtools.build.lib.rules.repository.WorkspaceConfiguredTargetFactory; /** * Rule definition for the new_http_archive rule. diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java b/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java index ddde8ddbc3..e6bff64ef5 100644 --- a/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java +++ b/src/main/java/com/google/devtools/build/lib/pkgcache/PathPackageLocator.java @@ -53,7 +53,11 @@ public class PathPackageLocator implements Serializable { // representation is used as a key. We want a change to output base not to invalidate things. private final transient Path outputBase; - private PathPackageLocator(Path outputBase, List<Path> pathEntries) { + public static final PathPackageLocator EMPTY = + new PathPackageLocator(null, ImmutableList.<Path>of()); + + @VisibleForTesting + public PathPackageLocator(Path outputBase, List<Path> pathEntries) { this.outputBase = outputBase; this.pathEntries = ImmutableList.copyOf(pathEntries); } @@ -62,13 +66,6 @@ public class PathPackageLocator implements Serializable { * Constructs a PathPackageLocator based on the specified list of package root directories. */ @VisibleForTesting - public PathPackageLocator(List<Path> pathEntries) { - this(null, pathEntries); - } - - /** - * Constructs a PathPackageLocator based on the specified array of package root directories. - */ public PathPackageLocator(Path... pathEntries) { this(null, Arrays.asList(pathEntries)); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/workspace/Bind.java b/src/main/java/com/google/devtools/build/lib/rules/repository/Bind.java index a0dc80b2da..db927bc746 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/workspace/Bind.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/Bind.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.rules.workspace; +package com.google.devtools.build.lib.rules.repository; import com.google.common.collect.ImmutableCollection; import com.google.common.collect.ImmutableList; diff --git a/src/main/java/com/google/devtools/build/lib/rules/workspace/BindRule.java b/src/main/java/com/google/devtools/build/lib/rules/repository/BindRule.java index e8c6b9fb08..ff47bc06f7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/workspace/BindRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/BindRule.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.rules.workspace; +package com.google.devtools.build.lib.rules.repository; import static com.google.devtools.build.lib.packages.Attribute.attr; import static com.google.devtools.build.lib.packages.BuildType.LABEL; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java index fe62852c34..4d259a41d8 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/LocalRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryFunction.java @@ -12,10 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.repository; +package com.google.devtools.build.lib.rules.repository; import com.google.devtools.build.lib.analysis.RuleDefinition; -import com.google.devtools.build.lib.bazel.rules.workspace.LocalRepositoryRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.AggregatingAttributeMapper; import com.google.devtools.build.lib.packages.Rule; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/LocalRepositoryRule.java b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryRule.java index e68cffbd9b..fcfb9b0a55 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/LocalRepositoryRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/LocalRepositoryRule.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.rules.workspace; +package com.google.devtools.build.lib.rules.repository; import static com.google.devtools.build.lib.packages.Attribute.attr; import static com.google.devtools.build.lib.syntax.Type.STRING; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewLocalRepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java index cbf4341b2b..356173e660 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/NewLocalRepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryFunction.java @@ -12,10 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.repository; +package com.google.devtools.build.lib.rules.repository; import com.google.devtools.build.lib.analysis.RuleDefinition; -import com.google.devtools.build.lib.bazel.rules.workspace.NewLocalRepositoryRule; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.skyframe.FileValue; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewLocalRepositoryRule.java b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryRule.java index e9ce9f3cfb..f2a83b846e 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/NewLocalRepositoryRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/NewLocalRepositoryRule.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.rules.workspace; +package com.google.devtools.build.lib.rules.repository; import static com.google.devtools.build.lib.packages.Attribute.attr; import static com.google.devtools.build.lib.syntax.Type.STRING; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryDelegatorFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java index 135925006a..beb7381349 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryDelegatorFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryDelegatorFunction.java @@ -12,15 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.repository; +package com.google.devtools.build.lib.rules.repository; import com.google.common.collect.ImmutableMap; import com.google.devtools.build.lib.analysis.BlazeDirectories; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.cmdline.PackageIdentifier.RepositoryName; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.NoSuchPackageException; import com.google.devtools.build.lib.packages.Rule; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction.RepositoryFunctionException; import com.google.devtools.build.lib.skyframe.FileValue; import com.google.devtools.build.lib.skyframe.RepositoryValue; import com.google.devtools.build.lib.syntax.EvalException; @@ -58,7 +58,8 @@ public class RepositoryDelegatorFunction implements SkyFunction { @Override public SkyValue compute(SkyKey skyKey, Environment env) throws SkyFunctionException { RepositoryName repositoryName = (RepositoryName) skyKey.argument(); - Rule rule = RepositoryFunction.getRule(repositoryName, null, env); + Rule rule = RepositoryFunction + .getRule(repositoryName, null, env); if (rule == null) { return null; } @@ -68,7 +69,8 @@ public class RepositoryDelegatorFunction implements SkyFunction { // directory already exists and, if it does, just use that. if (!isFetch.get()) { FileValue repoRoot = RepositoryFunction.getRepositoryDirectory( - RepositoryFunction.getExternalRepositoryDirectory(directories) + RepositoryFunction + .getExternalRepositoryDirectory(directories) .getRelative(rule.getName()), env); if (repoRoot == null) { return null; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryFunction.java b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java index 87c28d56d5..93d3cf6c7e 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/RepositoryFunction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/RepositoryFunction.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.repository; +package com.google.devtools.build.lib.rules.repository; import com.google.common.base.Preconditions; import com.google.devtools.build.lib.analysis.BlazeDirectories; @@ -129,7 +129,7 @@ public abstract class RepositoryFunction implements SkyFunction { * @param directoryValue the FileValue corresponding to the external repository's root directory. * @param env the Skyframe environment. * @return the file value of the symlink created. - * @throws com.google.devtools.build.lib.bazel.repository.RepositoryFunction.RepositoryFunctionException if the BUILD file specified does not exist or cannot be + * @throws RepositoryFunctionException if the BUILD file specified does not exist or cannot be * linked. */ protected RepositoryValue symlinkBuildFile( diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/WorkspaceBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/repository/WorkspaceBaseRule.java index 3db0de0b8f..64bb1d526e 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/WorkspaceBaseRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/WorkspaceBaseRule.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.rules.workspace; +package com.google.devtools.build.lib.rules.repository; import com.google.devtools.build.lib.analysis.RuleDefinition; import com.google.devtools.build.lib.analysis.RuleDefinitionEnvironment; diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/WorkspaceConfiguredTargetFactory.java b/src/main/java/com/google/devtools/build/lib/rules/repository/WorkspaceConfiguredTargetFactory.java index 661d2f3af7..cf7a37dc4f 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/workspace/WorkspaceConfiguredTargetFactory.java +++ b/src/main/java/com/google/devtools/build/lib/rules/repository/WorkspaceConfiguredTargetFactory.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.devtools.build.lib.bazel.rules.workspace; +package com.google.devtools.build.lib.rules.repository; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder; diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java index 1f460699ba..449f39960a 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/BazelAnalysisMock.java @@ -18,21 +18,15 @@ import static com.google.devtools.build.lib.packages.BuildType.LABEL; import com.google.common.base.Functions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList.Builder; -import com.google.common.collect.ImmutableMap; import com.google.common.io.ByteStreams; -import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory; import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.util.AnalysisMock; -import com.google.devtools.build.lib.bazel.repository.LocalRepositoryFunction; -import com.google.devtools.build.lib.bazel.repository.RepositoryDelegatorFunction; -import com.google.devtools.build.lib.bazel.repository.RepositoryFunction; import com.google.devtools.build.lib.bazel.rules.BazelConfiguration; import com.google.devtools.build.lib.bazel.rules.BazelConfigurationCollection; import com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider; import com.google.devtools.build.lib.bazel.rules.python.BazelPythonConfiguration; -import com.google.devtools.build.lib.bazel.rules.workspace.LocalRepositoryRule; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.RuleClass; import com.google.devtools.build.lib.packages.util.MockToolsConfig; @@ -43,12 +37,9 @@ import com.google.devtools.build.lib.rules.java.JavaConfigurationLoader; import com.google.devtools.build.lib.rules.java.JvmConfigurationLoader; import com.google.devtools.build.lib.rules.objc.ObjcConfigurationLoader; import com.google.devtools.build.lib.rules.python.PythonConfigurationLoader; -import com.google.devtools.build.lib.skyframe.SkyFunctions; import com.google.devtools.build.lib.testutil.TestRuleClassProvider; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.Path; -import com.google.devtools.build.skyframe.SkyFunction; -import com.google.devtools.build.skyframe.SkyFunctionName; import java.io.IOException; import java.io.InputStream; @@ -56,7 +47,6 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; import java.util.List; -import java.util.concurrent.atomic.AtomicBoolean; public class BazelAnalysisMock extends AnalysisMock { public static final AnalysisMock INSTANCE = new BazelAnalysisMock(); @@ -248,20 +238,4 @@ public class BazelAnalysisMock extends AnalysisMock { public ImmutableList<Class<? extends FragmentOptions>> getBuildOptions() { return BazelRuleClassProvider.BUILD_OPTIONS; } - - @Override - public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions(BlazeDirectories directories) { - // Bazel will access tools using a local_repository rule, thus, we need to support those rules - // in test cases, too. So we need the appropriate SkyFunctions. - RepositoryFunction localRepositoryFunction = new LocalRepositoryFunction(); - localRepositoryFunction.setDirectories(directories); - ImmutableMap<String, RepositoryFunction> repositoryHandlers = ImmutableMap.of( - LocalRepositoryRule.NAME, localRepositoryFunction); - - return ImmutableMap.of( - SkyFunctions.REPOSITORY, - new RepositoryDelegatorFunction(directories, repositoryHandlers, new AtomicBoolean(true)), - localRepositoryFunction.getSkyFunctionName(), - localRepositoryFunction); - } } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java index 0d9ec51791..33ed3cdda4 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisMock.java @@ -20,12 +20,18 @@ import com.google.devtools.build.lib.analysis.ConfigurationCollectionFactory; import com.google.devtools.build.lib.analysis.config.ConfigurationFactory; import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.packages.util.MockToolsConfig; +import com.google.devtools.build.lib.rules.repository.LocalRepositoryFunction; +import com.google.devtools.build.lib.rules.repository.LocalRepositoryRule; +import com.google.devtools.build.lib.rules.repository.RepositoryDelegatorFunction; +import com.google.devtools.build.lib.rules.repository.RepositoryFunction; +import com.google.devtools.build.lib.skyframe.SkyFunctions; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.skyframe.SkyFunction; import com.google.devtools.build.skyframe.SkyFunctionName; import java.io.IOException; import java.util.Collection; +import java.util.concurrent.atomic.AtomicBoolean; /** * Create a mock client for the analysis phase, as well as a configuration factory. @@ -52,8 +58,19 @@ public abstract class AnalysisMock { public abstract ImmutableList<Class<? extends FragmentOptions>> getBuildOptions(); - public abstract ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions( - BlazeDirectories directories); + public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions(BlazeDirectories directories) { + // Some tests require the local_repository rule so we need the appropriate SkyFunctions. + RepositoryFunction localRepositoryFunction = new LocalRepositoryFunction(); + localRepositoryFunction.setDirectories(directories); + ImmutableMap<String, RepositoryFunction> repositoryHandlers = ImmutableMap.of( + LocalRepositoryRule.NAME, localRepositoryFunction); + + return ImmutableMap.of( + SkyFunctions.REPOSITORY, + new RepositoryDelegatorFunction(directories, repositoryHandlers, new AtomicBoolean(true)), + localRepositoryFunction.getSkyFunctionName(), + localRepositoryFunction); + } public static class Delegate extends AnalysisMock { private final AnalysisMock delegate; @@ -91,11 +108,5 @@ public abstract class AnalysisMock { public ImmutableList<Class<? extends FragmentOptions>> getBuildOptions() { return delegate.getBuildOptions(); } - - @Override - public ImmutableMap<SkyFunctionName, SkyFunction> getSkyFunctions( - BlazeDirectories directories) { - return delegate.getSkyFunctions(directories); - } } } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java index 5ca2aa8975..de4f0753d4 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/AnalysisTestCase.java @@ -131,7 +131,7 @@ public abstract class AnalysisTestCase extends FoundationTestCase { protected void setUp() throws Exception { super.setUp(); analysisMock = getAnalysisMock(); - pkgLocator = new PathPackageLocator(rootDirectory); + pkgLocator = new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)); directories = new BlazeDirectories(outputBase, outputBase, rootDirectory); workspaceStatusActionFactory = new AnalysisTestUtil.DummyWorkspaceStatusActionFactory(directories); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java index df14698d60..89c131f2ff 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java @@ -208,7 +208,8 @@ public abstract class BuildViewTestCase extends FoundationTestCase { getPrecomputedValues(), ImmutableList.<SkyValueDirtinessChecker>of()); skyframeExecutor.preparePackageLoading( - new PathPackageLocator(rootDirectory), ConstantRuleVisibility.PUBLIC, true, 7, "", + new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)), + ConstantRuleVisibility.PUBLIC, true, 7, "", UUID.randomUUID()); useConfiguration(); setUpSkyframe(); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java index c428cdf881..15fd7ad31a 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/ConfigurationTestCase.java @@ -82,9 +82,9 @@ public abstract class ConfigurationTestCase extends FoundationTestCase { protected void setUp() throws Exception { super.setUp(); workspace = rootDirectory; - ConfiguredRuleClassProvider ruleClassProvider = TestRuleClassProvider.getRuleClassProvider(); - PathPackageLocator pkgLocator = new PathPackageLocator(rootDirectory); + PathPackageLocator pkgLocator = + new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)); final PackageFactory pkgFactory; BlazeDirectories directories = new BlazeDirectories(outputBase, outputBase, rootDirectory); pkgFactory = new PackageFactory(ruleClassProvider); diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java index 97898229bb..6621537ee0 100644 --- a/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/packages/util/PackageLoadingTestCase.java @@ -86,7 +86,8 @@ public abstract class PackageLoadingTestCase extends FoundationTestCase { ImmutableList.<PrecomputedValue.Injected>of(), ImmutableList.<SkyValueDirtinessChecker>of()); skyframeExecutor.preparePackageLoading( - new PathPackageLocator(rootDirectory), ConstantRuleVisibility.PUBLIC, true, 7, "", + new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)), + ConstantRuleVisibility.PUBLIC, true, 7, "", UUID.randomUUID()); setUpSkyframe(parsePackageCacheOptions()); } diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java index 7cb2076cd4..f808432e44 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/ArtifactFunctionTest.java @@ -93,7 +93,7 @@ public class ArtifactFunctionTest { setupRoot(new CustomInMemoryFs()); AtomicReference<PathPackageLocator> pkgLocator = - new AtomicReference<>(new PathPackageLocator()); + new AtomicReference<>(PathPackageLocator.EMPTY); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator); differencer = new RecordingDifferencer(); evaluator = diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java index c7c7d5bc4f..e675a7d22a 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupFunctionTest.java @@ -48,7 +48,7 @@ public class ContainingPackageLookupFunctionTest extends FoundationTestCase { protected void setUp() throws Exception { super.setUp(); AtomicReference<PathPackageLocator> pkgLocator = - new AtomicReference<>(new PathPackageLocator(rootDirectory)); + new AtomicReference<>(new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory))); deletedPackages = new AtomicReference<>(ImmutableSet.<PackageIdentifier>of()); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator); TimestampGranularityMonitor tsgm = new TimestampGranularityMonitor(BlazeClock.instance()); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java index abeea7687e..deb2b9e0b6 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FileFunctionTest.java @@ -88,6 +88,7 @@ import javax.annotation.Nullable; public class FileFunctionTest { private CustomInMemoryFs fs; private Path pkgRoot; + private Path outputBase; private PathPackageLocator pkgLocator; private TimestampGranularityMonitor tsgm; private boolean fastMd5; @@ -106,7 +107,8 @@ public class FileFunctionTest { private void createFsAndRoot(CustomInMemoryFs fs) throws IOException { this.fs = fs; pkgRoot = fs.getRootDirectory().getRelative("root"); - pkgLocator = new PathPackageLocator(pkgRoot); + outputBase = fs.getRootDirectory().getRelative("output_base"); + pkgLocator = new PathPackageLocator(outputBase, ImmutableList.of(pkgRoot)); FileSystemUtils.createDirectoryAndParents(pkgRoot); } @@ -531,7 +533,7 @@ public class FileFunctionTest { @Test public void testSymlinkAcrossPackageRoots() throws Exception { Path otherPkgRoot = fs.getRootDirectory().getRelative("other_root"); - pkgLocator = new PathPackageLocator(pkgRoot, otherPkgRoot); + pkgLocator = new PathPackageLocator(outputBase, ImmutableList.of(pkgRoot, otherPkgRoot)); symlink("a", "/other_root/b"); assertValueChangesIfContentsOfFileChanges("/other_root/b", true, "a"); } diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java index e699f0ae29..c04e31ec0a 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesetEntryFunctionTest.java @@ -77,7 +77,8 @@ public final class FilesetEntryFunctionTest extends FoundationTestCase { protected void setUp() throws Exception { super.setUp(); - pkgLocator = new AtomicReference<>(new PathPackageLocator(rootDirectory)); + pkgLocator = new AtomicReference<>( + new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory))); AtomicReference<ImmutableSet<PackageIdentifier>> deletedPackages = new AtomicReference<>(ImmutableSet.<PackageIdentifier>of()); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java index 1f2a12d969..430c5bfe36 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/FilesystemValueCheckerTest.java @@ -54,7 +54,6 @@ import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyKey; import com.google.devtools.build.skyframe.SkyValue; -import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -94,7 +93,7 @@ public class FilesystemValueCheckerTest { tsgm = new TimestampGranularityMonitor(BlazeClock.instance()); AtomicReference<PathPackageLocator> pkgLocator = - new AtomicReference<>(new PathPackageLocator()); + new AtomicReference<>(PathPackageLocator.EMPTY); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator); skyFunctions.put(SkyFunctions.FILE_STATE, new FileStateFunction(tsgm, externalFilesHelper)); skyFunctions.put(SkyFunctions.FILE, new FileFunction(pkgLocator, tsgm, externalFilesHelper)); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java index 2c2b77acaa..4467329c52 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/GlobFunctionTest.java @@ -91,6 +91,7 @@ public abstract class GlobFunctionTest { private SequentialBuildDriver driver; private RecordingDifferencer differencer; private Path root; + private Path outputBase; private Path pkgPath; private AtomicReference<PathPackageLocator> pkgLocator; private TimestampGranularityMonitor tsgm; @@ -102,9 +103,10 @@ public abstract class GlobFunctionTest { fs = new CustomInMemoryFs(new ManualClock()); root = fs.getRootDirectory().getRelative("root/workspace"); + outputBase = fs.getRootDirectory().getRelative("output_base"); pkgPath = root.getRelative(PKG_PATH_ID.getPackageFragment()); - pkgLocator = new AtomicReference<>(new PathPackageLocator(root)); + pkgLocator = new AtomicReference<>(new PathPackageLocator(outputBase, ImmutableList.of(root))); tsgm = new TimestampGranularityMonitor(BlazeClock.instance()); differencer = new RecordingDifferencer(); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java index fb46d738a7..192a1bc286 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/RecursiveFilesystemTraversalFunctionTest.java @@ -73,7 +73,8 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe protected void setUp() throws Exception { super.setUp(); - pkgLocator = new AtomicReference<>(new PathPackageLocator(rootDirectory)); + pkgLocator = new AtomicReference<>( + new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory))); AtomicReference<ImmutableSet<PackageIdentifier>> deletedPackages = new AtomicReference<>(ImmutableSet.<PackageIdentifier>of()); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator); @@ -630,8 +631,8 @@ public final class RecursiveFilesystemTraversalFunctionTest extends FoundationTe // to the definition of //a/b/ under pp1, not under pp2. // Set the package paths. - pkgLocator.set( - new PathPackageLocator(rootDirectory.getRelative("pp1"), rootDirectory.getRelative("pp2"))); + pkgLocator.set(new PathPackageLocator(outputBase, + ImmutableList.of(rootDirectory.getRelative("pp1"), rootDirectory.getRelative("pp2")))); PrecomputedValue.PATH_PACKAGE_LOCATOR.set(differencer, pkgLocator.get()); Artifact aBuildArtifact = sourceArtifactUnderPackagePath("a/BUILD", "pp1"); diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java index 29470dda85..18c0d359c6 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkFileContentHashTests.java @@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.skyframe; +import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.packages.ConstantRuleVisibility; @@ -140,7 +141,7 @@ public class SkylarkFileContentHashTests extends BuildViewTestCase { private String getHash(String pkg, String name) throws Exception { getSkyframeExecutor() .preparePackageLoading( - new PathPackageLocator(rootDirectory), + new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory)), ConstantRuleVisibility.PUBLIC, true, 7, diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java index abd94d9f27..fef00d867c 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java @@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.skyframe; +import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.packages.ConstantRuleVisibility; @@ -37,7 +38,7 @@ public class SkylarkImportLookupFunctionTest extends BuildViewTestCase { Path alternativeRoot = scratch.dir("/root_2"); getSkyframeExecutor() .preparePackageLoading( - new PathPackageLocator(rootDirectory, alternativeRoot), + new PathPackageLocator(outputBase, ImmutableList.of(rootDirectory, alternativeRoot)), ConstantRuleVisibility.PUBLIC, true, 7, diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java index abd081c440..201f38334a 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java @@ -18,6 +18,7 @@ import static com.google.devtools.build.lib.actions.util.ActionCacheTestHelper.A import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.base.Predicates; +import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import com.google.common.collect.Range; @@ -42,18 +43,6 @@ import com.google.devtools.build.lib.buildtool.SkyframeBuilder; import com.google.devtools.build.lib.events.Reporter; import com.google.devtools.build.lib.events.StoredEventHandler; import com.google.devtools.build.lib.pkgcache.PathPackageLocator; -import com.google.devtools.build.lib.skyframe.ActionExecutionFunction; -import com.google.devtools.build.lib.skyframe.ActionLookupValue; -import com.google.devtools.build.lib.skyframe.ArtifactFunction; -import com.google.devtools.build.lib.skyframe.ArtifactValue; -import com.google.devtools.build.lib.skyframe.AspectValue; -import com.google.devtools.build.lib.skyframe.Builder; -import com.google.devtools.build.lib.skyframe.ExternalFilesHelper; -import com.google.devtools.build.lib.skyframe.FileFunction; -import com.google.devtools.build.lib.skyframe.FileStateFunction; -import com.google.devtools.build.lib.skyframe.PrecomputedValue; -import com.google.devtools.build.lib.skyframe.SkyFunctions; -import com.google.devtools.build.lib.skyframe.SkyframeActionExecutor; import com.google.devtools.build.lib.testutil.FoundationTestCase; import com.google.devtools.build.lib.testutil.TestUtils; import com.google.devtools.build.lib.util.AbruptExitException; @@ -143,7 +132,7 @@ public abstract class TimestampBuilderTestCase extends FoundationTestCase { final boolean keepGoing, @Nullable EvaluationProgressReceiver evaluationProgressReceiver) { AtomicReference<PathPackageLocator> pkgLocator = - new AtomicReference<>(new PathPackageLocator()); + new AtomicReference<>(new PathPackageLocator(outputBase, ImmutableList.<Path>of())); ExternalFilesHelper externalFilesHelper = new ExternalFilesHelper(pkgLocator); differencer = new RecordingDifferencer(); |