blob: a6cb88a6f3b8740927f6846a02e0972ab0a1ce79 [file] [log] [blame]
Brian Slesinsky6e071292014-04-08 15:02:41 -07001# Copyright 2014 Google Inc.
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
15# Description:
16# The standard GWT libraries.
17
18# Google owns the copyright
19licenses(["unencumbered"])
20
21package(
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -070022 default_visibility = [
23 "//third_party/java/gwt:__subpackages__",
24 "//third_party/java_src/gwt:__subpackages__",
25 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -070026)
27
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -070028load("//third_party/java_src/gwt:build-macros.bzl", "AugmentedJar")
Brian Slesinsky6e071292014-04-08 15:02:41 -070029
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -080030JSINTEROP_SRCS = glob(["src/jsinterop/**/*.java"])
31
32# GWT JsInterop annotations in a separate library used by hybrid app projects
33java_library(
34 name = "gwt-jsinterop-annotations",
35 srcs = JSINTEROP_SRCS,
36 compatible_with = [
37 "//buildenv/target:android",
38 "//buildenv/target:appengine",
39 ],
40 constraints = [
41 "android",
42 ],
43)
44
45java_library(
46 name = "gwt-javaemul-annotations",
47 srcs = glob(["super/com/google/gwt/emul/javaemul/internal/annotations/*.java"]),
48)
49
Brian Slesinsky6e071292014-04-08 15:02:41 -070050# The classes in gwt-user.jar that GWT applications can depend on.
51# We want the final output of this NOT to depend on gwt-dev,
52# though it is built with that dependency, because user code can and should
53# depend on this without also touching the compiler and shell internals.
54AugmentedJar(
55 name = "gwt-user-classes-src",
Brian Slesinsky3114e452014-04-23 10:56:53 -070056 srcs = [],
57 added_jars = [
58 ":libgwt-user-bare.jar",
59 "//third_party/java_src/gwt/svn/tools:user_jars",
60 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -070061 added_roots = [
62 "src",
63 "super",
64 ],
Roberto Lublinerman05592162016-06-15 16:35:59 -070065 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky6e071292014-04-08 15:02:41 -070066 constraints = [],
67 dojarjar = 1,
68 exclude_glob = [
69 "**/package.html",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -070070 "src/com/google/gwt/junit/**",
71 "super/com/google/gwt/junit/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -070072 ],
73 java_library_name = "gwt-user-classes",
74 output_name = "gwt-user-classes-src.jar",
75 wrap_javalibrary = 0,
76)
77
Brian Slesinsky3114e452014-04-23 10:56:53 -070078# The gwt-user classes for GWT internal use only.
79# They must be jarjar-ed and dependencies stripped before exposing to google3.
80java_library(
81 name = "gwt-user-bare",
82 srcs = glob(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -080083 [
84 "src/**/*.java",
85 "super/com/google/gwt/emul/javaemul/internal/**/*.java",
86 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -070087 exclude = [
88 "src/com/google/gwt/junit/**/*.java", # see gwt-testing
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -070089 "**/ConsoleLogger.java", # relies on internal APIs
90 "**/SuperDevModeLogger.java", # relies on ConsoleLogger
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -080091 "**/EmulatedCharset.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -070092 "**/HashCodes.java", # relies on java8 only APIs
Brian Slesinsky3114e452014-04-23 10:56:53 -070093 "**/RunStyleSelenium.java",
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -080094 ] + JSINTEROP_SRCS,
Brian Slesinsky3114e452014-04-23 10:56:53 -070095 ),
Roberto Lublinerman05592162016-06-15 16:35:59 -070096 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -080097 javacopts = ["-Xep:MissingCasesInEnumSwitch:OFF"],
Goktug Gokdogan5b327a32016-07-08 22:45:16 -070098 plugins = [
99 "//java/com/google/devtools/build/buildjar/plugin/gwt",
100 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700101 deps = [
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -0800102 ":gwt-jsinterop-annotations",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700103 "//third_party/java_src/gwt/svn/tools:dev_deps",
104 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
105 "//third_party/java_src/gwt/svn/tools:user_deps",
106 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
107 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000108 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700109)
110
Brian Slesinsky6e071292014-04-08 15:02:41 -0700111# This target is used by a java_plugin over in java/gwt/BUILD. It's
112# a pretty simple annotation processor, so in order to keep it from being a
113# build bottleneck, it's simply built from scratch.
114java_library(
115 name = "requestfactory-apt",
116 srcs = glob([
117 "src/com/google/web/bindery/requestfactory/apt/*.java",
118 ]) + [
119 "src/com/google/web/bindery/requestfactory/shared/JsonRpcProxy.java",
120 "src/com/google/web/bindery/requestfactory/shared/JsonRpcService.java",
121 "src/com/google/web/bindery/requestfactory/shared/Locator.java",
122 "src/com/google/web/bindery/requestfactory/shared/Service.java",
123 "src/com/google/web/bindery/requestfactory/shared/ServiceLocator.java",
124 "src/com/google/web/bindery/requestfactory/shared/ServiceName.java",
125 "src/com/google/web/bindery/requestfactory/shared/SkipInterfaceValidation.java",
126 "src/com/google/web/bindery/requestfactory/shared/ProxyFor.java",
127 "src/com/google/web/bindery/requestfactory/shared/ProxyForName.java",
128 "src/com/google/web/bindery/requestfactory/vm/impl/ClassComparator.java",
129 "src/com/google/web/bindery/requestfactory/vm/impl/Deobfuscator.java",
130 "src/com/google/web/bindery/requestfactory/vm/impl/OperationData.java",
131 "src/com/google/web/bindery/requestfactory/vm/impl/OperationKey.java",
132 "src/com/google/gwt/core/shared/GwtIncompatible.java",
133 "src/com/google/gwt/user/server/Base64Utils.java",
134 ],
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700135 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -0800136 javacopts = ["-Xep:MissingCasesInEnumSwitch:OFF"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700137 deps = [
138 "//third_party/java_src/gwt/svn/trunk/dev:requestfactory-apt-deps",
139 ],
140)
141
142# Packages just AutoBeans source into a jar with correct java root.
143AugmentedJar(
144 name = "autobean-classes-src",
145 srcs = glob(["src/com/google/web/bindery/autobean/**/*.java"]),
146 added_root_globs = {"src": ["src/com/google/web/bindery/autobean/**/*.java"]},
147 # We only need the Java classes so don't wait for the rest of :gwt-dev.
148 build_deps = [
149 "//third_party/java_src/gwt:gwt-user-full",
150 "//third_party/java_src/gwt/svn/tools:dev_deps",
151 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700152 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700153 ],
154 constraints = [],
155 dojarjar = 1,
156 exclude_glob = [
157 "**/package.html",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700158 ],
159 java_library_name = "autobean-classes",
160 output_name = "autobean-classes-src.jar",
161 wrap_javalibrary = 0,
162)
163
164# Repackages the AutoBeans.gwt.xml file with correct java root by placing it in
165# "java/".
166genrule(
167 name = "autobean-gwt-xml",
168 srcs = [":src/com/google/web/bindery/autobean/AutoBean.gwt.xml"],
169 outs = ["java/com/google/web/bindery/autobean/AutoBean.gwt.xml"],
170 cmd = ("cp $(location :src/com/google/web/bindery/autobean/AutoBean.gwt.xml) " +
171 "$(location java/com/google/web/bindery/autobean/AutoBean.gwt.xml)"),
172)
173
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700174java_import(
175 name = "autobean_import",
176 constraints = [
177 "gwt",
178 "public",
179 ],
180 jars = [":autobean-classes-src.jar"],
181 deps = [
182 "//third_party/java_src/gwt:gwt-dev",
183 "//third_party/java_src/gwt:gwt-user-full",
184 ],
185)
186
Brian Slesinsky6e071292014-04-08 15:02:41 -0700187java_library(
188 name = "autobean",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700189 constraints = [
190 "gwt",
191 "public",
192 ],
193 gwtxml = "java/com/google/web/bindery/autobean/AutoBean.gwt.xml",
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700194 exports = [":autobean_import"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700195)
196
John Stalcup5c3e97e2014-04-21 19:16:25 -0700197# Packages just IncrementalBuilder test resource into a jar with correct java root.
198AugmentedJar(
199 name = "incremental-build-system-test-res",
200 srcs = [],
201 added_root_globs = {
202 "test": [
John Stalcup7d432a62014-06-11 15:46:53 -0700203 "test/com/google/gwt/dev/testdata/incrementalbuildsystem/**/*",
John Stalcup5c3e97e2014-04-21 19:16:25 -0700204 ],
205 },
206 # We only need the Java classes so don't wait for the rest of :gwt-dev.
207 build_deps = [
208 "//third_party/java_src/gwt:gwt-user-full",
209 "//third_party/java_src/gwt/svn/tools:dev_deps",
210 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
211 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-classes",
212 ],
213 constraints = [],
214 dojarjar = 1,
215 exclude_glob = [
216 "**/package.html",
John Stalcup5c3e97e2014-04-21 19:16:25 -0700217 ],
218 output_name = "incremental-build-system-test-res.jar",
219 wrap_javalibrary = 0,
220)
221
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700222JVM_REGEXP_SRCS = glob(["src/com/google/gwt/regexp/shared/*.java"])
223
Brian Slesinsky6e071292014-04-08 15:02:41 -0700224# See //third_party/java/gwt:regexp
225java_library(
226 name = "jvm_regexp",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700227 srcs = JVM_REGEXP_SRCS,
Roberto Lublinerman05592162016-06-15 16:35:59 -0700228 compatible_with = [
229 "//buildenv/target:android",
230 "//buildenv/target:appengine",
231 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700232 constraints = ["android"],
233)
234
235# See //third_party/java/gwt:hibernate-validation-support
236java_library(
237 name = "hibernate-validation-support",
238 srcs = glob(
239 [
240 "src/org/hibernate/validator/**/*_CustomFieldSerializer.java",
241 "src/org/hibernate/validator/engine/ValidationSupport.java",
242 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700243 ),
244 deps = [
245 "//third_party/java/hibernate:validator",
246 "//third_party/java/javax_validation",
247 "//third_party/java_src/gwt:gwt-servlet",
248 ],
249)
250
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700251DTO_SRCS = [
252 "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java",
253 "src/com/google/gwt/user/client/rpc/GwtTransient.java",
254 "src/com/google/gwt/user/client/rpc/IsSerializable.java",
255 "src/com/google/gwt/user/client/rpc/SerializationException.java",
256 "src/com/google/gwt/user/client/rpc/SerializationStreamReader.java",
257 "src/com/google/gwt/user/client/rpc/SerializationStreamWriter.java",
258] + glob([
259 "src/com/google/gwt/user/client/rpc/core/java/util/*.java",
260])
261
Brian Slesinsky6e071292014-04-08 15:02:41 -0700262# The indirection through libgwt-servlet-impl.jar is needed so that Java symbols in the outputs of
263# this package are distributed in one form (through the class jars, as AugmentedJar does)
264# This prevents them appearing them on classpath as both sources and classes, which confuses javac
265# For example see b/3033925
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700266java_import(
Brian Slesinsky6e071292014-04-08 15:02:41 -0700267 name = "gwt-servlet-internal",
Roberto Lublinerman05592162016-06-15 16:35:59 -0700268 compatible_with = ["//buildenv/target:appengine"],
Goktug Gokdogand6314fc2015-10-09 14:59:43 -0700269 jars = [":libgwt-servlet-impl.jar"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700270)
271
272java_library(
273 name = "gwt-servlet-impl",
274 srcs = glob(
275 [
276 "src/com/google/gwt/**/server/**/*.java",
277 "src/com/google/gwt/**/shared/**/*.java",
278 "src/com/google/web/bindery/**/server/**/*.java",
279 "src/com/google/web/bindery/**/shared/**/*.java",
280 "src/com/google/web/bindery/**/vm/**/*.java",
281 "src/com/google/web/bindery/event/shared/**/*.java",
282 "src/javax/validation/**/*_CustomFieldSerializer.java",
283 # Despite the "client" designation, these packages are
284 # also reached by server RPC code:
285 "src/com/google/gwt/canvas/dom/client/*.java",
286 "src/com/google/gwt/debug/client/DebugInfo.java",
287 "src/com/google/gwt/media/dom/client/*.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700288 "src/com/google/gwt/user/client/rpc/core/**/*.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700289 "src/com/google/gwt/user/client/rpc/SerializedTypeViolationException.java",
290 "src/com/google/gwt/user/client/rpc/IncompatibleRemoteServiceException.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700291 "src/com/google/gwt/user/client/rpc/RemoteService.java",
292 "src/com/google/gwt/user/client/rpc/AsyncCallback.java",
293 "src/com/google/gwt/user/client/rpc/RemoteServiceRelativePath.java",
294 "src/com/google/gwt/user/client/rpc/RpcToken.java",
295 "src/com/google/gwt/user/client/rpc/RpcTokenException.java",
296 "src/com/google/gwt/user/client/rpc/RpcTokenExceptionHandler.java",
297 "src/com/google/gwt/user/client/rpc/impl/AbstractSerialization*.java",
298 "src/com/google/gwt/user/client/rpc/RpcRequestBuilder.java",
299 "src/com/google/gwt/user/client/rpc/ServiceDefTarget.java",
300 "src/com/google/gwt/user/client/rpc/InvocationException.java",
301 "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java",
302 "src/com/google/gwt/user/client/rpc/XsrfProtectedService.java",
303 "src/com/google/gwt/user/client/rpc/XsrfToken.java",
304 "src/com/google/gwt/user/client/rpc/XsrfTokenService.java",
305 "src/com/google/gwt/http/client/RequestBuilder.java",
306 "src/com/google/gwt/http/client/Request.java",
307 "src/com/google/gwt/http/client/Header.java",
308 "src/com/google/gwt/http/client/Response.java",
309 "src/com/google/gwt/http/client/ResponseImpl.java",
310 "src/com/google/gwt/http/client/RequestException.java",
311 "src/com/google/gwt/http/client/RequestPermissionException.java",
312 "src/com/google/gwt/http/client/RequestTimeoutException.java",
313 "src/com/google/gwt/http/client/RequestCallback.java",
314 "src/com/google/gwt/http/client/StringValidator.java",
315 "src/com/google/gwt/http/client/URL.java",
316 "src/com/google/gwt/http/client/UrlBuilder.java",
317 "src/com/google/gwt/json/client/JSONArray.java",
318 "src/com/google/gwt/json/client/JSONBoolean.java",
319 "src/com/google/gwt/json/client/JSONException.java",
320 "src/com/google/gwt/json/client/JSONNull.java",
321 "src/com/google/gwt/json/client/JSONNumber.java",
322 "src/com/google/gwt/json/client/JSONObject.java",
323 "src/com/google/gwt/json/client/JSONString.java",
324 "src/com/google/gwt/json/client/JSONValue.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700325 "src/com/google/gwt/core/client/JsonUtils.java",
326 "src/com/google/gwt/core/client/impl/WeakMapping.java",
327 "src/com/google/gwt/xhr/client/ReadyStateChangeHandler.java",
328 "src/com/google/gwt/xhr/client/XMLHttpRequest.java",
329 "src/com/google/gwt/user/client/Timer.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700330 "src/com/google/gwt/user/client/rpc/impl/ClientSerializationStreamWriter.java",
331 "src/com/google/gwt/user/client/rpc/impl/Serializer.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700332 # ...which need:
333 "src/com/google/gwt/core/client/GWT.java",
334 "src/com/google/gwt/core/client/JavaScriptException.java",
335 "src/com/google/gwt/core/client/JavaScriptObject.java",
336 "src/com/google/gwt/core/client/JsArray.java",
337 "src/com/google/gwt/core/client/JsDate.java",
338 "src/com/google/gwt/core/client/Duration.java",
339 "src/com/google/gwt/core/client/Scheduler.java",
340 "src/com/google/gwt/user/client/Window.java",
341 "src/com/google/gwt/user/client/Window*.java",
342 "src/com/google/gwt/user/client/BaseListenerWrapper.java",
343 "src/com/google/gwt/user/client/Element.java",
344 "src/com/google/gwt/user/client/Event.java",
345 "src/com/google/gwt/user/client/EventListener.java",
346 "src/com/google/gwt/user/client/EventPreview.java",
347 "src/com/google/gwt/user/client/NativePreviewEvent.java",
348 "src/com/google/gwt/user/client/History.java",
349 "src/com/google/gwt/user/client/impl/HistoryImpl.java",
350 "src/com/google/gwt/user/client/impl/DomImpl.java",
351 "src/com/google/gwt/user/client/HistoryListener.java",
352 "src/com/google/gwt/user/client/Cookies.java",
Goktug Gokdogan1d660d22015-12-07 15:07:02 -0800353 "src/com/google/gwt/core/client/impl/JavaScriptExceptionBase.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700354 "src/com/google/gwt/user/client/ui/AcceptsOneWidget.java",
355 "src/com/google/gwt/user/client/ui/Widget.java",
356 "src/com/google/gwt/user/client/ui/IsWidget.java",
357 "src/com/google/gwt/user/client/ui/HasOneWidget.java",
358 "src/com/google/gwt/user/client/ui/HasVisibility.java",
359 "src/com/google/gwt/user/client/ui/HasWidgets.java",
360 "src/com/google/gwt/user/client/ui/HasText.java",
361 "src/com/google/gwt/user/client/ui/AbsolutePanel.java",
362 "src/com/google/gwt/user/client/ui/ComplexPanel.java",
363 "src/com/google/gwt/user/client/ui/IndexedPanel.java",
364 "src/com/google/gwt/user/client/ui/InsertPanel.java",
365 "src/com/google/gwt/user/client/ui/Panel.java",
366 "src/com/google/gwt/user/client/ui/AttachDetachException.java",
367 "src/com/google/gwt/user/client/ui/UIObject.java",
368 "src/com/google/gwt/user/client/ui/PotentialElement.java",
369 "src/com/google/gwt/user/client/ui/RootPanel.java",
370 "src/com/google/gwt/user/client/ui/WidgetCollection.java",
371 "src/com/google/gwt/event/dom/client/HasNativeEvent.java",
372 "src/com/google/gwt/event/dom/client/PrivateMap.java",
373 "src/com/google/gwt/event/dom/client/DomEvent.java",
374 "src/com/google/gwt/event/dom/client/KeyEvent.java",
375 "src/com/google/gwt/event/dom/client/KeyCodeEvent.java",
376 "src/com/google/gwt/event/dom/client/KeyCodes.java",
377 "src/com/google/gwt/event/dom/client/KeyUpEvent.java",
378 "src/com/google/gwt/event/dom/client/HasKeyUpHandlers.java",
379 "src/com/google/gwt/event/dom/client/KeyUpHandler.java",
380 "src/com/google/gwt/user/client/DOM.java",
381 "src/com/google/gwt/user/client/impl/DOMImpl.java",
382 "src/com/google/gwt/user/client/impl/WindowImpl.java",
383 "src/com/google/gwt/dom/client/*.java",
384 "src/com/google/gwt/core/client/impl/Impl.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700385 "src/com/google/gwt/core/client/impl/StackTraceCreator.java",
386 "src/com/google/gwt/core/client/impl/SchedulerImpl.java",
387 "src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java",
388 "src/com/google/gwt/core/client/impl/OnSuccessExecutor.java",
389 "src/com/google/gwt/core/client/impl/SynchronousOnSuccessExecutor.java",
390 "src/com/google/gwt/core/client/JsArrayInteger.java",
391 "src/com/google/gwt/core/client/JsArrayString.java",
392 "src/com/google/gwt/core/client/RunAsyncCallback.java",
393 "src/com/google/gwt/i18n/client/constants/*.java",
394 "src/com/google/gwt/i18n/client/impl/cldr/*.java",
395 "src/com/google/gwt/i18n/client/impl/plurals/*.java",
396 "src/com/google/gwt/i18n/client/impl/*.java",
397 "src/com/google/gwt/i18n/client/*.java",
398 "src/com/google/gwt/i18n/rebind/keygen/*.java",
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800399 "super/com/google/gwt/emul/javaemul/internal/ArrayHelper.java",
400 "super/com/google/gwt/emul/javaemul/internal/ArrayStamper.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700401 # And it's also sensible to want for serialization:
402 "src/com/google/gwt/user/client/ui/SuggestOracle.java",
403 ],
404 exclude = [
405 "**/junit/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700406 "src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700407 ] + DTO_SRCS + JVM_REGEXP_SRCS,
Brian Slesinsky6e071292014-04-08 15:02:41 -0700408 ),
Roberto Lublinerman05592162016-06-15 16:35:59 -0700409 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700410 deps = [
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700411 ":gwt-dto-serializers",
412 ":jvm_regexp",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700413 "//third_party/java/servlet/servlet_api",
414 "//third_party/java_src/gwt/svn/tools:servlet_deps",
415 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
416 "//third_party/java_src/gwt/svn/trunk/dev:servlet-deps",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000417 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700418)
419
420# The minimum requirements for GWT-RPC serializable object definition.
421# Includes support for data transfer objects (with default or custom field serialization)
422# but not server interfaces, services, client code, etc.
423#
424# CAUTION: most of google ends up depending on this, via common/base:base-gwt
425# and common/collect:collect-gwt. You really don't want it to be big!
426java_library(
427 name = "gwt-dto-serializers",
Goktug Gokdogan5b327a32016-07-08 22:45:16 -0700428 srcs = DTO_SRCS,
Roberto Lublinerman05592162016-06-15 16:35:59 -0700429 compatible_with = [
430 "//buildenv/target:android",
431 "//buildenv/target:appengine",
432 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700433 constraints = [
Roberto Lublinerman15a925d2016-01-11 15:46:51 -0800434 "android",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700435 "gwt",
436 "public",
437 ],
438 gwtxml = "Gwt-dto-serializers.gwt.xml",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700439)
440
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700441# Creates gwt-testing.jar, which contains GWTTestCase and its infrastructure.
442# (The jar depends on gwt-user.jar but the dependency isn't declared.
443# Instead we assume it will be added by a wrapper rule.)
444AugmentedJar(
445 name = "gwt-testing",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700446 srcs = [],
447 added_jars = [
448 ":libgwt-testing-bare.jar",
449 ],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700450 added_root_globs = {
451 "src": ["src/com/google/gwt/junit/**"],
452 "super": ["super/com/google/gwt/junit/**"],
453 },
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700454 compatible_with = ["//buildenv/target:appengine"],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700455 dojarjar = 1,
456 exclude_glob = [
457 "**/package.html",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700458 "**/RunStyleSelenium.java",
459 ],
460)
461
Brian Slesinsky3114e452014-04-23 10:56:53 -0700462# The gwt-testing classes for GWT internal use only.
463# They must be jarjar-ed and dependencies stripped before exposing to google3.
464java_library(
465 name = "gwt-testing-bare",
466 testonly = 1,
467 srcs = glob(
468 ["src/com/google/gwt/junit/**/*.java"],
469 exclude = [
470 "**/super/**",
471 "**/RunStyleSelenium.java",
472 ],
473 ),
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700474 compatible_with = ["//buildenv/target:appengine"],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700475 deps = [
476 ":gwt-user-bare",
477 "//third_party/java/junit",
478 "//third_party/java_src/gwt/svn/tools:dev_deps",
479 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
480 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
481 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
482 ],
483)
484
Brian Slesinsky6e071292014-04-08 15:02:41 -0700485# === TESTS ===
486
487AugmentedJar(
488 name = "user-test-code",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700489 testonly = 1,
Brian Slesinsky6e071292014-04-08 15:02:41 -0700490 srcs = glob(
491 [
492 "test/**/*.java",
493 "test_i18n_bar/**/*.java",
494 ],
495 exclude = [
496 "test/**/super/**",
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700497 "test/**/tck/**",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700498 "**/RunStyleSeleniumTest.java",
499 ],
500 ),
501 added_roots = [
502 "test",
503 "test-super",
504 "test_i18n_bar",
505 ],
Brian Slesinsky3114e452014-04-23 10:56:53 -0700506 # For build_deps we should use pre-jarjar dependencies (-bare)
Brian Slesinsky6e071292014-04-08 15:02:41 -0700507 build_deps = [
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -0800508 ":gwt-jsinterop-annotations",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700509 ":gwt-user-bare",
510 ":gwt-testing-bare",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700511 "//third_party/java_src/gwt/svn/tools:dev_deps",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700512 "//third_party/java_src/gwt/svn/tools:user_deps",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700513 "//third_party/java_src/gwt/svn/tools:servlet_api_3",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700514 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
515 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code-bare",
516 # for @GwtScriptOnly
517 "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700518 ],
519 constraints = [
520 "gwt",
521 "public",
522 ],
523 dojarjar = 1,
524 export_deps = [
525 "//third_party/java_src/gwt:gwt-dev", # for the post-jarjar names
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700526 "//third_party/java_src/gwt:gwt-testing",
Brian Slesinsky3114e452014-04-23 10:56:53 -0700527 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700528 ],
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700529 javacopts = [
530 "-Xep:SelfComparison:OFF", # go/self-comparison-lsc
531 "-Xep:SelfEquals:OFF", # go/self-equals-lsc
532 "-Xep:IdentityBinaryExpression:OFF",
Roberto Lublinermanf0d1ea12017-02-21 08:36:33 -0800533 "-Xep:LoopConditionChecker:OFF",
534 "-Xep:CollectionIncompatibleType:OFF",
Roberto Lublinerman37ff62f2016-09-27 13:39:25 -0700535 ],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700536 deps = [
537 "//third_party/java/jsr305_annotations",
538 "//third_party/java/junit",
539 "//third_party/java_src/gwt/svn/tools:testtool_deps",
Daniel Kurka519e16b2015-02-18 20:23:41 +0000540 ],
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700541)
542
543# This target should only be dependent from platform tests that care about tck.
544# This target is separated from user-test-code as its deps pulls in an old version of Guice which
545# breaks the Webdriver for Android.
546AugmentedJar(
547 name = "tck-test-code",
548 testonly = 1,
549 srcs = glob(["test/**/tck/**/*.java"]),
550 # For build_deps we should use pre-jarjar dependencies (-bare)
551 build_deps = [
552 ":gwt-user-bare",
553 ":gwt-testing-bare",
554 "//third_party/java_src/gwt/svn/tools:user_deps",
555 "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-bare",
556 "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code-bare",
557 ],
558 constraints = [
559 "gwt",
560 "public",
561 ],
562 dojarjar = 1,
563 deps = [
564 "//third_party/java/junit",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700565 "//third_party/java_src/gwt/svn/tools:validator_deps",
566 "//third_party/java_src/gwt/svn/tools:validator_tck_deps",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700567 ],
568)
569
570filegroup(
571 name = "browser_suite_files",
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700572 srcs = glob(
573 ["test/**/*Suite.java"],
Brian Slesinsky6e071292014-04-08 15:02:41 -0700574 exclude = [
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700575 "test/**/ConstraintDefinitionsGwtSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700576 "test/**/*JreSuite.java",
577 ],
Roberto Lublinermana7a8c9f2014-04-21 09:12:39 -0700578 ),
Brian Slesinsky6e071292014-04-08 15:02:41 -0700579)
580
581filegroup(
Goktug Gokdogan96700c82014-09-12 12:11:46 -0700582 name = "jsinterop_suite_files",
583 srcs = glob(["test/**/*JsInteropSuite.java"]),
584)
585
586filegroup(
Brian Slesinsky6e071292014-04-08 15:02:41 -0700587 name = "nobrowser_suite_files",
588 srcs = glob(["test/**/*JreSuite.java"]),
589)
590
591filegroup(
Goktug Gokdogan26deda22015-10-19 15:48:30 -0700592 name = "dev_suite_files",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700593 srcs = glob(
594 ["test/**/*Suite.java"],
595 exclude = [
Roberto Lublinerman57c8eed2015-03-11 15:56:31 -0700596 "test/**/ConstraintDefinitionsGwtSuite.java",
Roberto Lublinermana6f79c52014-05-07 16:51:58 -0700597 "test/**/*CompilerSuite.java",
John Stalcup99c353a2014-08-01 18:10:32 -0700598 "test/**/RunAsyncSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700599 "test/**/*JreSuite.java",
Goktug Gokdogan96700c82014-09-12 12:11:46 -0700600 "test/**/*JsInteropSuite.java",
Brian Slesinsky6e071292014-04-08 15:02:41 -0700601 ],
602 ),
603)
604
605# === ant and checkstyle ===
606
607# Files to be excluded from ant tests.
608ANT_EXCLUDES = [
609 "**/.git/**",
610 "**/.svn/**",
611 # in case eclipse output is mixed into source
612 "**/war/WEB-INF/classes/**",
613 "**/webapp/WEB-INF/classes/**",
614 "**/bin/**",
615 # emacs backup and autosave files
616 "**/*~",
617 "**/#*",
618 "test_i18n_dollar/**",
619]
620
621filegroup(
622 name = "checkstyle_files",
623 srcs = glob(
624 ["*/com/google/gwt/**/*.java"],
625 exclude = ANT_EXCLUDES,
626 exclude_directories = 1,
627 ),
628)
629
630filegroup(
631 name = "checkapi_files",
632 srcs = glob(
633 [
634 "**/*.java",
635 "**/gwt*userApi.conf",
636 ],
637 exclude = ANT_EXCLUDES,
638 exclude_directories = 1,
639 ),
640)
641
642filegroup(
643 name = "ant_files",
644 srcs = glob(
645 [
646 "build.xml",
647 "javadoc/**/*",
648 "src/**/*",
649 "style/**/*",
650 "super/**/*",
651 "test/**/*",
652 "test_i18n_bar/**/*",
653 "test-super/**/*",
654 ],
655 exclude = ANT_EXCLUDES,
656 ),
657)
Daniel Kurka5e5d2632015-08-26 19:40:57 +0200658
659filegroup(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800660 name = "java_emul",
661 srcs = glob(["super/com/google/gwt/emul/java/**/*.java"]),
Daniel Kurka5e5d2632015-08-26 19:40:57 +0200662 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
663)
Daniel Kurkaa0a50792015-09-23 20:05:06 +0200664
665filegroup(
Goktug Gokdoganf1381ca2016-03-04 00:58:51 -0800666 name = "java_emul_internal",
667 srcs = glob(["super/com/google/gwt/emul/javaemul/**/*.java"]),
668 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
669)
670
671filegroup(
672 name = "java_emul_test",
Daniel Kurkaa0a50792015-09-23 20:05:06 +0200673 srcs = glob(
674 [
675 "test/com/google/gwt/emultest/**/*.java",
676 "test/com/google/gwt/testing/TestUtils.java",
677 "test/org/apache/commons/**/*.java",
678 ],
Daniel Kurka186c2fd2016-06-07 12:40:06 +0200679 ),
680 visibility = ["//third_party/java_src/j2cl:__subpackages__"],
681)