developing managing and opening the hood of jvm rest
play

Developing, managing and opening the hood of JVM REST services / - PowerPoint PPT Presentation

OSGi DevCon / QCon New York 2014 Developing, managing and opening the hood of JVM REST services / Lars Pfannenschmidt @leastangle What is swookiee? / Lars Pfannenschmidt @leastangle Pfannen-what? Fun-an-schmidt Data Products @


  1. OSGi DevCon / QCon New York 2014 Developing, managing and opening the hood of JVM REST services / Lars Pfannenschmidt @leastangle

  2. What is swookiee? / Lars Pfannenschmidt @leastangle

  3. Pfannen-what? Fun-an-schmidt ★ Data Products @ Intuit Data Engineering & Analytics ★ Founder of @mobilecgn User Group ★ ★ @leastangle

  4. What is swookiee? OSGi Runtime for REST Services ★ JAX-RS 2 ★ Jersey, Jetty, Jackson ★ Services in Java, Groovy, Scala ★ Swagger integration ★ Metrics / Graphite Support ★ JSON Logging Support ★ Remote Controllable (RFC-182) ★ EPL ★

  5. (-6+1) - Services 10

  6. Agenda Building REST Services ★ Swagger documentation ★ Metrics ★ JSON Logging ★ Remote Control ★

  7. Fizz Buzz https://flic.kr/p/6ae8KK by Luis Linero - Some rights reserved CC BY 2.0

  8. Any number divisible by three is replaced by the word fizz and any divisible by five by the word buzz . Numbers divisible by three and five become fizz buzz .

  9. FizzBuzz v1

  10. FizzBuzz v2

  11. Documentation https://flic.kr/p/dELbZF Books HD by Abhi Sharma - Some rights reserved CC BY 2.0

  12. FizzBuzz v3

  13. Alternatives Good old WADL? [ here ] ★ Apiary (http://apiary.io/) ★ RAML (http://raml.org/) ★ ... ★

  14. Metrics Opening the hood https://flic.kr/p/byHbPG Broken down by orangebrompton - Some rights reserved CC BY-NC-SA 2.0

  15. FizzBuzz v4

  16. Logging https://flic.kr/p/fE5Wgb Pitt River Logs by James Wheeler - Some rights reserved CC BY-NC-SA 2.0

  17. Enabling JSON Logging productionLogging = true loggingDirectory = logs Generated logs can be found in logs/osgi- log.json

  18. Sample Log Entry { "timestamp":"1402051840211", "level":"INFO", "thread":"Component Resolve Thread (Bundle 48)", "logger":"com.swookiee.runtime.metrics.MetricsToGraphiteReporter", "message":"Graphite Reporter started using configuration: GraphiteReporterConfiguration [graphiteHost=localhost, graphitePort=2003, reportingIntervalInSeconds=10, reportingEnabled=true, reportingPrefix=Demo]" "context":"default" }

  19. Messages in JSON? Map<String, Object> map = new HashMap<>(); map.put("limit", limit); map.put("result", result); logger.info("{}", map); { "timestamp":"1401544478570", "level":"INFO", "thread":"qtp1201555453-33", "logger":"com.swookiee.demo.logging.impl.FizzBuzzService", "message":{ "result":[ "1", "2", "Fizz", "4", "Buzz" ], "limit":5 }, "context":"default" }

  20. Remote https://flic.kr/p/hm8mFS Chernobyl NPP - Control Room No. 2 by Michael Kötter - Some rights reserved CC BY-NC-SA 2.0

  21. Some REST calls

  22. Deploy private SwookieeClient getSwookieeClient() throws SwookieeClientException { SwookieClientBuilder swookieClientBuilder = SwookieClientBuilder .newTarget("localhost") .withPort(8080) .withUsernamePassword("admin", "admin123"); return swookieClientBuilder.create(); } try ( SwookieeClient swookieeClient = getSwookieeClient() ) { String installedBundle = swookieeClient.installBundle(file, true); swookieeClient.startBundle(installedBundle); } catch (SwookieeClientException ex) { logger.error("Could not install/start bundle: '{}'", ex.getMessage(), ex); }

  23. Future Release version ★ JVM languages? ★ OAuth2 provider ★ Integration testing ★

  24. Thank You! swookiee.com / Lars Pfannenschmidt @leastangle

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