Always drop deps from java_library with no srcs

This is the follow up from aosp/2750763

Test: CI and added unit test

Bug: 285952385
Change-Id: I64703ee4fa742b718ffb43f2af1b6ab43ddeb606
diff --git a/java/java.go b/java/java.go
index 3567dbe..48e13fe 100644
--- a/java/java.go
+++ b/java/java.go
@@ -2886,9 +2886,8 @@
 // depending on the module type.
 type bp2BuildJavaInfo struct {
 	// separates dependencies into dynamic dependencies and static dependencies.
-	DepLabels       *javaDependencyLabels
-	hasKotlin       bool
-	onlyProtoInSrcs bool
+	DepLabels *javaDependencyLabels
+	hasKotlin bool
 }
 
 func javaXsdTargetName(xsd android.XsdConfigBp2buildTargets) string {
@@ -2951,9 +2950,6 @@
 
 	staticDeps.Append(srcPartitions[xsdSrcPartition])
 
-	_, protoInSrcs := srcPartitions[protoSrcPartition]
-	onlyProtoInSrcs := protoInSrcs && len(srcPartitions) == 1
-
 	if !srcPartitions[logtagSrcPartition].IsEmpty() {
 		logtagsLibName := m.Name() + "_logtags"
 		ctx.CreateBazelTargetModule(
@@ -3091,9 +3087,8 @@
 	}
 
 	bp2BuildInfo := &bp2BuildJavaInfo{
-		DepLabels:       depLabels,
-		hasKotlin:       hasKotlin,
-		onlyProtoInSrcs: onlyProtoInSrcs,
+		DepLabels: depLabels,
+		hasKotlin: hasKotlin,
 	}
 
 	return commonAttrs, bp2BuildInfo, true
@@ -3137,17 +3132,12 @@
 	if !commonAttrs.Srcs.IsEmpty() {
 		deps.Append(exports) // we should only append these if there are sources to use them
 	} else if !deps.IsEmpty() {
-		if bp2BuildInfo.onlyProtoInSrcs {
-			// java_library does not accept deps when there are no srcs because
-			// there is no compilation happening, but it accepts exports.
-			// bp2build converts this module to 2 java_libraries + java_xx_proto_library + proto_library
-			// the non-empty deps here are not necessary for compiling the protos, in which case
-			// they're unnecessary as deps on the java_library as well since they aren't
-			// being propagated to any dependencies. So we can drop deps here.
-			deps = bazel.LabelListAttribute{}
-		} else {
-			ctx.ModuleErrorf("Module has direct dependencies but no sources. Bazel will not allow this.")
-		}
+		// java_library does not accept deps when there are no srcs because
+		// there is no compilation happening, but it accepts exports.
+		// The non-empty deps here are unnecessary as deps on the java_library
+		// since they aren't being propagated to any dependencies.
+		// So we can drop deps here.
+		deps = bazel.LabelListAttribute{}
 	}
 	var props bazel.BazelTargetModuleProperties
 	attrs := &javaLibraryAttributes{