Skip to content

Commit a87a984

Browse files
authored
Merge pull request #8 from FrankHossfeld/master
several improvements
2 parents 0f6c7e6 + b3a5d01 commit a87a984

File tree

14 files changed

+273
-450
lines changed

14 files changed

+273
-450
lines changed

.github/workflows/build.yaml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#
2+
# Copyright © 2018 The GWT Project Authors
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
#
16+
17+
name: CI
18+
19+
on: [push, pull_request]
20+
21+
jobs:
22+
build:
23+
runs-on: ubuntu-latest
24+
25+
steps:
26+
- uses: actions/checkout@v2
27+
28+
# TODO: cache dependencies (taking into accounts: Maven plugins, snapshots, etc.)
29+
30+
- name: Build with Maven
31+
run: JAVA_HOME=$JAVA_HOME_8_X64 mvn -V -B -ntp -U -e verify
32+

.gitignore

Lines changed: 7 additions & 228 deletions
Original file line numberDiff line numberDiff line change
@@ -1,231 +1,10 @@
1-
# Created by .ignore support plugin (hsz.mobi)
2-
### GWT template
3-
*.class
1+
# NOTE: we don't include IDE-specific files (e.g. IntelliJ's *.iml and .idea/) on-purpose.
2+
# Those patterns should go in a global gitignore or repository-specific excludes.
3+
# See http://www.gwtproject.org/makinggwtbetter.html#global_gitignore
44

5-
# gwt caches and compiled units #
6-
war/gwt_bree/
7-
gwt-unitCache/
8-
9-
# boilerplate generated classes #
10-
.apt_generated/
11-
12-
# more caches and things from deploy #
13-
war/WEB-INF/deploy/
14-
war/WEB-INF/classes/
15-
16-
#compilation logs
17-
.gwt/
18-
19-
#gwt junit compilation files
20-
www-test/
21-
22-
#old GWT (1.5) created this dir
23-
.gwt-tmp/
24-
### Java template
25-
# Compiled class file
26-
27-
# Log file
28-
*.log
29-
30-
# BlueJ files
31-
*.ctxt
32-
33-
# Mobile Tools for Java (J2ME)
34-
.mtj.tmp/
35-
36-
# Package Files #
37-
*.jar
38-
*.war
39-
*.nar
40-
*.ear
41-
*.zip
42-
*.tar.gz
43-
*.rar
44-
45-
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
46-
hs_err_pid*
47-
### Gradle template
48-
.gradle
49-
/build/
50-
51-
# Ignore Gradle GUI config
52-
gradle-app.setting
53-
54-
# Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
55-
!gradle-wrapper.jar
56-
57-
# Cache of project
58-
.gradletasknamecache
59-
60-
# # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
61-
# gradle/wrapper/gradle-wrapper.properties
62-
### macOS template
63-
# General
64-
.DS_Store
65-
.AppleDouble
66-
.LSOverride
67-
68-
# Icon must end with two \r
69-
Icon
70-
71-
# Thumbnails
72-
._*
73-
74-
# Files that might appear in the root of a volume
75-
.DocumentRevisions-V100
76-
.fseventsd
77-
.Spotlight-V100
78-
.TemporaryItems
79-
.Trashes
80-
.VolumeIcon.icns
81-
.com.apple.timemachine.donotpresent
82-
83-
# Directories potentially created on remote AFP share
84-
.AppleDB
85-
.AppleDesktop
86-
Network Trash Folder
87-
Temporary Items
88-
.apdisk
89-
### Example user template template
90-
### Example user template
91-
92-
# IntelliJ project files
93-
.idea
94-
out
95-
*.iml
96-
97-
gen### Eclipse template
98-
99-
.metadata
100-
bin/
101-
tmp/
102-
*.tmp
103-
*.bak
104-
*.swp
105-
*~.nib
106-
local.properties
107-
.settings/
108-
.loadpath
109-
.recommenders
110-
111-
# External tool builders
112-
.externalToolBuilders/
113-
114-
# Locally stored "Eclipse launch configurations"
115-
*.launch
116-
117-
# PyDev specific (Python IDE for Eclipse)
118-
*.pydevproject
119-
120-
# CDT-specific (C/C++ Development Tooling)
121-
.cproject
122-
123-
# CDT- autotools
124-
.autotools
125-
126-
# Java annotation processor (APT)
127-
.factorypath
128-
129-
# PDT-specific (PHP Development Tools)
130-
.buildpath
131-
132-
# sbteclipse plugin
133-
.target
134-
135-
# Tern plugin
136-
.tern-project
137-
138-
# TeXlipse plugin
139-
.texlipse
140-
141-
# STS (Spring Tool Suite)
142-
.springBeans
143-
144-
# Code Recommenders
145-
.recommenders/
146-
147-
# Scala IDE specific (Scala & Java development for Eclipse)
148-
.cache-main
149-
.scala_dependencies
150-
.worksheet
151-
### AppEngine template
152-
# Google App Engine generated folder
153-
appengine-generated/
154-
### Clojure template
155-
/lib/
156-
/classes/
157-
/target/
158-
/checkouts/
159-
.lein-deps-sum
160-
.lein-repl-history
161-
.lein-plugins/
162-
.lein-failures
163-
.nrepl-port
164-
.cpcache/
165-
### JetBrains template
166-
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
167-
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
168-
169-
# User-specific stuff
170-
.idea/**/tasks.xml
171-
.idea/**/usage.statistics.xml
172-
.idea/**/dictionaries
173-
.idea/**/shelf
174-
175-
# Sensitive or high-churn files
176-
.idea/**/dataSources/
177-
.idea/**/dataSources.ids
178-
.idea/**/dataSources.local.xml
179-
.idea/**/sqlDataSources.xml
180-
.idea/**/dynamic.xml
181-
.idea/**/uiDesigner.xml
182-
.idea/**/dbnavigator.xml
183-
184-
# Gradle
185-
.idea/**/gradle.xml
186-
.idea/**/libraries
187-
188-
# Gradle and Maven with auto-import
189-
# When using Gradle or Maven with auto-import, you should exclude module files,
190-
# since they will be recreated, and may cause churn. Uncomment if using
191-
# auto-import.
192-
.idea/modules.xml
193-
.idea/*.iml
194-
.idea/modules
195-
196-
# CMake
197-
cmake-build-*/
198-
199-
# Mongo Explorer plugin
200-
.idea/**/mongoSettings.xml
201-
202-
# File-based project format
203-
*.iws
204-
205-
# IntelliJ
206-
out/
207-
208-
# mpeltonen/sbt-idea plugin
209-
.idea_modules/
210-
211-
# JIRA plugin
212-
atlassian-ide-plugin.xml
213-
214-
# Cursive Clojure plugin
215-
.idea/replstate.xml
216-
217-
# Crashlytics plugin (for Android Studio and IntelliJ)
218-
com_crashlytics_export_strings.xml
219-
crashlytics.properties
220-
crashlytics-build.properties
221-
fabric.properties
222-
223-
# Editor-based Rest Client
224-
.idea/httpRequests
5+
target/
6+
.flattened-pom.xml
2257

