Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eco system #351

Open
wants to merge 11 commits into
base: main
Choose a base branch
from
Open
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ familiar with MVP, you may want to read these articles first:
* [Large scale application development and MVP, Part I](../../articles/mvp-architecture.html)
* [Large scale application development and MVP, Part II](../../articles/mvp-architecture-2.html)

Note:</br>
Besides MVP Activities and Places, there are other third party implementations for managing browser history. Take a look [here](/eco/application.html).

**Definitions**

An _activity_ simply represents something the user is doing.
Expand Down
2 changes: 2 additions & 0 deletions src/main/markdown/doc/latest/DevGuideUi.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ In traditional JavaScript programming, dynamic user interface creation is done b
9. [Working with CSS](DevGuideUiCss.html) -- Style widgets with cascading style sheets
10. [Declarative UI with UiBinder](DevGuideUiBinder.html) -- Build widget and DOM structures from XML markup
11. [Bundling Image Resources](DevGuideUiImageBundles.html) -- Optimize image loading by reducing the number of HTTP requests for images

Note: The GWT Eco System provides also UI implementations. To learn more, take a look [here](/eco/ui.html).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Note: The GWT Eco System provides also UI implementations. To learn more, take a look [here](/eco/ui.html).
Note: Some libraries in the GWT ecosystem provide alternative UI implementations. To learn more, take a look [here](/eco/ui.html).

4 changes: 4 additions & 0 deletions src/main/markdown/doc/latest/tutorial/clientserver.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,10 @@ To try this out, see the tutorial, [Making Cross-Site Requests](Xsite.html).

