What's New in JHipsterLand - DevNexus 2017

72a2082c6a4dd79ad68befb3db911616?s=47 Matt Raible
February 24, 2017

What's New in JHipsterLand - DevNexus 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 explored include Angular 2, Progressive Web Apps, HTTP/2, JUnit 5, and Spring 5.

72a2082c6a4dd79ad68befb3db911616?s=128

Matt Raible

February 24, 2017
Tweet

Transcript

  1. WHAT’S NEW IN JHIPSTERLAND MATT RAIBLE / @MRAIBLE

  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 Stormpath Developer Evangelist
  3. None
  4. Stormpath User Management

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

    Do you like JavaScript? TypeScript? Anyone using Angular? Have you used JHipster before?
  6. JHipster jhipster.github.io

  7. JHipster is Open Source Web Statistics, January 2017 282K Page

    Views 18K Downloads GitHub Statistics 6229 Stars 298 Contributors www.openhub.net/p/generator-jhipster
  8. JHipster 4

  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
  10. None
  11. Feature In JHipster 4? Angular ✅ Progressive Web Apps ❌

    HTTP/2 ✅ JUnit 5 ❌ Spring 5 ❌ Bootstrap 4 ✅ What’s new in JHipsterLand?
  12. None
  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
  14. 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); }); } }
  15. 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: <your-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)
  16. None
  17. JUnit 5

  18. Spring 5

  19. Spring Boot 1.5 Apache Kafka Support Cloud Foundry actuator extensions

    Spring Data Ingalls LDAP support Loggers endpoint Spring Security 4.2 Support
  20. Bootstrap 4

  21. Bootstrap 4

  22. Build Tools Java: Maven or Gradle AngularJS: Gulp Angular: Webpack

    Web Dependencies: AngularJS: Bower Angular: npm or yarn
  23. None
  24. Get Started with JHipster 4 Demo

  25. AAA Sonar Rating

  26. JHipster Libraries

  27. Thoughtworks Radar

  28. None
  29. None
  30. None
  31. None
  32. Continuous Integration and Deployment $ yo jhipster:ci-cd Supports: Jenkins pipeline

    Travis CI GitLab CI CircleCI jhipster.github.io/setting-up-ci/
  33. None
  34. Deploying to Production Cloud Foundry Heroku Kubernetes AWS AWS with

    Boxfuse
  35. Deploy to Google Cloud with Kubernetes 1. Convert a monolith

    to a microservice gateway hibernateCache: “hazelcast” serviceDiscovery: “eureka” applicationType: “gateway” 2. Create microservices app and generate entities 3. Create UI for entities on gateway using yo jhipster:entity 4. Clone JHipster Registry in same directory and prove it all works
  36. Deploy to Google Cloud with Kubernetes 5. Create a sub-directory

    alongside apps and run yo jhipster:kubernetes 6. Create a Google Cloud project - console.cloud.google.com 7. Set project using gcloud config set project $project-name 8. Create a cluster: gcloud container clusters create demo --machine-type=n1- standard-2 --scopes cloud-platform 9. Authenticate: gcloud auth application-default login --no-launch-browser
  37. Deploy to Google Cloud with Kubernetes 10. Run kubectl commands

    to deploy 11. Use port-forwarding to see registry locally: kubectl port-forward jhipster-registry-0 8761:8761 12. Scale microservice apps as needed: kubectl scale deployment store --replicas=3
  38. Microservices with Docker Demo

  39. Shortcut to becoming a JHipster Expert? JUST DO IT.

  40. 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
  41. Keep in touch! raibledesigns.com @mraible Presentations slideshare.net/mraible Code github.com/mraible Questions?