Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's New in JHipsterLand - Devoxx Poland 2017

What's New in JHipsterLand - Devoxx Poland 2017

JHipster is an application generator that allows you to create monoliths or microservices, based on Spring Boot and Angular. It leverages Spring Cloud for microservices and contains best-of-breed JavaScript and CSS libraries for creating your UI. In this session, you’ll learn about what’s new in JHipster. Topics include Angular 4, Progressive Web Apps, HTTP/2, JUnit 5 and Spring 5.

Monolith Demo: https://github.com/mraible/jhipster4-demo/blob/master/README.adoc

Microservices Demo: https://developer.okta.com/blog/2017/06/20/develop-microservices-with-jhipster

Matt Raible
PRO

June 23, 2017
Tweet

More Decks by Matt Raible

Other Decks in Programming

Transcript

  1. What’s New in JHipster
    Matt Raible
    [email protected]
    #DevoxxPL @mraible
    + =

    View Slide

  2. Blogger on raibledesigns.com
    UI Architect and Java Champion
    Father, Skier, Mountain
    Biker, Whitewater Rafter
    Web Framework Connoisseur
    Who is Matt Raible?
    Bus Lover
    Okta Developer Evangelist

    View Slide

  3. View Slide

  4. Authentication Standards

    View Slide

  5. #DevoxxPL
    About You
    Are you a Java developer that likes Spring?

    Do you like JavaScript? TypeScript?

    Anyone using Angular?

    Have you used JHipster before?

    View Slide

  6. #DevoxxPL
    JHipster jhipster.github.io

    View Slide

  7. #DevoxxPL
    JHipster is Open Source
    Web Statistics, May 2017

    386K Page Views

    49K Downloads

    GitHub Statistics

    7297 Stars

    337 Contributors
    www.openhub.net/p/generator-jhipster

    View Slide

  8. JHipster Downloads

    View Slide

  9. How to use JHipster
    To install JHipster and Yeoman, use npm:
    npm install -g yo generator-jhipster
    Then create a directory and cd into it:
    mkdir myapp && cd myapp
    Then run Yeoman:
    yo jhipster

    View Slide

  10. View Slide

  11. Feature In JHipster 4?
    Angular

    Progressive Web Apps

    HTTP/2

    JUnit 5

    Spring 5

    Bootstrap 4

    What’s new in JHipsterLand?
    #DevoxxPL

    View Slide

  12. View Slide

  13. HTTP/2
    Binary, instead of textual

    Fully multiplexed, instead of ordered and blocking

    Can use one connection for parallelism

    Uses header compression to reduce overhead

    Allows servers to “push” responses proactively into client caches

    View Slide

  14. View Slide

  15. View Slide

  16. View Slide

  17. HTTP/2 in JHipster
    /*
    * Enable HTTP/2 for Undertow - https://twitter.com/ankinson/status/829256167700492288
    * HTTP/2 requires HTTPS, so HTTP requests will fallback to HTTP/1.1.
    * See the JHipsterProperties class and your application-*.yml configuration files
    * for more information.
    */
    if (jHipsterProperties.getHttp().getVersion().equals(JHipsterProperties.Http.Version.V_2_0)) {
    if (container instanceof UndertowEmbeddedServletContainerFactory) {
    ((UndertowEmbeddedServletContainerFactory) container)
    .addBuilderCustomizers((builder) -> {
    builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true);
    });
    }
    }

    View Slide

  18. HTTP/2 in JHipster
    # ===============================================================================================
    # To enable SSL, generate a certificate using:
    # keytool -genkey -alias blog -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
    #
    # You can also use Let's Encrypt:
    # https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm
    #
    # Then, modify the server.ssl properties so your "server" configuration looks like:
    #
    # server:
    # port: 8443
    # ssl:
    # key-store: keystore.p12
    # key-store-password:
    # keyStoreType: PKCS12
    # keyAlias: blog
    # ===============================================================================================
    jhipster:
    http:
    version: V_1_1 # To use HTTP/2 you will need SSL support (see above the "server.ssl" configuration)

    View Slide

  19. View Slide

  20. JUnit 5

    View Slide

  21. Spring 5

    View Slide

  22. #DevoxxPL
    Spring Boot 1.5
    Apache Kafka Support

    Cloud Foundry actuator extensions

    Spring Data Ingalls

    LDAP support

    Loggers endpoint

    Spring Security 4.2 Support

    View Slide

  23. Bootstrap 4

    View Slide

  24. Bootstrap 4

    View Slide

  25. Build Tools
    Java: Maven or Gradle

    AngularJS: Gulp

    Angular: Webpack

    Web Dependencies:

    AngularJS: Bower

    Angular: npm or yarn

    View Slide

  26. View Slide

  27. Cool Webpack Features
    webpack-bundle-analyzer

    webpack-dashboard

    View Slide

  28. Get Started with JHipster 4 Demo

    View Slide

  29. AAA Sonar Rating

    View Slide

  30. JHipster Libraries

    View Slide

  31. JHipster + React

    View Slide

  32. View Slide

  33. Continuous Integration and Deployment
    $ yo jhipster:ci-cd

    Supports:

    Jenkins pipeline

    Travis CI

    GitLab CI

    CircleCI jhipster.github.io/setting-up-ci/

    View Slide

  34. View Slide

  35. Deploying to Production
    Cloud Foundry
    Heroku
    Kubernetes
    AWS
    AWS with Boxfuse

    View Slide

  36. Microservices with Docker Demo

    View Slide

  37. JHipster 4 Tutorials and Videos
    Monolith

    https://github.com/mraible/jhipster4-demo

    Microservices

    https://developer.okta.com/blog/2017/06/20/develop-
    microservices-with-jhipster

    View Slide

  38. #DevoxxPL
    The JHipster Mini-Book
    2.0 Release on Dec 5, 2016

    jhipster-book.com

    21-points.com

    @jhipster_book

    Write your own InfoQ mini-book! github.com/mraible/infoq-mini-book

    View Slide

  39. developer.okta.com/blog

    View Slide

  40. #DevoxxPL
    Questions?
    Keep in touch!

    raibledesigns.com

    @mraible

    Presentations

    speakerdeck.com/mraible

    Code

    github.com/oktadeveloper

    View Slide