Merge "Automatically add Java resources carried by static Java libraries." into jb-mr1-dev
diff --git a/core/definitions.mk b/core/definitions.mk
index 0f9dc30..bc4886c 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -1489,7 +1489,6 @@
 define transform-java-to-classes.jar
 @echo "target Java: $(PRIVATE_MODULE) ($(PRIVATE_CLASS_INTERMEDIATES_DIR))"
 $(call compile-java,$(TARGET_JAVAC),$(PRIVATE_BOOTCLASSPATH))
-$(hide) rm -rf $(PRIVATE_CLASS_INTERMEDIATES_DIR)
 endef
 
 # Override the above definitions if we want to do incremetal javac
@@ -1622,12 +1621,27 @@
 $(AAPT) add -k $@ $$_adtp_classes_dex && rm -f $$_adtp_classes_dex)
 endef
 
+# Add java resources added by the current module.
+#
 define add-java-resources-to-package
 $(call dump-words-to-file, $(PRIVATE_EXTRA_JAR_ARGS), $(dir $@)jar-arg-list)
 $(hide) jar uf $@ @$(dir $@)jar-arg-list
 @rm -f $(dir $@)jar-arg-list
 endef
 
+# Add java resources carried by static Java libraries.
+#
+define add-carried-java-resources
+$(hide) if [ -d $(PRIVATE_CLASS_INTERMEDIATES_DIR) ] ; then \
+    java_res_jar_flags=$$(find $(PRIVATE_CLASS_INTERMEDIATES_DIR) -type f -a -not -name "*.class" \
+        | sed -e "s?^$(PRIVATE_CLASS_INTERMEDIATES_DIR)/? -C $(PRIVATE_CLASS_INTERMEDIATES_DIR) ?"); \
+    if [ -n "$$java_res_jar_flags" ] ; then \
+        echo $$java_res_jar_flags >$(dir $@)java_res_jar_flags; \
+        jar uf $@ $$java_res_jar_flags; \
+    fi; \
+fi
+endef
+
 # Sign a package using the specified key/cert.
 #
 define sign-package
diff --git a/core/host_java_library.mk b/core/host_java_library.mk
index 6cc0b1f..5930da6 100644
--- a/core/host_java_library.mk
+++ b/core/host_java_library.mk
@@ -82,6 +82,7 @@
 	@echo "Host Jar: $(PRIVATE_MODULE) ($@)"
 	$(create-empty-package)
 	$(add-dex-to-package)
+	$(add-carried-java-resources)
 ifneq ($(extra_jar_args),)
 	$(add-java-resources-to-package)
 endif
diff --git a/core/java_library.mk b/core/java_library.mk
index 03e069d..6392108 100644
--- a/core/java_library.mk
+++ b/core/java_library.mk
@@ -77,6 +77,7 @@
 	@echo "target Jar: $(PRIVATE_MODULE) ($@)"
 	$(create-empty-package)
 	$(add-dex-to-package)
+	$(add-carried-java-resources)
 ifneq ($(extra_jar_args),)
 	$(add-java-resources-to-package)
 endif
diff --git a/core/package.mk b/core/package.mk
index c181ae4..145c0b2 100644
--- a/core/package.mk
+++ b/core/package.mk
@@ -413,6 +413,10 @@
 ifneq ($(full_classes_jar),)
 	$(add-dex-to-package)
 endif
+	$(add-carried-java-resources)
+ifneq ($(extra_jar_args),)
+	$(add-java-resources-to-package)
+endif
 	$(sign-package)
 	@# Alignment must happen after all other zip operations.
 	$(align-package)