Move validation from FindDeapexerProviderForModule to rdeps

FindDeapexerProviderForModule raises an exception if multiple apexes in
the tree has an export dep on the java module. In prepartation to
support multiple prebuilts, move this error check out of
FindDeapexerProviderForModule and into rdeps. i.e. raise an exception
only if an rdep calls DexJarBuildPath

- This should be a no-op for now.
- In the short-term future, a java import module will be allowed to have
  multiple deapexers. An error will be raised if anyone actually tries
  to depend on the dexjar
- In the long-term future, this function will be removed. All processing
  will be done at the prebuilt apex level and not at the prebuilt java
  library level

Since this check now happens in the moduleCtx of rdeps, add some
additional props to unit tests to ensure that it does not exit early on
unrelated validation checks (e.g. hidden_api prop is not set)

Test: go test ./apex ./java
Bug: 308790457

Change-Id: I3323d993c1ea8f43305834cae8e65b6fe41dfefd
This commit is contained in:
Spandan Das
2023-12-12 23:23:53 +00:00
parent 2069c3f74d
commit fae468ef14
6 changed files with 59 additions and 18 deletions

View File

@@ -193,7 +193,10 @@ func (p *prebuiltCommon) dexpreoptSystemServerJars(ctx android.ModuleContext) {
}
// Use apex_name to determine the api domain of this prebuilt apex
apexName := p.ApexVariationName()
di := android.FindDeapexerProviderForModule(ctx)
di, err := android.FindDeapexerProviderForModule(ctx)
if err != nil {
ctx.ModuleErrorf(err.Error())
}
dc := dexpreopt.GetGlobalConfig(ctx)
systemServerJarList := dc.AllApexSystemServerJars(ctx)