226-
# in our case the war directory
8+
# gwt caches and compiled units #
2279
war/
228-
229-
# target folder
230-
*/target/*
231-
.flattened-pom.xml
10+
gwt-unitCache/

.mvn/maven.config

Lines changed: 0 additions & 1 deletion
This file was deleted.
File renamed without changes.

README.md

Lines changed: 55 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,67 @@
1-
![GWT3/J2CL compatible](https://img.shields.io/badge/GWT3/J2CL-compatible-brightgreen.svg)
2-
31
# GWT Core
42

3+
![GWT3/J2CL compatible](https://img.shields.io/badge/GWT3/J2CL-compatible-brightgreen.svg) [![License](https://img.shields.io/:license-apache-blue.svg)](http://www.apache.org/licenses/LICENSE-2.0.html) [![Chat on Gitter](https://badges.gitter.im/hal/elemento.svg)](https://gitter.im/gwtproject/gwt-modules) ![CI](https://github.com/gwtproject/gwt-core/workflows/CI/badge.svg)
4+
5+
A future-proof port of the `com.google.gwt.core.Core` GWT module, with no dependency on `gwt-user` (besides the Java Runtime Emulation), to prepare for GWT 3 / J2Cl.
6+
57
This project is meant to roughly approximate the various classes and methods found in gwt-user's `com.google.gwt.core`
68
packages. In some cases, updated replacements are provided, in other cases working, but deprecated versions are offered,
79
and further classes or members are outright skipped, encouraging projects to either find an alternative way to manage
810
these operations before updating, or switch to a GWT3-version while performing the actual migration.
911

1012
This project is not yet complete, there are doubtlessly better ways to handle some cases here.
1113

14+
## Migrating from `com.google.gwt.core.Core`
15+
16+
1. Add the dependency to your build.
17+
18+
For Maven:
19+
20+
```xml
21+
<dependency>
22+
<groupId>org.gwtproject.core</groupId>
23+
<artifactId>gwt-core</artifactId>
24+
<version>HEAD-SNAPSHOT</version>
25+
</dependency>
26+
```
27+
28+
For Gradle:
29+
30+
```gradle
31+
implementation("org.gwtproject.core:gwt-core:HEAD-SNAPSHOT")
32+
```
33+
34+
2. Update your GWT module to use
35+
36+
```xml
37+
<inherits name="org.gwtproject.core.Core" />
38+
```
39+
40+
3. Change the `import`s in your Java source files:
41+
42+
```java
43+
import org.gwtproject.core.client.GWT;
44+
```
45+
46+
## Instructions
47+
48+
To build gwt-core:
49+
50+
* run `mvn clean verify`
1251

13-
### Listing of classes from gwt-user's core
52+
on the parent directory. This will build the artifact and run tests against the JVM, J2CL, and GWT2.
53+
54+
## System Requirements
55+
56+
**GWT Core requires GWT 2.9.0 or newer!**
57+
58+
59+
## Dependencies
60+
61+
GWT Core does not depend on any other module.
62+
63+
64+
## Listing of classes from gwt-user's core
1465

1566
* client
1667
* debug
@@ -70,7 +121,7 @@ migrate to the new packages, then later update to newer versions of the migrated
70121
improvements are made.
71122

72123

73-
### Updating JavaScriptObject subclasses
124+
## Updating JavaScriptObject subclasses
74125
As with most of the deprecated classes kept in this library, existing JavaScriptObject types should be rewritten using
75126
jsinterop annotations to correctly explain to the compiler what is happening. This class can still be convient to use
76127
as an argument or return type, but generally should not be extended in your own projects any longer.
@@ -86,21 +137,3 @@ Some basic guidlines to follow:
86137
* Overlay methods need to be marked with `@JsOverlay`, and continue to need to be effectively final (i.e. never
87138
overridden), but no longer need to be marked as `final`.
88139

89-
90-
### Dependency
91-
92-
```xml
93-
<dependency>
94-
<groupId>org.gwtproject.core</groupId>
95-
<artifactId>gwt-core</artifactId>
96-
<version>1.0-SNAPSHOT</version>
97-
</dependency>
98-
```
99-
100-
### Instructions
101-
To build gwt-core:
102-
103-
* run `mvn clean install`
104-
105-
on the parent directory. This will build the artifact and run tests against the JVM, J2CL, and GWT2.
106-

0 commit comments

Comments
 (0)