From 6e07129d379e1dc938b4e4251bf975c44b45726c Mon Sep 17 00:00:00 2001 From: Brian Slesinsky Date: Tue, 8 Apr 2014 15:02:41 -0700 Subject: [PATCH] create BUILD file in gwt/svn/trunk/user (take 2) Part 1: move globs, java libraries, and AugmentedJars. (These are the minimum changes needed so that everything still builds without blaze warnings.) Change-Id: I7095f3bac3a54a8f4c7a275bdc76c3e295479bc9 --- dev/BUILD | 1 + user/BUILD | 500 +++++++++++++++++++++++++++++++ user/Gwt-dto-serializers.gwt.xml | 3 + 3 files changed, 504 insertions(+) create mode 100644 user/BUILD create mode 100644 user/Gwt-dto-serializers.gwt.xml diff --git a/dev/BUILD b/dev/BUILD index 0f9b2a06745..9d16278c7ff 100644 --- a/dev/BUILD +++ b/dev/BUILD @@ -22,6 +22,7 @@ package( default_visibility = [ "//third_party/java_src/gwt:__pkg__", "//third_party/java_src/gwt/legacy:__pkg__", + "//third_party/java_src/gwt/svn/trunk/user:__pkg__", ], ) diff --git a/user/BUILD b/user/BUILD new file mode 100644 index 00000000000..a8eb01b36dd --- /dev/null +++ b/user/BUILD @@ -0,0 +1,500 @@ +# Copyright 2014 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +# Description: +# The standard GWT libraries. + +# Google owns the copyright +licenses(["unencumbered"]) + +package( + default_visibility = ["//third_party/java_src/gwt:__subpackages__"], +) + +subinclude("//third_party/java_src/gwt:build-macros") + +# The classes in gwt-user.jar that GWT applications can depend on. +# We want the final output of this NOT to depend on gwt-dev, +# though it is built with that dependency, because user code can and should +# depend on this without also touching the compiler and shell internals. +AugmentedJar( + name = "gwt-user-classes-src", + srcs = glob( + ["src/**/*.java"], + exclude = [ + "**/super/**", + "**/RunStyleSelenium.java", + ], + ), + added_jars = ["//third_party/java_src/gwt/svn/tools:user_jars"], + added_roots = [ + "src", + "super", + ], + # We only need the Java classes so don't wait for the rest of :gwt-dev. + build_deps = [ + "//third_party/java_src/gwt/svn/tools:dev_deps", + # Safe to depend on servlet_api_3 because build_deps doesn't leak + "//third_party/java_src/gwt/svn/tools:servlet_api_3", + "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super", + "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-classes", + "//third_party/java/junit", + ], + constraints = [], + dojarjar = 1, + exclude_glob = [ + "**/package.html", + "**/package-info.java", + ], + java_library_name = "gwt-user-classes", + output_name = "gwt-user-classes-src.jar", + wrap_javalibrary = 0, +) + +# This target is used by a java_plugin over in java/gwt/BUILD. It's +# a pretty simple annotation processor, so in order to keep it from being a +# build bottleneck, it's simply built from scratch. +java_library( + name = "requestfactory-apt", + srcs = glob([ + "src/com/google/web/bindery/requestfactory/apt/*.java", + ]) + [ + "src/com/google/web/bindery/requestfactory/shared/JsonRpcProxy.java", + "src/com/google/web/bindery/requestfactory/shared/JsonRpcService.java", + "src/com/google/web/bindery/requestfactory/shared/Locator.java", + "src/com/google/web/bindery/requestfactory/shared/Service.java", + "src/com/google/web/bindery/requestfactory/shared/ServiceLocator.java", + "src/com/google/web/bindery/requestfactory/shared/ServiceName.java", + "src/com/google/web/bindery/requestfactory/shared/SkipInterfaceValidation.java", + "src/com/google/web/bindery/requestfactory/shared/ProxyFor.java", + "src/com/google/web/bindery/requestfactory/shared/ProxyForName.java", + "src/com/google/web/bindery/requestfactory/vm/impl/ClassComparator.java", + "src/com/google/web/bindery/requestfactory/vm/impl/Deobfuscator.java", + "src/com/google/web/bindery/requestfactory/vm/impl/OperationData.java", + "src/com/google/web/bindery/requestfactory/vm/impl/OperationKey.java", + "src/com/google/gwt/core/shared/GwtIncompatible.java", + "src/com/google/gwt/user/server/Base64Utils.java", + ], + deps = [ + "//third_party/java_src/gwt/svn/trunk/dev:requestfactory-apt-deps", + ], +) + +# Packages just AutoBeans source into a jar with correct java root. +AugmentedJar( + name = "autobean-classes-src", + srcs = glob(["src/com/google/web/bindery/autobean/**/*.java"]), + added_root_globs = {"src": ["src/com/google/web/bindery/autobean/**/*.java"]}, + # We only need the Java classes so don't wait for the rest of :gwt-dev. + build_deps = [ + "//third_party/java_src/gwt:gwt-user-full", + "//third_party/java_src/gwt/svn/tools:dev_deps", + "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super", + "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-classes", + ], + constraints = [], + dojarjar = 1, + exclude_glob = [ + "**/package.html", + "**/package-info.java", + ], + java_library_name = "autobean-classes", + output_name = "autobean-classes-src.jar", + wrap_javalibrary = 0, +) + +# Repackages the AutoBeans.gwt.xml file with correct java root by placing it in +# "java/". +genrule( + name = "autobean-gwt-xml", + srcs = [":src/com/google/web/bindery/autobean/AutoBean.gwt.xml"], + outs = ["java/com/google/web/bindery/autobean/AutoBean.gwt.xml"], + cmd = ("cp $(location :src/com/google/web/bindery/autobean/AutoBean.gwt.xml) " + + "$(location java/com/google/web/bindery/autobean/AutoBean.gwt.xml)"), +) + +java_library( + name = "autobean", + srcs = [":autobean-classes-src.jar"], + constraints = [ + "gwt", + "public", + ], + gwtxml = "java/com/google/web/bindery/autobean/AutoBean.gwt.xml", + deps = [ + "//third_party/java_src/gwt:gwt-dev", + "//third_party/java_src/gwt:gwt-user-full", + ], +) + +# See //third_party/java/gwt:regexp +java_library( + name = "jvm_regexp", + srcs = glob( + ["src/com/google/gwt/regexp/shared/*.java"], + exclude = ["**/package-info.java"], + ), + constraints = ["android"], +) + +# See //third_party/java/gwt:hibernate-validation-support +java_library( + name = "hibernate-validation-support", + srcs = glob( + [ + "src/org/hibernate/validator/**/*_CustomFieldSerializer.java", + "src/org/hibernate/validator/engine/ValidationSupport.java", + ], + exclude = ["**/package-info.java"], + ), + deps = [ + "//third_party/java/hibernate:validator", + "//third_party/java/javax_validation", + "//third_party/java_src/gwt:gwt-servlet", + ], +) + +# The indirection through libgwt-servlet-impl.jar is needed so that Java symbols in the outputs of +# this package are distributed in one form (through the class jars, as AugmentedJar does) +# This prevents them appearing them on classpath as both sources and classes, which confuses javac +# For example see b/3033925 +java_library( + name = "gwt-servlet-internal", + srcs = [":libgwt-servlet-impl.jar"], +) + +java_library( + name = "gwt-servlet-impl", + srcs = glob( + [ + "src/com/google/gwt/**/server/**/*.java", + "src/com/google/gwt/**/shared/**/*.java", + "src/com/google/web/bindery/**/server/**/*.java", + "src/com/google/web/bindery/**/shared/**/*.java", + "src/com/google/web/bindery/**/vm/**/*.java", + "src/com/google/web/bindery/event/shared/**/*.java", + "src/javax/validation/**/*_CustomFieldSerializer.java", + # Despite the "client" designation, these packages are + # also reached by server RPC code: + "src/com/google/gwt/canvas/dom/client/*.java", + "src/com/google/gwt/debug/client/DebugInfo.java", + "src/com/google/gwt/media/dom/client/*.java", + "src/com/google/gwt/user/client/rpc/core/**/*CustomFieldSerializer*.java", + "src/com/google/gwt/user/client/rpc/core/java/util/*.java", + "src/com/google/gwt/user/client/rpc/SerializedTypeViolationException.java", + "src/com/google/gwt/user/client/rpc/IncompatibleRemoteServiceException.java", + "src/com/google/gwt/user/client/rpc/IsSerializable.java", + "src/com/google/gwt/user/client/rpc/GwtTransient.java", + "src/com/google/gwt/user/client/rpc/RemoteService.java", + "src/com/google/gwt/user/client/rpc/AsyncCallback.java", + "src/com/google/gwt/user/client/rpc/RemoteServiceRelativePath.java", + "src/com/google/gwt/user/client/rpc/RpcToken.java", + "src/com/google/gwt/user/client/rpc/RpcTokenException.java", + "src/com/google/gwt/user/client/rpc/RpcTokenExceptionHandler.java", + "src/com/google/gwt/user/client/rpc/impl/AbstractSerialization*.java", + "src/com/google/gwt/user/client/rpc/RpcRequestBuilder.java", + "src/com/google/gwt/user/client/rpc/ServiceDefTarget.java", + "src/com/google/gwt/user/client/rpc/InvocationException.java", + "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java", + "src/com/google/gwt/user/client/rpc/XsrfProtectedService.java", + "src/com/google/gwt/user/client/rpc/XsrfToken.java", + "src/com/google/gwt/user/client/rpc/XsrfTokenService.java", + "src/com/google/gwt/http/client/RequestBuilder.java", + "src/com/google/gwt/http/client/Request.java", + "src/com/google/gwt/http/client/Header.java", + "src/com/google/gwt/http/client/Response.java", + "src/com/google/gwt/http/client/ResponseImpl.java", + "src/com/google/gwt/http/client/RequestException.java", + "src/com/google/gwt/http/client/RequestPermissionException.java", + "src/com/google/gwt/http/client/RequestTimeoutException.java", + "src/com/google/gwt/http/client/RequestCallback.java", + "src/com/google/gwt/http/client/StringValidator.java", + "src/com/google/gwt/http/client/URL.java", + "src/com/google/gwt/http/client/UrlBuilder.java", + "src/com/google/gwt/json/client/JSONArray.java", + "src/com/google/gwt/json/client/JSONBoolean.java", + "src/com/google/gwt/json/client/JSONException.java", + "src/com/google/gwt/json/client/JSONNull.java", + "src/com/google/gwt/json/client/JSONNumber.java", + "src/com/google/gwt/json/client/JSONObject.java", + "src/com/google/gwt/json/client/JSONString.java", + "src/com/google/gwt/json/client/JSONValue.java", + "src/com/google/gwt/core/client/impl/SerializableThrowable.java", + "src/com/google/gwt/core/client/JsonUtils.java", + "src/com/google/gwt/core/client/impl/WeakMapping.java", + "src/com/google/gwt/xhr/client/ReadyStateChangeHandler.java", + "src/com/google/gwt/xhr/client/XMLHttpRequest.java", + "src/com/google/gwt/user/client/Timer.java", + "src/com/google/gwt/user/client/rpc/SerializationException.java", + "src/com/google/gwt/user/client/rpc/SerializationStreamReader.java", + "src/com/google/gwt/user/client/rpc/SerializationStreamWriter.java", + "src/com/google/gwt/rpc/client/ast/*.java", + "src/com/google/gwt/rpc/client/impl/CommandSerializationStreamWriterBase.java", + "src/com/google/gwt/rpc/client/impl/CommandClientSerializationStreamReader.java", + "src/com/google/gwt/rpc/client/impl/EscapeUtil.java", + "src/com/google/gwt/user/client/rpc/impl/ClientSerializationStreamWriter.java", + "src/com/google/gwt/user/client/rpc/impl/Serializer.java", + "src/com/google/gwt/rpc/client/impl/HasValuesCommandSink.java", + "src/com/google/gwt/rpc/client/impl/SimplePayloadSink.java", + "src/com/google/gwt/rpc/client/impl/RemoteException.java", + # ...which need: + "src/com/google/gwt/core/client/GWT.java", + "src/com/google/gwt/core/client/JavaScriptException.java", + "src/com/google/gwt/core/client/JavaScriptObject.java", + "src/com/google/gwt/core/client/JsArray.java", + "src/com/google/gwt/core/client/JsDate.java", + "src/com/google/gwt/core/client/Duration.java", + "src/com/google/gwt/core/client/Scheduler.java", + "src/com/google/gwt/user/client/Window.java", + "src/com/google/gwt/user/client/Window*.java", + "src/com/google/gwt/user/client/BaseListenerWrapper.java", + "src/com/google/gwt/user/client/Element.java", + "src/com/google/gwt/user/client/Event.java", + "src/com/google/gwt/user/client/EventListener.java", + "src/com/google/gwt/user/client/EventPreview.java", + "src/com/google/gwt/user/client/NativePreviewEvent.java", + "src/com/google/gwt/user/client/History.java", + "src/com/google/gwt/user/client/impl/HistoryImpl.java", + "src/com/google/gwt/user/client/impl/DomImpl.java", + "src/com/google/gwt/user/client/HistoryListener.java", + "src/com/google/gwt/user/client/Cookies.java", + "src/com/google/gwt/user/client/ui/AcceptsOneWidget.java", + "src/com/google/gwt/user/client/ui/Widget.java", + "src/com/google/gwt/user/client/ui/IsWidget.java", + "src/com/google/gwt/user/client/ui/HasOneWidget.java", + "src/com/google/gwt/user/client/ui/HasVisibility.java", + "src/com/google/gwt/user/client/ui/HasWidgets.java", + "src/com/google/gwt/user/client/ui/HasText.java", + "src/com/google/gwt/user/client/ui/AbsolutePanel.java", + "src/com/google/gwt/user/client/ui/ComplexPanel.java", + "src/com/google/gwt/user/client/ui/IndexedPanel.java", + "src/com/google/gwt/user/client/ui/InsertPanel.java", + "src/com/google/gwt/user/client/ui/Panel.java", + "src/com/google/gwt/user/client/ui/AttachDetachException.java", + "src/com/google/gwt/user/client/ui/UIObject.java", + "src/com/google/gwt/user/client/ui/PotentialElement.java", + "src/com/google/gwt/user/client/ui/RootPanel.java", + "src/com/google/gwt/user/client/ui/WidgetCollection.java", + "src/com/google/gwt/event/dom/client/HasNativeEvent.java", + "src/com/google/gwt/event/dom/client/PrivateMap.java", + "src/com/google/gwt/event/dom/client/DomEvent.java", + "src/com/google/gwt/event/dom/client/KeyEvent.java", + "src/com/google/gwt/event/dom/client/KeyCodeEvent.java", + "src/com/google/gwt/event/dom/client/KeyCodes.java", + "src/com/google/gwt/event/dom/client/KeyUpEvent.java", + "src/com/google/gwt/event/dom/client/HasKeyUpHandlers.java", + "src/com/google/gwt/event/dom/client/KeyUpHandler.java", + "src/com/google/gwt/user/client/DOM.java", + "src/com/google/gwt/user/client/impl/DOMImpl.java", + "src/com/google/gwt/user/client/impl/WindowImpl.java", + "src/com/google/gwt/dom/client/*.java", + "src/com/google/gwt/core/client/impl/Impl.java", + "src/com/google/gwt/core/client/impl/Disposable.java", + "src/com/google/gwt/core/client/impl/UnloadSupport.java", + "src/com/google/gwt/core/client/impl/StackTraceCreator.java", + "src/com/google/gwt/core/client/impl/SchedulerImpl.java", + "src/com/google/gwt/core/client/impl/AsyncFragmentLoader.java", + "src/com/google/gwt/core/client/impl/OnSuccessExecutor.java", + "src/com/google/gwt/core/client/impl/SynchronousOnSuccessExecutor.java", + "src/com/google/gwt/core/client/JsArrayInteger.java", + "src/com/google/gwt/core/client/JsArrayString.java", + "src/com/google/gwt/core/client/RunAsyncCallback.java", + "src/com/google/gwt/i18n/client/constants/*.java", + "src/com/google/gwt/i18n/client/impl/cldr/*.java", + "src/com/google/gwt/i18n/client/impl/plurals/*.java", + "src/com/google/gwt/i18n/client/impl/*.java", + "src/com/google/gwt/i18n/client/*.java", + "src/com/google/gwt/i18n/rebind/keygen/*.java", + # And it's also sensible to want for serialization: + "src/com/google/gwt/user/client/ui/SuggestOracle.java", + ], + exclude = [ + "**/junit/**", + "**/super/**", + "**/package-info.java", + "src/com/google/web/bindery/requestfactory/server/RequestFactoryJarExtractor.java", + ], + ), + javacopts = [ + "-encoding utf8", + "-source 5", + "-target 5", + ], + deps = [ + "//third_party/java/json", + "//third_party/java/servlet/servlet_api", + "//third_party/java_src/gwt/svn/tools:servlet_deps", + "//third_party/java_src/gwt/svn/trunk/dev:compiler.standalone.super", + "//third_party/java_src/gwt/svn/trunk/dev:servlet-deps", + ], +) + +# The minimum requirements for GWT-RPC serializable object definition. +# Includes support for data transfer objects (with default or custom field serialization) +# but not server interfaces, services, client code, etc. +# +# CAUTION: most of google ends up depending on this, via common/base:base-gwt +# and common/collect:collect-gwt. You really don't want it to be big! +java_library( + name = "gwt-dto-serializers", + srcs = [ + "src/com/google/gwt/user/client/rpc/CustomFieldSerializer.java", + "src/com/google/gwt/user/client/rpc/GwtTransient.java", + "src/com/google/gwt/user/client/rpc/IsSerializable.java", + "src/com/google/gwt/user/client/rpc/SerializationException.java", + "src/com/google/gwt/user/client/rpc/SerializationStreamReader.java", + "src/com/google/gwt/user/client/rpc/SerializationStreamWriter.java", + "src/com/google/gwt/user/client/rpc/core/java/util/Collections.java", + ] + glob([ + "src/com/google/gwt/user/client/rpc/core/java/util/*_CustomFieldSerializer*.java", + ]), + constraints = [ + "gwt", + "public", + ], + gwtxml = "Gwt-dto-serializers.gwt.xml", + javacopts = [ + "-encoding utf8", + "-source 5", + "-target 5", + ], +) + +# === TESTS === + +AugmentedJar( + name = "user-test-code", + srcs = glob( + [ + "test/**/*.java", + "test_i18n_bar/**/*.java", + ], + exclude = [ + "test/**/super/**", + "**/RunStyleSeleniumTest.java", + ], + ), + added_roots = [ + "test", + "test-super", + "test_i18n_bar", + ], + build_deps = [ + ":gwt-user-classes", + ":gwt-user-classes_jardeps", + "//third_party/java_src/gwt/svn/tools:dev_deps", + # Safe to depend on servlet_api_3 because build_deps doesn't leak + "//third_party/java_src/gwt/svn/tools:servlet_api_3", + "//third_party/java_src/gwt/svn/trunk/dev", + # for pre-jarjar imports + "//third_party/java_src/gwt/svn/trunk/dev:gwt-dev-classes", + ], + constraints = [ + "gwt", + "public", + ], + dojarjar = 1, + export_deps = [ + "//third_party/java_src/gwt:gwt-dev", # for the post-jarjar names + "//third_party/java_src/gwt:gwt", + ], + # visibility = ["//third_party/java_src/gwt:friends"], + deps = [ + "//third_party/java/jsr305_annotations", + "//third_party/java/junit", + "//third_party/java_src/gwt/svn/tools:testtool_deps", + "//third_party/java_src/gwt/svn/tools:validator_deps", + "//third_party/java_src/gwt/svn/tools:validator_tck_deps", + "//third_party/java_src/gwt/svn/trunk/dev:dev-test-code", + ], +) + +filegroup( + name = "browser_suite_files", + srcs = glob(["test/**/*Suite.java"], + exclude = [ + "test/**/*JreSuite.java", + ], + ) +) + +filegroup( + name = "nobrowser_suite_files", + srcs = glob(["test/**/*JreSuite.java"]), +) + +filegroup( + name = "emma_suite_files", + srcs = glob( + ["test/**/*Suite.java"], + exclude = [ + "test/**/CompilerSuite.java", + "test/**/*JreSuite.java", + ], + ), +) + +# === ant and checkstyle === + +# Files to be excluded from ant tests. +ANT_EXCLUDES = [ + "**/.git/**", + "**/.svn/**", + # in case eclipse output is mixed into source + "**/war/WEB-INF/classes/**", + "**/webapp/WEB-INF/classes/**", + "**/bin/**", + # emacs backup and autosave files + "**/*~", + "**/#*", + "test_i18n_dollar/**", +] + +filegroup( + name = "checkstyle_files", + srcs = glob( + ["*/com/google/gwt/**/*.java"], + exclude = ANT_EXCLUDES, + exclude_directories = 1, + ), +) + +filegroup( + name = "checkapi_files", + srcs = glob( + [ + "**/*.java", + "**/gwt*userApi.conf", + ], + exclude = ANT_EXCLUDES, + exclude_directories = 1, + ), +) + +filegroup( + name = "ant_files", + srcs = glob( + [ + "build.xml", + "javadoc/**/*", + "src/**/*", + "style/**/*", + "super/**/*", + "test/**/*", + "test_i18n_bar/**/*", + "test-super/**/*", + ], + exclude = ANT_EXCLUDES, + ), +) diff --git a/user/Gwt-dto-serializers.gwt.xml b/user/Gwt-dto-serializers.gwt.xml new file mode 100644 index 00000000000..da4410ffbff --- /dev/null +++ b/user/Gwt-dto-serializers.gwt.xml @@ -0,0 +1,3 @@ + + +