Extract java SdkMemberType instances as vars
This will allow them to be used from elsewhere in a follow up change.
Bug: 177892522
Test: m nothing
Change-Id: I60e94e148af5b1810aea7f724cba090b49ae758e
diff --git a/java/java.go b/java/java.go
index adb0c56..7258dce 100644
--- a/java/java.go
+++ b/java/java.go
@@ -68,9 +68,32 @@
func RegisterJavaSdkMemberTypes() {
// Register sdk member types.
android.RegisterSdkMemberType(javaHeaderLibsSdkMemberType)
+ android.RegisterSdkMemberType(javaLibsSdkMemberType)
+ android.RegisterSdkMemberType(javaBootLibsSdkMemberType)
+ android.RegisterSdkMemberType(javaTestSdkMemberType)
+}
+
+var (
+ // Supports adding java header libraries to module_exports and sdk.
+ javaHeaderLibsSdkMemberType = &librarySdkMemberType{
+ android.SdkMemberTypeBase{
+ PropertyName: "java_header_libs",
+ SupportsSdk: true,
+ },
+ func(_ android.SdkMemberContext, j *Library) android.Path {
+ headerJars := j.HeaderJars()
+ if len(headerJars) != 1 {
+ panic(fmt.Errorf("there must be only one header jar from %q", j.Name()))
+ }
+
+ return headerJars[0]
+ },
+ sdkSnapshotFilePathForJar,
+ copyEverythingToSnapshot,
+ }
// Export implementation classes jar as part of the sdk.
- exportImplementationClassesJar := func(_ android.SdkMemberContext, j *Library) android.Path {
+ exportImplementationClassesJar = func(_ android.SdkMemberContext, j *Library) android.Path {
implementationJars := j.ImplementationAndResourcesJars()
if len(implementationJars) != 1 {
panic(fmt.Errorf("there must be only one implementation jar from %q", j.Name()))
@@ -78,17 +101,17 @@
return implementationJars[0]
}
- // Register java implementation libraries for use only in module_exports (not sdk).
- android.RegisterSdkMemberType(&librarySdkMemberType{
+ // Supports adding java implementation libraries to module_exports but not sdk.
+ javaLibsSdkMemberType = &librarySdkMemberType{
android.SdkMemberTypeBase{
PropertyName: "java_libs",
},
exportImplementationClassesJar,
sdkSnapshotFilePathForJar,
copyEverythingToSnapshot,
- })
+ }
- // Register java boot libraries for use in sdk.
+ // Supports adding java boot libraries to module_exports and sdk.
//
// The build has some implicit dependencies (via the boot jars configuration) on a number of
// modules, e.g. core-oj, apache-xml, that are part of the java boot class path and which are
@@ -99,7 +122,7 @@
// either java_libs, or java_header_libs would end up exporting more information than was strictly
// necessary. The java_boot_libs property to allow those modules to be exported as part of the
// sdk/module_exports without exposing any unnecessary information.
- android.RegisterSdkMemberType(&librarySdkMemberType{
+ javaBootLibsSdkMemberType = &librarySdkMemberType{
android.SdkMemberTypeBase{
PropertyName: "java_boot_libs",
SupportsSdk: true,
@@ -110,16 +133,15 @@
exportImplementationClassesJar,
sdkSnapshotFilePathForJar,
onlyCopyJarToSnapshot,
- })
+ }
- // Register java test libraries for use only in module_exports (not sdk).
- android.RegisterSdkMemberType(&testSdkMemberType{
+ // Supports adding java test libraries to module_exports but not sdk.
+ javaTestSdkMemberType = &testSdkMemberType{
SdkMemberTypeBase: android.SdkMemberTypeBase{
PropertyName: "java_tests",
},
- })
-
-}
+ }
+)
// JavaInfo contains information about a java module for use by modules that depend on it.
type JavaInfo struct {
@@ -606,23 +628,6 @@
}
}
-var javaHeaderLibsSdkMemberType android.SdkMemberType = &librarySdkMemberType{
- android.SdkMemberTypeBase{
- PropertyName: "java_header_libs",
- SupportsSdk: true,
- },
- func(_ android.SdkMemberContext, j *Library) android.Path {
- headerJars := j.HeaderJars()
- if len(headerJars) != 1 {
- panic(fmt.Errorf("there must be only one header jar from %q", j.Name()))
- }
-
- return headerJars[0]
- },
- sdkSnapshotFilePathForJar,
- copyEverythingToSnapshot,
-}
-
// java_library builds and links sources into a `.jar` file for the device, and possibly for the host as well.
//
// By default, a java_library has a single variant that produces a `.jar` file containing `.class` files that were