summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
author Jeongik Cha <jeongik@google.com> 2019-06-30 19:53:19 -0700
committer android-build-merger <android-build-merger@google.com> 2019-06-30 19:53:19 -0700
commit218964e76eca4e4c86f2f2d486bbb4538e09bc10 (patch)
treef5572f7ccac05ae60800f77f4187857e64ddedad /java
parente34e7eacd1e13b8be667694755d9452b0295090a (diff)
parent7a22534a47a93c3a38a32d30e834a5af108947f3 (diff)
Merge "Enforce hidden api usage in vendor (soong)" am: e65d84c84c
am: 7a22534a47 Change-Id: Iffbacc0f98fb208e6f71919bcefa19cb0e57efca
Diffstat (limited to 'java')
-rw-r--r--java/aar.go2
-rw-r--r--java/droiddoc.go3
-rw-r--r--java/java.go16
-rw-r--r--java/java_test.go26
4 files changed, 43 insertions, 4 deletions
diff --git a/java/aar.go b/java/aar.go
index c9306de4d..ce3d1263c 100644
--- a/java/aar.go
+++ b/java/aar.go
@@ -510,7 +510,7 @@ type AARImport struct {
}
func (a *AARImport) sdkVersion() string {
- return String(a.properties.Sdk_version)
+ return proptools.StringDefault(a.properties.Sdk_version, defaultSdkVersion(a))
}
func (a *AARImport) minSdkVersion() string {
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 734b411a8..25101de81 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -23,6 +23,7 @@ import (
"strings"
"github.com/google/blueprint"
+ "github.com/google/blueprint/proptools"
)
var (
@@ -520,7 +521,7 @@ func JavadocHostFactory() android.Module {
var _ android.OutputFileProducer = (*Javadoc)(nil)
func (j *Javadoc) sdkVersion() string {
- return String(j.properties.Sdk_version)
+ return proptools.StringDefault(j.properties.Sdk_version, defaultSdkVersion(j))
}
func (j *Javadoc) minSdkVersion() string {
diff --git a/java/java.go b/java/java.go
index bf80cedee..7c84e766f 100644
--- a/java/java.go
+++ b/java/java.go
@@ -423,6 +423,18 @@ var (
usesLibTag = dependencyTag{name: "uses-library"}
)
+func defaultSdkVersion(ctx checkVendorModuleContext) string {
+ if ctx.SocSpecific() || ctx.DeviceSpecific() {
+ return "system_current"
+ }
+ return ""
+}
+
+type checkVendorModuleContext interface {
+ SocSpecific() bool
+ DeviceSpecific() bool
+}
+
type sdkDep struct {
useModule, useFiles, useDefaultLibs, invalidVersion bool
@@ -462,7 +474,7 @@ func (j *Module) shouldInstrumentStatic(ctx android.BaseModuleContext) bool {
}
func (j *Module) sdkVersion() string {
- return String(j.deviceProperties.Sdk_version)
+ return proptools.StringDefault(j.deviceProperties.Sdk_version, defaultSdkVersion(j))
}
func (j *Module) minSdkVersion() string {
@@ -1862,7 +1874,7 @@ type Import struct {
}
func (j *Import) sdkVersion() string {
- return String(j.properties.Sdk_version)
+ return proptools.StringDefault(j.properties.Sdk_version, defaultSdkVersion(j))
}
func (j *Import) minSdkVersion() string {
diff --git a/java/java_test.go b/java/java_test.go
index a4b20ceaf..96ecdb689 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -286,6 +286,32 @@ func TestSimple(t *testing.T) {
}
}
+func TestSdkVersion(t *testing.T) {
+ ctx := testJava(t, `
+ java_library {
+ name: "foo",
+ srcs: ["a.java"],
+ vendor: true,
+ }
+
+ java_library {
+ name: "bar",
+ srcs: ["b.java"],
+ }
+ `)
+
+ foo := ctx.ModuleForTests("foo", "android_common").Module().(*Library)
+ bar := ctx.ModuleForTests("bar", "android_common").Module().(*Library)
+
+ if foo.sdkVersion() != "system_current" {
+ t.Errorf("If sdk version of vendor module is empty, it must change to system_current.")
+ }
+
+ if bar.sdkVersion() != "" {
+ t.Errorf("If sdk version of non-vendor module is empty, it keeps empty.")
+ }
+}
+
func TestArchSpecific(t *testing.T) {
ctx := testJava(t, `
java_library {