:index-group: Frameworks
:jbake-type: page
:jbake-status: published

== Vaadin V8 (LTS) - WebApp Simples em Java

Essa demo vai mostrar como iniciar com uma simples webapp V8, baseado na API pura do Java executando no TomEE (webprofile)

O Framework Vaadin é open source e está disponível em
https://github.com/vaadin/framework[Github]

=== Buildando esse exemplo

Para 'buildar' esse exemplo, apenas execute _mvn clean install tomee:run_ Você encontrará o app executando em http://localhost:8080/

=== Implementação

Essa implementação está usando o https://vaadin.com/framework[Vaadin 8
API].

[source,java]
----
public class HelloVaadin {

    public static class MyUI extends UI {
        @Override
        protected void init(VaadinRequest request) {

            //create the components you want to use
            // and set the main component with setContent(..)
            final Layout layout = new VerticalLayout();
            layout
                .addComponent(new Button("click me",
                                         event -> layout.addComponents(new Label("clicked again"))
                ));

            //set the main Component
            setContent(layout);
        }

        @WebServlet("/*")
        @VaadinServletConfiguration(productionMode = false, ui = MyUI.class)
        public static class MyProjectServlet extends VaadinServlet { }
    }
}
----

A documentação do Vaadin Framework está disponível 
https://vaadin.com/docs/v8/framework/tutorial.html[aqui]

=== Informação de Suporte

O Framework Vaadin 8 é a versão mais recente baseada no GWT. V8 em si é uma versão
LTS.

A nova Vaadin Platform é baseada em WebComponents. A partir do Vaadin 10,
Vaadin está sendo movido para o modelo de release train com quatro versões major todo
ano. Isso lhes permite enviar novas funcionalidades rapidamente para desenvolvedores. Vaadin
continua o seu empenho em termos de estabilidade a longo prazo com versões long-term
support (LTS). As versões LTS vão sair aproximadamente a cada dois anos e oferecerão 5 anos de suporte.
