| package(default_visibility = ["//visibility:__pkg__"]) | 
 |  | 
 | licenses(["notice"])  # Apache License 2.0 | 
 |  | 
 | exports_files(["LICENSE"]) | 
 |  | 
 | sh_test( | 
 |     name = "ijar_test", | 
 |     size = "enormous", | 
 |     srcs = ["ijar_test.sh"], | 
 |     args = [ | 
 |         "$(JAVABASE)/bin/javac", | 
 |         "$(JAVABASE)/bin/java", | 
 |         "$(JAVABASE)/bin/jar", | 
 |         "$(JAVABASE)/bin/javap", | 
 |         "$(location //third_party/ijar)", | 
 |         # We assume unzip and zip to be on the path | 
 |         "unzip", | 
 |         "zip", | 
 |         "$(location :zip_count)", | 
 |     ], | 
 |     data = [ | 
 |         "testenv.sh", | 
 |         "//src/test/shell:bashunit", | 
 |         "//third_party/ijar", | 
 |         "A.java", | 
 |         "B.java", | 
 |         "Object.java", | 
 |         "WellCompressed1.java", | 
 |         "WellCompressed2.java", | 
 |         ":libtypeannotations2.jar", | 
 |         ":libmethodparameters.jar", | 
 |         # This is a precompiled .jar file because it needs to be compiled with JDK 11. | 
 |         # TODO(cushon): build from source once we have a JDK 11 | 
 |         "nestmates/nestmates.jar", | 
 |         "records/records.jar", | 
 |         "sealed/sealed.jar", | 
 |         ":source_debug_extension.jar", | 
 |         ":keep_for_compile_lib.jar", | 
 |         ":largest_regular.jar", | 
 |         ":smallest_zip64.jar", | 
 |         ":definitely_zip64.jar", | 
 |         ":zip_count", | 
 |         "TypeAnnotationTest2.java", | 
 |         ":libinvokedynamic.jar", | 
 |         # Intentionally bad test JAR: file count in central directory | 
 |         # wrong. | 
 |         "libwrongcentraldir.jar", | 
 |         "@bazel_tools//tools/jdk:current_java_runtime", | 
 |     ], | 
 |     shard_count = 5, | 
 |     tags = ["zip"], | 
 |     toolchains = [ | 
 |         "@bazel_tools//tools/jdk:current_java_runtime", | 
 |     ], | 
 | ) | 
 |  | 
 | sh_test( | 
 |     name = "zip_test", | 
 |     size = "large", | 
 |     srcs = ["zip_test.sh"], | 
 |     args = [ | 
 |         "$(location //third_party/ijar:zipper)", | 
 |         # We assume unzip and zip to be on the path | 
 |         "unzip", | 
 |         "zip", | 
 |     ], | 
 |     data = [ | 
 |         "testenv.sh", | 
 |         "//src/test/shell:bashunit", | 
 |         "//third_party/ijar:zipper", | 
 |     ], | 
 |     tags = ["zip"], | 
 | ) | 
 |  | 
 | java_library( | 
 |     name = "invokedynamic", | 
 |     testonly = 1, | 
 |     srcs = ["invokedynamic/ClassWithLambda.java"], | 
 | ) | 
 |  | 
 | # For testing purposes: a class which exposes a private nested class in | 
 | # public API, classes with annotations and a class with different forms of | 
 | # deprecations markers | 
 | java_library( | 
 |     name = "ijar_testlib", | 
 |     srcs = [ | 
 |         "AnnotatedClass.java", | 
 |         "Annotations.java", | 
 |         "DeprecatedParts.java", | 
 |         "DumbClass.java", | 
 |         "EnclosingMethod.java", | 
 |         "PrivateMembersClass.java", | 
 |     ], | 
 | ) | 
 |  | 
 | # For testing purposes: an interface jar (ijar) which includes the | 
 | # interface view of the various test class from above. | 
 | genrule( | 
 |     name = "interface_ijar_testlib", | 
 |     srcs = [":ijar_testlib"], | 
 |     outs = ["interface_ijar_testlib.jar"], | 
 |     cmd = "$(location //third_party/ijar) $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "interface_ijar_testlib_with_target_label", | 
 |     srcs = [":ijar_testlib"], | 
 |     outs = ["interface_ijar_testlib_with_target_label.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --injecting_rule_kind foo_library $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "interface_ijar_testlib_nostrip", | 
 |     srcs = [":ijar_testlib"], | 
 |     outs = ["interface_ijar_testlib_nostrip.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_with_manifest_nostrip", | 
 |     srcs = ["jar-with-manifest.jar"], | 
 |     outs = ["jar-with-manifest-nostrip.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_with_manifest_and_target_label_nostrip", | 
 |     srcs = ["jar-with-manifest-and-target-label.jar"], | 
 |     outs = ["jar-with-manifest-and-target-label-nostrip.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_without_manifest_nostrip", | 
 |     srcs = ["jar-without-manifest.jar"], | 
 |     outs = ["jar-without-manifest-nostrip.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_with_manifest_sections_nostrip", | 
 |     testonly = 1, | 
 |     srcs = [":jar_with_manifest_sections"], | 
 |     outs = ["jar-with-manifest-sections-nostrip.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_with_target_label_and_manifest_sections_nostrip", | 
 |     testonly = 1, | 
 |     srcs = [":jar_with_target_label_and_manifest_sections"], | 
 |     outs = ["jar-with-target-label-and-manifest-sections-nostrip.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_without_manifest_nostrip_idempotence", | 
 |     srcs = ["jar-without-manifest-nostrip.jar"], | 
 |     outs = ["jar-without-manifest-nostrip-idempotence.jar"], | 
 |     cmd = "$(location //third_party/ijar) --target_label //foo:foo --nostrip_jar $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "empty_with_target_label", | 
 |     srcs = [":empty_zip.jar"], | 
 |     outs = ["empty_with_target_label.jar"], | 
 |     cmd = "$(location //third_party/ijar) $< $@ --target_label //empty", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | java_library( | 
 |     name = "typeannotations2", | 
 |     srcs = glob(["typeannotations2/**/*.java"]), | 
 | ) | 
 |  | 
 | java_library( | 
 |     name = "methodparameters", | 
 |     srcs = ["methodparameters/Test.java"], | 
 |     javacopts = ["-parameters"], | 
 | ) | 
 |  | 
 | java_binary( | 
 |     name = "gen_source_debug_extension", | 
 |     srcs = ["GenSourceDebugExtension.java"], | 
 |     main_class = "test.GenSourceDebugExtension", | 
 |     deps = ["//third_party:asm"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "gen_source_debug_extension_jar", | 
 |     srcs = [], | 
 |     outs = ["source_debug_extension.jar"], | 
 |     cmd = "$(location :gen_source_debug_extension) $@", | 
 |     tools = ["gen_source_debug_extension"], | 
 | ) | 
 |  | 
 | java_library( | 
 |     name = "local_and_anonymous_lib", | 
 |     srcs = ["LocalAndAnonymous.java"], | 
 |     javacopts = ["-source 8 -target 8"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "local_and_anonymous_interface", | 
 |     srcs = [":local_and_anonymous_lib"], | 
 |     outs = ["local_and_anonymous-interface.jar"], | 
 |     cmd = "$(location //third_party/ijar) $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | java_binary( | 
 |     name = "GenKeepForCompile", | 
 |     testonly = 1, | 
 |     srcs = ["GenKeepForCompile.java"], | 
 |     main_class = "GenKeepForCompile", | 
 |     deps = [ | 
 |         "//third_party:asm", | 
 |     ], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "keep_for_compile_lib", | 
 |     testonly = 1, | 
 |     outs = ["keep_for_compile_lib.jar"], | 
 |     cmd = "$(location :GenKeepForCompile) $@", | 
 |     tools = [":GenKeepForCompile"], | 
 | ) | 
 |  | 
 | java_binary( | 
 |     name = "GenModuleInfo", | 
 |     testonly = 1, | 
 |     srcs = ["GenModuleInfo.java"], | 
 |     main_class = "GenModuleInfo", | 
 |     deps = ["//third_party:guava"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "module_info", | 
 |     testonly = 1, | 
 |     outs = ["module_info.jar"], | 
 |     cmd = "$(location :GenModuleInfo) $@", | 
 |     tools = [":GenModuleInfo"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "module_info_interface", | 
 |     testonly = 1, | 
 |     srcs = [":module_info.jar"], | 
 |     outs = ["module_info-interface.jar"], | 
 |     cmd = "$(location //third_party/ijar) $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | java_binary( | 
 |     name = "GenKotlinModule", | 
 |     testonly = 1, | 
 |     srcs = ["GenKotlinModule.java"], | 
 |     main_class = "GenKotlinModule", | 
 |     deps = ["//third_party:guava"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "kotlin_module", | 
 |     testonly = 1, | 
 |     outs = ["kotlin_module.jar"], | 
 |     cmd = "$(location :GenKotlinModule) $@", | 
 |     tools = [":GenKotlinModule"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "kotlin_module_interface", | 
 |     testonly = 1, | 
 |     srcs = [":kotlin_module.jar"], | 
 |     outs = ["kotlin_module-interface.jar"], | 
 |     cmd = "$(location //third_party/ijar) $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | java_binary( | 
 |     name = "GenScalaTasty", | 
 |     testonly = 1, | 
 |     srcs = ["GenScalaTasty.java"], | 
 |     main_class = "GenScalaTasty", | 
 |     deps = ["//third_party:guava"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "scala_tasty", | 
 |     testonly = 1, | 
 |     outs = ["scala_tasty.jar"], | 
 |     cmd = "$(location :GenScalaTasty) $@", | 
 |     tools = [":GenScalaTasty"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "scala_tasty-interface", | 
 |     testonly = 1, | 
 |     srcs = [":scala_tasty.jar"], | 
 |     outs = ["scala_tasty-interface.jar"], | 
 |     cmd = "$(location //third_party/ijar) $< $@", | 
 |     tools = ["//third_party/ijar"], | 
 | ) | 
 |  | 
 | java_binary( | 
 |     name = "GenJarWithManifestSections", | 
 |     testonly = 1, | 
 |     srcs = ["GenJarWithManifestSections.java"], | 
 |     main_class = "GenJarWithManifestSections", | 
 |     deps = ["//third_party:guava"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_with_manifest_sections", | 
 |     testonly = 1, | 
 |     outs = ["jar-with-manifest-sections.jar"], | 
 |     cmd = "$(location :GenJarWithManifestSections) $@", | 
 |     tools = [":GenJarWithManifestSections"], | 
 | ) | 
 |  | 
 | genrule( | 
 |     name = "jar_with_target_label_and_manifest_sections", | 
 |     testonly = 1, | 
 |     outs = ["jar-with-target-label-and-manifest-sections.jar"], | 
 |     cmd = "$(location :GenJarWithManifestSections) $@ //not:this", | 
 |     tools = [":GenJarWithManifestSections"], | 
 | ) | 
 |  | 
 | java_test( | 
 |     name = "IjarTests", | 
 |     size = "small", | 
 |     srcs = [ | 
 |         "IjarTests.java", | 
 |         "StripVerifyingVisitor.java", | 
 |     ], | 
 |     data = [ | 
 |         "PrivateNestedClass.java", | 
 |         "UseDeprecatedParts.java", | 
 |         "UseRestrictedAnnotation.java", | 
 |         "jar-with-manifest.jar", | 
 |         "jar-with-manifest-and-target-label.jar", | 
 |         "jar-with-manifest-sections.jar", | 
 |         "jar-without-manifest.jar", | 
 |         "package-info.java", | 
 |         ":empty_with_target_label", | 
 |         ":ijar_testlib", | 
 |         ":interface_ijar_testlib", | 
 |         ":interface_ijar_testlib_nostrip", | 
 |         ":interface_ijar_testlib_with_target_label", | 
 |         ":jar_with_manifest_and_target_label_nostrip", | 
 |         ":jar_with_manifest_nostrip", | 
 |         ":jar_with_manifest_sections_nostrip", | 
 |         ":jar_with_target_label_and_manifest_sections_nostrip", | 
 |         ":jar_without_manifest_nostrip", | 
 |         ":jar_without_manifest_nostrip_idempotence", | 
 |         ":kotlin_module-interface.jar", | 
 |         ":liblocal_and_anonymous_lib.jar", | 
 |         ":local_and_anonymous-interface.jar", | 
 |         ":module_info-interface.jar", | 
 |         ":scala_tasty-interface.jar", | 
 |     ], | 
 |     tags = ["zip"], | 
 |     test_class = "IjarTests", | 
 |     deps = [ | 
 |         "//third_party:asm", | 
 |         "//third_party:guava", | 
 |         "//third_party:junit4", | 
 |         "//third_party:truth", | 
 |     ], | 
 | ) | 
 |  | 
 | test_suite( | 
 |     name = "all_tests", | 
 |     testonly = 1, | 
 |     visibility = ["//visibility:public"], | 
 | ) | 
 |  | 
 | java_binary( | 
 |     name = "gen_zip_with_entries", | 
 |     srcs = ["GenZipWithEntries.java"], | 
 |     jvm_flags = ["-Djdk.util.zip.inhibitZip64=false"], | 
 |     main_class = "test.GenZipWithEntries", | 
 |     deps = ["//third_party:asm"], | 
 | ) | 
 |  | 
 | [ | 
 |     genrule( | 
 |         name = name, | 
 |         outs = [name + ".jar"], | 
 |         cmd = "$(location :gen_zip_with_entries) %s $@" % entries, | 
 |         tools = [":gen_zip_with_entries"], | 
 |     ) | 
 |     for name, entries in [ | 
 |         ("largest_regular", 65535), | 
 |         ("smallest_zip64", 65536), | 
 |         ("definitely_zip64", 70000), | 
 |         ("empty_zip", 1), | 
 |     ] | 
 | ] | 
 |  | 
 | java_binary( | 
 |     name = "zip_count", | 
 |     srcs = ["ZipCount.java"], | 
 |     jvm_flags = ["-Djdk.util.zip.inhibitZip64=false"], | 
 |     main_class = "test.ZipCount", | 
 | ) | 
 |  | 
 | filegroup( | 
 |     name = "srcs", | 
 |     srcs = glob(["**"]), | 
 |     visibility = ["//third_party/ijar:__pkg__"], | 
 | ) |