blob: c42edd7ab7122b3fd5261fb34b7205829a428eec [file] [log] [blame]
Dave Borowitz938398f2018-09-14 14:14:25 -07001load(
2 "@bazel_tools//tools/jdk:default_java_toolchain.bzl",
3 "JDK9_JVM_OPTS",
4 "default_java_toolchain",
5)
David Ostrovsky4b60cd72018-08-26 15:53:01 +02006
Han-Wen Nienhuysa223f5a2019-04-25 12:15:41 +02007exports_files(["nongoogle.bzl"])
8
David Ostrovskyb81b4f72016-05-21 19:55:01 +02009py_binary(
David Ostrovskyfa189072016-11-30 08:52:06 +010010 name = "merge_jars",
11 srcs = ["merge_jars.py"],
12 main = "merge_jars.py",
13 visibility = ["//visibility:public"],
David Ostrovskyb81b4f72016-05-21 19:55:01 +020014)
David Ostrovsky4b60cd72018-08-26 15:53:01 +020015
David Ostrovsky4b60cd72018-08-26 15:53:01 +020016default_java_toolchain(
17 name = "error_prone_warnings_toolchain",
David Pursehousea5ca0332018-11-02 08:24:16 +090018 bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath.jar"],
Dave Borowitz938398f2018-09-14 14:14:25 -070019 jvm_opts = JDK9_JVM_OPTS,
David Ostrovsky4b60cd72018-08-26 15:53:01 +020020 package_configuration = [
21 ":error_prone",
22 ],
23 visibility = ["//visibility:public"],
24)
25
Dave Borowitzcac46302019-05-24 09:54:18 -070026default_java_toolchain(
27 name = "full_error_prone_warnings_toolchain",
28 bootclasspath = ["@bazel_tools//tools/jdk:platformclasspath.jar"],
29 jvm_opts = JDK9_JVM_OPTS,
30 package_configuration = [
31 ":full_error_prone",
32 ],
33 visibility = ["//visibility:public"],
34)
35
36# Error Prone errors and warnings enabled by default; see ../.bazelrc for how
37# this is enabled.
38java_package_configuration(
39 name = "error_prone",
40 javacopts = [
41 "-XepDisableWarningsInGeneratedCode",
Dave Borowitzccdc6702019-05-24 10:14:03 -070042 "-Xep:AmbiguousMethodReference:ERROR",
43 "-Xep:BadAnnotationImplementation:ERROR",
44 "-Xep:BadComparable:ERROR",
45 "-Xep:BoxedPrimitiveConstructor:ERROR",
46 "-Xep:CannotMockFinalClass:ERROR",
47 "-Xep:ClassNewInstance:ERROR",
48 "-Xep:DoubleCheckedLocking:ERROR",
49 "-Xep:ElementsCountedInLoop:ERROR",
50 "-Xep:StringEquality:ERROR",
51 "-Xep:MissingCasesInEnumSwitch:ERROR",
Dave Borowitzcac46302019-05-24 09:54:18 -070052 "-Xep:WildcardImport:ERROR",
53 ],
54 packages = ["error_prone_packages"],
55)
56
David Ostrovsky4b60cd72018-08-26 15:53:01 +020057# This EP warnings list is based on:
58# https://github.com/bazelbuild/BUILD_file_generator/blob/master/tools/bazel_defs/java.bzl
59java_package_configuration(
Dave Borowitzcac46302019-05-24 09:54:18 -070060 name = "full_error_prone",
David Ostrovsky4b60cd72018-08-26 15:53:01 +020061 javacopts = [
62 "-XepDisableWarningsInGeneratedCode",
David Ostrovsky4b60cd72018-08-26 15:53:01 +020063 "-Xep:AmbiguousMethodReference:WARN",
64 "-Xep:BadAnnotationImplementation:WARN",
65 "-Xep:BadComparable:WARN",
66 "-Xep:BoxedPrimitiveConstructor:ERROR",
67 "-Xep:CannotMockFinalClass:WARN",
68 "-Xep:ClassCanBeStatic:WARN",
69 "-Xep:ClassNewInstance:WARN",
David Pursehouse02e04a32018-09-12 10:18:42 +090070 "-Xep:DefaultCharset:ERROR",
David Ostrovsky4b60cd72018-08-26 15:53:01 +020071 "-Xep:DoubleCheckedLocking:WARN",
72 "-Xep:ElementsCountedInLoop:WARN",
73 "-Xep:EqualsHashCode:WARN",
74 "-Xep:EqualsIncompatibleType:WARN",
75 "-Xep:ExpectedExceptionChecker:ERROR",
76 "-Xep:Finally:WARN",
77 "-Xep:FloatingPointLiteralPrecision:WARN",
78 "-Xep:FragmentInjection:WARN",
79 "-Xep:FragmentNotInstantiable:WARN",
80 "-Xep:FunctionalInterfaceClash:WARN",
81 "-Xep:FutureReturnValueIgnored:WARN",
82 "-Xep:GetClassOnEnum:WARN",
83 "-Xep:ImmutableAnnotationChecker:WARN",
84 "-Xep:ImmutableEnumChecker:WARN",
85 "-Xep:IncompatibleModifiers:WARN",
86 "-Xep:InjectOnConstructorOfAbstractClass:WARN",
87 "-Xep:InputStreamSlowMultibyteRead:WARN",
88 "-Xep:IterableAndIterator:WARN",
89 "-Xep:JUnit3FloatingPointComparisonWithoutDelta:WARN",
90 "-Xep:JUnitAmbiguousTestClass:WARN",
91 "-Xep:LiteralClassName:WARN",
Dave Borowitzc2e41f22019-05-24 10:12:35 -070092 "-Xep:MissingCasesInEnumSwitch:ERROR",
David Ostrovsky4b60cd72018-08-26 15:53:01 +020093 "-Xep:MissingFail:WARN",
94 "-Xep:MissingOverride:WARN",
David Pursehouse111f8d52018-12-21 10:17:04 +090095 "-Xep:MutableConstantField:ERROR",
David Ostrovsky4b60cd72018-08-26 15:53:01 +020096 "-Xep:NarrowingCompoundAssignment:WARN",
97 "-Xep:NonAtomicVolatileUpdate:WARN",
98 "-Xep:NonOverridingEquals:WARN",
99 "-Xep:NullableConstructor:WARN",
100 "-Xep:NullablePrimitive:WARN",
101 "-Xep:NullableVoid:WARN",
102 "-Xep:OperatorPrecedence:WARN",
103 "-Xep:OverridesGuiceInjectableMethod:WARN",
104 "-Xep:PreconditionsInvalidPlaceholder:WARN",
105 "-Xep:ProtoFieldPreconditionsCheckNotNull:WARN",
106 "-Xep:ProtocolBufferOrdinal:WARN",
Dave Borowitzc2e41f22019-05-24 10:12:35 -0700107 "-Xep:ReferenceEquality:WARN",
David Ostrovsky4b60cd72018-08-26 15:53:01 +0200108 "-Xep:RequiredModifiers:WARN",
109 "-Xep:ShortCircuitBoolean:WARN",
110 "-Xep:SimpleDateFormatConstant:WARN",
111 "-Xep:StaticGuardedByInstance:WARN",
Dave Borowitzc2e41f22019-05-24 10:12:35 -0700112 "-Xep:StringEquality:WARN",
David Ostrovsky4b60cd72018-08-26 15:53:01 +0200113 "-Xep:SynchronizeOnNonFinalField:WARN",
114 "-Xep:TruthConstantAsserts:WARN",
115 "-Xep:TypeParameterShadowing:WARN",
116 "-Xep:TypeParameterUnusedInFormals:WARN",
117 "-Xep:URLEqualsHashCode:WARN",
118 "-Xep:UnsynchronizedOverridesSynchronized:WARN",
119 "-Xep:WaitNotInLoop:WARN",
Dave Borowitzc2e41f22019-05-24 10:12:35 -0700120 "-Xep:WildcardImport:WARN",
David Ostrovsky4b60cd72018-08-26 15:53:01 +0200121 ],
122 packages = ["error_prone_packages"],
123)
124
125package_group(
126 name = "error_prone_packages",
127 packages = [
128 "//java/...",
129 "//javatests/...",
130 ],
131)