project jigsaw
play

Project Jigsaw_ Florian Trobach whoami codecentric Karlsruhe - PowerPoint PPT Presentation

Project Jigsaw_ Florian Trobach whoami codecentric Karlsruhe Plain Old Java Dev Currently trying to tame the SMACK stack 2 Services 3 Modules can provide services java.util.ServiceLoader 4 Modules can provide services


  1. Project Jigsaw_ Florian Troßbach

  2. whoami • codecentric Karlsruhe • Plain Old Java Dev • Currently trying to tame the SMACK stack 2

  3. Services 3

  4. Modules can provide services • java.util.ServiceLoader 4

  5. Modules can provide services • Modules provide service implementations • Other modules can use services • ServiceLoader finds all implementations on the module path • No dependency on the providing modules needed => decoupling! 5

  6. Example module org.codefx.demo.advent { // list the required modules requires org.codefx.demo.advent.calendar; // list the used services uses org.codefx.demo.advent.surprise.SurpriseFactory; } module org.codefx.demo.advent.factory.quote { requires public org.codefx.demo.advent.surprise; // specify which class provides which service provides org.codefx.demo.advent.surprise.SurpriseFactory with org.codefx.demo.advent.factory.quote.QuoteFactory; } 6

  7. Example Diagram by Nicolai Parlog, http://blog.codefx.org/java/dev/jigsaw-hands-on-guide/ 7

  8. Working with non-modular code 8

  9. Non-modular code • Using libraries s e l u d o m c i t a m • Spring, Guava, … o t u A • your internal library • Using modular code from e l u d o m d e m a n non-modular code n U 9

  10. Automatic modules What is the name of an automatic module? • The name of the jar • guava.jar => “guava” • guava-19.0.jar 10

  11. Automatic modules What does an automatic module export? • All its packages • => All public types 11

  12. Automatic modules What does an automatic module require? • All exports of all modules on the module path • All public types in the unnamed module 12

  13. The unnamed module What is the name of the unnamed module? • Any guesses? 13

  14. The unnamed module What does the unnamed module export? • All its packages • requires unnamed; 14

  15. The unnamed module What does an the unnamed module require? • All exports of all modules on the module path 15

  16. Overview Named Modules Unnamed module java.base commons- io-2.4.0.jar [..].advent guava [..].advent.surprise commons-lang.jar 16

  17. Example 17

  18. Breaking Jigsaw - Live 18

  19. jlink 19

  20. Build your own JRE! • Create your own Java runtime • Pick which modules to include • Can lead to really small distributions (< 15 MB) 20

  21. Example 21

  22. Resources • https:/ /github.com/ftrossbach/demo-jigsaw-advent-calendar • Mark Reinhold, “The State of the Module System” • http:/ /openjdk.java.net/projects/jigsaw/spec/sotms/ • Nicolai Parlog’s posts on Jigsaw • http:/ /blog.codefx.org/tag/project-jigsaw/ • My blog posts on Jigsaw • https:/ /blog.codecentric.de/en/2015/11/first-steps-with-java9- jigsaw-part-1/ • https:/ /blog.codecentric.de/en/2015/12/first-steps-with-java9- jigsaw-part-2/ 22

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend