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

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 full-size 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 full-size slide

  3. Authentication Standards

    View full-size slide

  4. #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 full-size slide

  5. #DevoxxPL
    JHipster jhipster.github.io

    View full-size slide

  6. #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 full-size slide

  7. JHipster Downloads

    View full-size slide

  8. 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 full-size slide

  9. Feature In JHipster 4?
    Angular

    Progressive Web Apps

    HTTP/2

    JUnit 5

    Spring 5

    Bootstrap 4

    What’s new in JHipsterLand?
    #DevoxxPL

    View full-size slide

  10. 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 full-size slide

  11. 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 full-size slide

  12. 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 full-size slide

  13. #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 full-size slide

  14. Build Tools
    Java: Maven or Gradle

    AngularJS: Gulp

    Angular: Webpack

    Web Dependencies:

    AngularJS: Bower

    Angular: npm or yarn

    View full-size slide

  15. Cool Webpack Features
    webpack-bundle-analyzer

    webpack-dashboard

    View full-size slide

  16. Get Started with JHipster 4 Demo

    View full-size slide

  17. AAA Sonar Rating

    View full-size slide

  18. JHipster Libraries

    View full-size slide

  19. JHipster + React

    View full-size slide

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

    Supports:

    Jenkins pipeline

    Travis CI

    GitLab CI

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

    View full-size slide

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

    View full-size slide

  22. Microservices with Docker Demo

    View full-size slide

  23. 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 full-size slide

  24. #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 full-size slide

  25. developer.okta.com/blog

    View full-size slide

  26. #DevoxxPL
    Questions?
    Keep in touch!

    raibledesigns.com

    @mraible

    Presentations

    speakerdeck.com/mraible

    Code

    github.com/oktadeveloper

    View full-size slide