Note: There is a variety of public sources of JSON-formatted data you can practice with, including [Google Data APIs](https://developers.google.com/gdata/) and [Yahoo! Web Services](http://developer.yahoo.com/).

### Using Third-Party-Libraries

Besides the client server communication provided by GWT, there are more options to communicate with the server. Take a look [here](/eco/com-and-more.html).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Besides the client server communication provided by GWT, there are more options to communicate with the server. Take a look [here](/eco/com-and-more.html).
Besides the client-server communication provided by GWT, there are more options to communicate with the server. Take a look [here](/eco/com-and-more.html).


## Making Asynchronous Calls

Whether you use GWT RPC or get JSON data via HTTP, all the calls you make from the HTML page to the server are asychronous.
Expand Down
21 changes: 21 additions & 0 deletions src/main/markdown/eco/add-lib.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Update Information

We will add or update information on request.

## Request for adding Dependencies to the Eco System site

The GWT eco system is a living system. New dependency will be created, other will be end of life. Also we know, that there are
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This paragraph talks about "dependencies", but maybe "libraries" would be more suitable?

Also a small typo "much more" => "many more".

much more dependency outside. If you think, one dependency not listed here is worth to be mentioned, [open an issue
on our tracker](https://github.com/gwtproject/gwt-site/issues/new/choose). This will trigger a process to get mentioned in the eco system content.

We will expect:

* The dependency must be maintained
* The dependency must be well documented
* The dependency must be deployed to Maven central
* The dependency must be an Open Source project

## Request for updating Library-Information

To update information of an already added dependency, [open an issue
on our tracker](https://github.com/gwtproject/gwt-site/issues/new/choose) containing the desired changes.
34 changes: 34 additions & 0 deletions src/main/markdown/eco/application.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Application Frameworks

One of the main tasks, when writing a GWT application is separating the code and managing the state. GWT offers with
[MVP Activities and Places](/doc/latest/DevGuideMvpActivitiesAndPlaces.html) modules to do that. Over the
Comment on lines +3 to +4
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
One of the main tasks, when writing a GWT application is separating the code and managing the state. GWT offers with
[MVP Activities and Places](/doc/latest/DevGuideMvpActivitiesAndPlaces.html) modules to do that. Over the
One of the main tasks, when writing a GWT application, is separating the code and managing the state. GWT offers
[MVP Activities and Places](/doc/latest/DevGuideMvpActivitiesAndPlaces.html) modules which do that. Over the

time other implementations evolved.

## domino-mvp and domino-history<a id="domino-mvp-history"></a>

Domino-mvp is a small, simple and a very lightweight framework for building both simple and complex applications using
GWT, it introduce the concept of routing using both tokens and events, also allows the developers to write a modular
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
GWT, it introduce the concept of routing using both tokens and events, also allows the developers to write a modular
GWT, it introduces the concept of routing using both tokens and events, also allows the developers to write a modular

application and shared components with any other domino application.

For more information about domino-mvp, see: [domino-mvp at GitHub](https://github.com/DominoKit/domino-mvp)

Domino-history is a wrapper for the browser history state API.

For more information about domino-history, see: [domino-history at GitHub](https://dominokit.com/solutions/domino-history/v1)

## Nalu<a id="nalu"></a>

Nalu is a tiny framework that helps you to create GWT based applications quite easily. Using the HTML 5 history for
routing and navigation, Nalu supports the browser's back-, forward-, and reload-button by default and without any
need to implement anything.

For more information about Nalu, see: [Nalu at GitHub](https://github.com/NaluKit/nalu)

## Support

The GWT project team does not support this projects. In case you have questions or would like to open an issue, please
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The GWT project team does not support this projects. In case you have questions or would like to open an issue, please
The GWT project team does not support these projects. In case you have questions or would like to open an issue, please

contact the contributor of the project!
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe you meant maintainers? (same for the other pages)


## Missing Something?

If you are missing a dependency or a framework from the list, please follow the instructions [here](add-lib.html) to add it.
46 changes: 46 additions & 0 deletions src/main/markdown/eco/archetype.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Creating GWT applications

The GWT framework comes with an application creator known as **webAppCreator**. This **webAppCreator** creates
a simple Maven project with some test code. It is ready use, will launch and while running, do a RPC server call. All
classes are located in one Maven project.

Besides the **webAppCreator** there are more application creator. Depending on your needs, this archetype creator might be
a better choice for your needs.

## Application Creators

Here are a list of application creator. As far as we known, all of this projects are under active development.

### gwt-maven-archetypes<a id="create-third-party-tb"></a>

This archetype creator will generate a Maven based GWT project with separate modules for client-, shared- and server-code.
The server module is based on Jetty. In modern GWT development the separation of client-, shared- and server-code is the
way to go. This archetype generator is a great place to start.

For more information visit the archetype at [gwt-maven-archetypes at GitHub](https://github.com/tbroyer/gwt-maven-archetypes)
and follow the instructions.

### gwt-maven-springboot-archetype<a id="create-third-party-nk"></a>

This archetype creator will generate a Maven based GWT project with separate modules for client-, shared- and server-code
similar to the one above, but in opposite to the first one, uses Spring Boot on the server side. In case
you are planing to use Spring Boot on the server side, this is a prefect archetype to start

For more information visit the archetype at [gwt-maven-springboot-archetype at GitHub](https://github.com/NaluKit/gwt-maven-springboot-archetype)
and follow the instructions.

### domino-cli<a id="create-third-party-do-cli"></a>

The domino-cli provides a tool for generating application templates using the DominoKit tool stack.

For more information visit the archetype at [domino-cli at GitHub](https://github.com/DominoKit/domino-cli)
and follow the instructions.

## Support

The GWT project team does not support this projects. In case you have questions or would like to open an issue, please
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
The GWT project team does not support this projects. In case you have questions or would like to open an issue, please
The GWT project team does not support these projects. In case you have questions or would like to open an issue, please

contact the contributor of the project!

## Missing Something?

If you are missing a dependency or a archetype creator from the list, please follow the instructions [here](add-lib.html) to add it.
57 changes: 57 additions & 0 deletions src/main/markdown/eco/com-and-more.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Communication, Validation & more ...

GWT comes with a variate of frameworks to communicate with the server.
Take a look at [Ajax Communication](/doc/latest/tutorial/clientserver.html) for more information about modules GWT offers.
Besides that, there are many useful libraries.

Check these:

## Client-Server-Communication

Besides the [communication to the server provided by GWT](/doc/latest/tutorial/clientserver.html)
there are alternative implementations, too.

### domino-rest<a id="domino-rest"></a>

Domino-rest is a lib for generating rest clients from JaxRs compatible interfaces, and the generated clients can be used
from both client side -browser- using GWT and on the server. The lib works with GWT2 and also with GWT3/J2CL. The
serialization and deserialization is based on domino-jackson and service definition is based on JaxRs annotations, while
FrankHossfeld marked this conversation as resolved.
Show resolved Hide resolved
code generation uses annotation processing APT.

For more information see: [domino-rest at GitHub](https://dominokit.com/solutions/domino-rest/v1) and [domino-jackson at GitHub](https://dominokit.com/solutions/domino-jackson/v1)

## Validation<a id="validation"></a>

There are several implementation to validate data in GWT:

### Iban4g - IBAN-Validation<a id="iban4g"></a>

A Java, GWT and J2CL ready library for generation and validation of the International Bank Account Numbers (IBAN ISO_13616)
and Business Identifier Codes (BIC ISO_9362). The library can be used on the client and server side.

For more information, see: [iban4g at GitHub](https://github.com/NaluKit/iban4g)

### Malio - POJO-Validation<a id="malio"></a>

Malio is a tiny framework to validate POJOs using annotations. It is easy to use by just adding annotations to members
of a POJO. No writing of validations or validators. Based on the annotations inside the POJO, the processor generates
a validator. The generated validator can be used to check or validate the POJO. Malio valdators can bes used in GWT, J2CL
and Java.

For more information, see: [malio at GitHub](https://github.com/NaluKit/malio)

### gwt-bean-validators<a id="gwt-bean-validators"></a>

Implementation of Bean Validation (JSR-303/JSR-349/JSR-380) for GWT as replacement of deprecated GWT internal validation
implementation.

For more information, see: [gwt-bean-validators at GitLab](https://gitlab.com/ManfredTremmel/gwt-bean-validators)

## Support

The GWT project team does not support these projects. In case you have questions or would like to open an issue, please
contact the contributor of the project!

## Missing Something?

If you are missing a dependency or a framework from the list, please follow the instructions [here](add-lib.html) to add it.
15 changes: 15 additions & 0 deletions src/main/markdown/eco/config.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>


<folder href="latest/DevGuide.html">
<toc>
<entries>
<entry name="add-lib" displayName="Add Library Request" description="Add Library Request"></entry>
<entry name="application" displayName="Application Frameworks" description="Application Frameworks"></entry>
<entry name="archetype" displayName="Archetype Creator" description="Archetype Creator"></entry>
<entry name="eco-news" displayName="Eco System News" description="Eco System News"></entry>
<entry name="eco-system" displayName="Eco System" description="The GWT Eco System"></entry>
<entry name="ui" displayName="UI Frameworks" description="UI Frameworks"></entry>
</entries>
</toc>
</folder>
161 changes: 161 additions & 0 deletions src/main/markdown/eco/eco-news.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
GWT News

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might try to investigate if we can automate this, by allowing libraries to publish some RSS feeds to some service where we can fetch and display them, libraries and apps might be able to include some RSS publishing right through the release process like github actions or other means.

Copy link
Member Author

@FrankHossfeld FrankHossfeld Dec 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be awesome if we can automate this. To start, I think, we can go with a manual solution.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

GitHub releases are probably the way to go. They can be consumed as Atom feed out of the box: https://github.com/gwtproject/gwt/releases.atom

===

This news page is the source for updates from GWT related projects. Maintainers have to [open an issue
on our tracker](https://github.com/gwtproject/gwt-site/issues/new/choose) to add or update a news on this page.

Updates about the official GWT team will be found [here](news.html).

<style>
.container-list-news {
display: flex;
flex-direction: column;
margin-top: 4em;
grid-gap: 1.5em;
gap: 1.5em;
box-sizing: border-box;
/*border: 0 solid white;*/
width: 100%
}

.container-news {
padding: 1em;
border: 1px solid darkgrey;
border-radius: 1em;
background: white;
}

.container-headline {
color: #f93535;
text-decoration: none;
font-weight: bold;
font-size: 160%;
}

.container-date {
padding: 1em 0 0 0;
font-weight: bold;
color: #9e9d9d;
}

.container-text {
padding: 1em 0 0 0;
color: black;
}

.container-link {
padding: 1em 0 0 0;
font-weight: bold;
color: #9e9d9d;
}
</style>
<div class="container-list-news">
<div class="container-news">
<a href="https://github.com/DominoKit/domino-jackson/releases/tag/1.0.4" target="_blank">
<div class="container-headline">
domino-jackson 1.0.4 released
</div>
</a>
<div class="container-date">
December 10, 2023
</div>
<div class="container-text">
The releases introduced a better way to do super sources that is compatible with GWT and J2CL, upgraded dependencies, moved to java 11 and introduces custom (de)serializers support.
</div>
<a href="https://github.com/DominoKit/domino-jackson/releases/tag/1.0.4" target="_blank">
<div class="container-link">
Read more
</div>
</a>
</div>
<div class="container-news">
<a href="https://github.com/DominoKit/domino-rest" target="_blank">
<div class="container-headline">
domino-rest 1.0.2 released
</div>
</a>
<div class="container-date">
December 10, 2023
</div>
<div class="container-text">
The releases introduced a better way to do super sources that is compatible with GWT and J2CL, upgraded dependencies, moved to java 11 and fixes some minor issues.
</div>
<a href="https://github.com/DominoKit/domino-rest" target="_blank">
<div class="container-link">
Read more
</div>
</a>
</div>
<div class="container-news">
<a href="https://github.com/DominoKit/domino-ui/releases/tag/1.0.6" target="_blank">
<div class="container-headline">
domino-ui 1.0.6 released
</div>
</a>
<div class="container-date">
December 10, 2023
</div>
<div class="container-text">
Adds a new method to the LocalListScrollingDataSource. Check the release notes for more information.
</div>
<a href="https://github.com/DominoKit/domino-ui/releases/tag/1.0.6" target="_blank">
<div class="container-link">
Read more
</div>
</a>
</div>
<div class="container-news">
<a href="https://github.com/DominoKit/domino-ui/releases/tag/2.0.0-RC5" target="_blank">
<div class="container-headline">
domino-ui 2.0.0-RC5 released
</div>
</a>
<div class="container-date">
December 10, 2023
</div>
<div class="container-text">
Adds a lot of enhancements and features. The release also contains a lot of bug fixes. To get a full list of enhancements, features and bug fixes, check the release notes.
</div>
<a href="https://github.com/DominoKit/domino-ui/releases/tag/2.0.0-RC5" target="_blank">
<div class="container-link">
Read more
</div>
</a>
</div>
<div class="container-news">
<a href="https://github.com/DominoKit/domino-rest/releases/tag/1.0.1" target="_blank">
<div class="container-headline">
domino-rest version 1.0.1 released
</div>
</a>
<div class="container-date">
November 28, 2023
</div>
<div class="container-text">
Update emulation and super sources to be compatible with gwt and j2cl, move to java 11 and upgrade dependencies.
</div>
<a href="https://github.com/DominoKit/domino-rest/releases/tag/1.0.1" target="_blank">
<div class="container-link">
Read more
</div>
</a>
</div>
<div class="container-news">
<a href="https://github.com/NaluKit/nalu/releases/tag/2.12.6" target="_blank">
<div class="container-headline">
nalu version 2.12.6 released
</div>
</a>
<div class="container-date">
September 12, 2023
</div>
<div class="container-text">
This is a bug fix release. It fixes an issue related to reloading a page in a non hash context.
</div>
<a href="https://github.com/NaluKit/nalu/releases/tag/2.12.6" target="_blank">
<div class="container-link">
Read more
</div>
</a>
</div>
</div>
Loading