Microservices To-Go mit Dropwizard
|
|
- Rosemary Stanley
- 5 years ago
- Views:
Transcription
1 Microservices To-Go mit Dropwizard Mario Goller Software Engineer, Swisscom AG Java Forum Stuttgart 2017
2 Excursion: Architecture Comparison Monolith: multiple modules in the same container / process Microservices: Modules running in di!erent processes
3 Dropwizard is a Java framework for developing opsfriendly, high-performance, RESTful web services
4 History Created by Yammer Yammer was migrating IT infrastructure to mircoservices -> common patterns where extracted in one framework First Release: ( Dropwizard 0.1.0) Independent project since 2014 ( Dropwizard 0.7.0) Current Release: Dropwizard 1.1.2
5 How the Dropwizard Framework can help us to easily build microservices...
6 Dropwizard... pulls together stable, mature libraries from the Java ecosystem into a simple, lightweight package that lets you focus on getting things done
7 Dropwizard's Library set Jetty for HTTP servin' Jersey for REST modelin' Jackson for JSON parsin' and generatin' Logback for loggin' Hibernate Validator for validatin' Metrics for "gurin' out what your application is doin' in production JDBI and Hibernate for databasin' Liquibase for migratin'
8 How to get started...? Use existing Maven archetype to generate simple Dropwizard project this is setting up the required base implementation (already executable) mvn archetype:generate -DarchetypeGroupId=io.dropwizard.archetypes -DarchetypeArtifactId=java-simple -DarchetypeVersion=1.1.2
9 Dropwizard Components Overview
10 Application main() - starts app (Jetty server) initialize() - bundles, con"guration options, etc. run() - register Jersey resources & servlet "lters and more public class MyApplication extends Application<MyConfiguration> { public static void main(string[] args) throws Exception { new public void initialize(bootstrap<addressmoduleconfiguration> bootstrap) public void run(final AddressModuleConfiguration configuration, final Environment environment) throws Exception { environment.jersey().register(...); environment.lifecycle().manage(...); environment.healthchecks().register(...); environment.admin().addtask(...);
11 Configuration public class MyConfiguration extends Configuration private String hellomessage; public void setcustomsetting(string message) { this.hellomessage = message; public String gethellomessage() { return hellomessage; Con"guration "le (Yaml)# server: applicationcontextpath: /myapplication rootpath: /rest applicationconnectors: - type: http port: 8080 adminconnectors: - type: http port: 8082 hellomessage: 'Hello Dropwizard!' logging: level: INFO appenders: - type: console threshold: ALL target: stdout
12 Creating a REST Resource using "plain" JAX-RS 2.0 to create resources or = public class HelloResource { private final MyConfiguration conf; public HelloResource(MessagesConfiguration conf) { this.conf = public String sayhello() { return conf.gethellomaessage();
13 How it works together
14 Full Application Class Example public class MyApplication extends Application<MyConfiguration> { public static void main(string[] args) throws Exception { new public String getname() { return "My public void initialize(bootstrap<addressmoduleconfiguration> bootstrap) { bootstrap.addbundle(new AssetsBundle("/frontend-assets/", "/", "index.html", "frontend-assets")); bootstrap.addbundle(new public void run(final AddressModuleConfiguration configuration, final Environment environment) throws Exception { environment.jersey().register(constraintviolationexceptionmapper.class); environment.jersey().register(new JsonProcessingExceptionMapper()); environment.jersey().packages("org.jfs.dw.rest"); environment.servlets().addfilter("mdcloggingservletfilter",mdcloggingservletfilter.class).addmappingforurlpatterns(of(dispatchertype.request, DispatcherType.FORWARD, DispatcherType.ASYNC), false, "/*"); environment.servlets().addservletlisteners(new RequestResponseHolderListener());
15 Build the Application Fat Jar with Maven <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-shade-plugin</artifactid> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>meta-inf/*.sf</exclude> <exclude>meta-inf/*.dsa</exclude> <exclude>meta-inf/*.rsa</exclude> </excludes> </filter> </filters> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> </execution> </executions> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-enforcer-plugin</artifactid> <configuration> <rules> <DependencyConvergence/> </rules> </configuration> <executions> <execution> <id>enforce</id> <configuration> <rules> <DependencyConvergence/> </rules> </configuration> <goals> <goal>enforce</goal> </goals> <phase>package</phase> </execution> </executions> </plugin> Use also maven enforcer plugin! <transformer implementation="org.apache.maven.plugins.shade.resource.servicesresourcetransformer"/> <transformer implementation="org.apache.maven.plugins.shade.resource.manifestresourcetransformer"> <mainclass>org.jfs.dw.myapplication</mainclass> </transformer> </transformers> </configuration> $ mvn package
16 Running the Application Jar java -jar myapplication.jar server myconfig.yaml Two arguments are needed in order to run the JAR server which instructs Dropwizard to run as server. path to YAML con"guration "le. INFO org.eclipse.jetty.util.log - Logging INFO io.dropwizard.server.defaultserverfactory - Registering jersey handler with root path prefix: /myapp INFO io.dropwizard.server.defaultserverfactory - Registering admin handler with root path prefix: / INFO io.dropwizard.assets.assetsbundle - Registering AssetBundle with name: frontend-assets for path /* INFO io.dropwizard.server.defaultserverfactory - Registering jersey handler with root path prefix: /myapp INFO io.dropwizard.server.defaultserverfactory - Registering admin handler with root path prefix: / INFO io.dropwizard.server.serverfactory - Starting My fancy Application INFO org.eclipse.jetty.setuid.setuidlistener - Opened application@4905c46b{http/1.1,[http/1.1]{ :8080 INFO org.eclipse.jetty.setuid.setuidlistener - Opened application@17ae7628{ssl,[ssl, http/1.1]{ :8443 INFO org.eclipse.jetty.setuid.setuidlistener - Opened admin@1136b469{http/1.1,[http/1.1]{ :8082 INFO org.eclipse.jetty.setuid.setuidlistener - Opened admin@6579c3d9{ssl,[ssl, http/1.1]{ :8444 INFO org.eclipse.jetty.server.server - jetty v INFO org.eclipse.jetty.server.handler.contexthandler - Started i.d.j.mutableservletcontexthandler@7a364e1c{/,null,ava INFO org.eclipse.jetty.server.abstractconnector - Started application@4905c46b{http/1.1,[http/1.1]{ :8080 INFO org.eclipse.jetty.server.abstractconnector - Started application@17ae7628{ssl,[ssl, http/1.1]{ :8443 INFO org.eclipse.jetty.server.abstractconnector - Started admin@1136b469{http/1.1,[http/1.1]{ :8082 INFO org.eclipse.jetty.server.abstractconnector - Started admin@6579c3d9{ssl,[ssl, http/1.1]{ :8444
17 Bundles reusable group of functionality, used to de"ne blocks of an application s behavior public interface Bundle { void initialize(bootstrap<?> bootstrap); void run(environment environment); public interface ConfiguredBundle<T> { void initialize(bootstrap<?> bootstrap); void run(t configuration, Environment environment) throws public void initialize(final Bootstrap<BeachBarClientConfiguration> bootstrap) { VersionSupplier supplier = new MavenVersionSupplier("org.jfs.dw", "my-appication"); bootstrap.addbundle(new VersionBundle(supplier));
18 Using Databases you can chose your preferred API: Hibernate ORM JDBI Data Access #DataSource con"guration via YAML database: driverclass : org.postgresql.driver url: 'jdbc:postgresql://db.example.com/db-prod' user: pg-user password: iams00persecreet
19 JDBI the "dropwizard-jdbi" module allows us to create a database connections and Data Access Objects (DAO) through which we will query the database making use of the API provided by the JDBI project ( ) public void run(exampleconfiguration config, Environment environment) { final DBIFactory factory = new DBIFactory(); final DBI jdbi = factory.build(environment, config.getdatasourcefactory(), "postgresql"); final UserDAO dao = jdbi.ondemand(userdao.class); environment.jersey().register(new UserResource(dao)); public interface UserDAO into users (sessionid, name) values (:sessionid, int insert(@bind("sessionid") String * from users") List<User> getallusers();
20 Managed Objects (Example MongoDB) public class ManagedMongoClient extends MongoClient implements Managed { public ManagedMongoClient(MongoClientURI uri) throws UnknownHostException { public void start() throws Exception public void stop() throws Exception { close(); public class App extends Application<AppConfiguration> public void run(appconfiguration config, Environment environment) { ManagedMongoClient mongoclient = config.getmongo().build(); environment.lifecycle().manage(mongoclient); DB db = mongoclient.getdb(config.getmongo().getdbname());
21 Operations friendly Dropwizard provides some handy features to support operational work Healthchecks Commands (executable actions via CL) Tasks (executable actions via HTTP) Metrics (via Dropwizard Metrics) Easy con"gurable Logging (Logback, SLF4J)
22 Application Healthchecks
23 Healthchecks a runtime test which you can use to verify your application s behaviour, depencencies etc. in its environment Health checks should lightly test service dependencies, e.g. databases, downstream services, etc. $ curl {"deadlocks":{"healthy":true,"database":{"healthy":true
24 Healthcheck Class Example public class DatabaseHealthCheck extends HealthCheck { private final HibernateBundle hibernate; public DatabaseHealthCheck(HibernateBundle hibernate) { super("database"); this.hibernate = protected Result check() throws Exception { if(!hibernate.getsessionfactory().isclosed()) { return Result.healthy(); else { return Result.unhealthy("Cannot connect to database"); adding the healthcheck to the application environment.addhealthcheck(new DatabaseHealthCheck(hibernate));
25 Deployment into the Cloud Example of deploying a Dropwizard App to the Heroku Cloud heroku create web: java $JAVA_OPTS -Ddw.http.port=$PORT -Ddw.http.adminPort=$PORT -jar target/myproject-1.0-snapshot.jar server config.yaml git push heroku master -----> Discovering process types Procfile declares types -> web -----> Compiled slug size: 57.7MB -----> Launching... done, v9 deployed to Heroku
26 Metrics almost all applications need the ability to report key statistics metrics library written by Dropwizard team supports Meters, Gauges, Histograms, and Timers
27 Monitoring a Dropwizard Application (visualize pushed metrics)
28 Testing a Dropwizard Application "dropwizard-testing" module can be easily used for testing your application representation classes and resource classes Fixtures for unit testing representations Easily unit test resources using mock DAOs Excellent integration test support Prefer AssertJ $uent-assertions JUnit rule for full-stack testing of your entire app!resourcetestrule DropwizardClientRule DropwizardAppRule DropwizardTestSupport
29 Integration Test Example public class HelloResourceTest public ResourceTestRule resource = ResourceTestRule.builder().addResource(new public void testgetgreeting() { String expected = "Hello world!"; //Obtain client Client client = resource.client(); //Get WebTarget from client using URI of root resource. WebTarget hellotarget = client.target(" //To invoke response we use Invocation.Builder //and specify the media type of representation asked from resource. Invocation.Builder builder = hellotarget.request(mediatype.text_plain); //Obtain response. Response response = builder.get(); //Do assertions. assertequals(response.status.ok, response.getstatusinfo()); String actual = response.readentity(string.class); assertequals(expected, actual);
30 Dropwizard vs. Spring Boot Main di!erence is dependency injection support Spring s core comes with it s built in dependency injection support Dropwizard doesn t come out of the box with DI Dropwizard o!ers integrations with other DI frameworks like Guice, CDI both frameworks have a special module for testing including JUnit and Mockito dependencies. Spring Boot is a part of Spring ecosystem and suits best for Springoriented projects Spring o!ers broader list of supported services - REST, JMS, Messaging... Dropwizard owns popular metrics library
31 Dropwizard vs. Spring Boot
32 Anything else?
33 Additional Dropwizard Modules and Tooling
34 Dropwizard and Dependency Injection only Jersey H2K dependency injection support out-of-the-box useful for simple cases for more features a existing DI framework must be included Google Guice Weld CDI Spring public void run(exampleserviceconfiguration conf, Environment env) throws Exception { Injector injector = Guice.createInjector(); env.addresource(injector.getinstance(helloresource.class)); an additional "H2K-bridge" is needed to avoid clashes in DI <dependency> <groupid>org.glassfish.hk2</groupid> <artifactid>guice-bridge</artifactid> <version>2.4.0-b31</version> </dependency>
35 Database Migration with Liquibase Validation View Templates Authentication
36 Questions
37
Simple REST-APIs with Dropwizard and Swagger. Bernd Schönbach LeanIX GmbH
Simple REST-APIs with Dropwizard and Swagger Bernd Schönbach LeanIX GmbH Motivation Quickly create REST-APIs Make it testable Deploy with a click Or even better automatically Provide Documentation without
More informationDropwizard. A RESTful Love Story. Ryan Kennedy Core Yammer
Dropwizard A RESTful Love Story Ryan Kennedy (@rckenned) Core Services @ Yammer Dropwizard A RESTful Love Story Ryan Kennedy (@rckenned) Core Services @ Yammer + MicrosoE What on earth is Dropwizard? Some
More informationCheat Sheet: Wildfly Swarm
Cheat Sheet: Wildfly Swarm Table of Contents 1. Introduction 1 5.A Java System Properties 5 2. Three ways to Create a 5.B Command Line 6 Swarm Application 1 5.C Project Stages 6 2.A Developing a Swarm
More informationCroquet. William R. Speirs, Ph.D. Founder & CEO of Metrink
Croquet William R. Speirs, Ph.D. (wspeirs@metrink.com) Founder & CEO of Metrink About Me BS in CS from Rensselaer; PhD from Purdue Founder and CEO of Metrink (www.metrink.com) Simple yet powerful query
More informationJVA-563. Developing RESTful Services in Java
JVA-563. Developing RESTful Services in Java Version 2.0.1 This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We develop
More informationMicroservices mit Java, Spring Boot & Spring Cloud. Eberhard Wolff
Microservices mit Java, Spring Boot & Spring Cloud Eberhard Wolff Fellow @ewolff What are Microservices? Micro Service: Definition > Small > Independent deployment units > i.e. processes or VMs > Any technology
More informationTools for Accessing REST APIs
APPENDIX A Tools for Accessing REST APIs When you have to work in an agile development environment, you need to be able to quickly test your API. In this appendix, you will learn about open source REST
More informationMicroservices. Are your Frameworks ready? Martin Eigenbrodt Alexander Heusingfeld
Microservices Are your Frameworks ready? Martin Eigenbrodt martin.eigenbrodt@innoq.com Alexander Heusingfeld alexander.heusingfeld@innoq.com Microservices? Levels of Architecture Domain architecture Macro
More informationFat / Uber jars - Using the Shade Plugin
Fat / Uber jars - Using the Shade Plugin Shading the container and the application has some challenges like merging correctly resources (META-INF/services/ typically). Here is a maven shade plugin configuration
More informationAdobe Experience Manager
Adobe Experience Manager Extend and Customize Adobe Experience Manager v6.x Student Guide: Volume 1 Contents CHAPTER ONE: BASICS OF THE ARCHITECTURAL STACK... 10 What is Adobe Experience Manager?... 10
More informationDiabolical Developer s Intro to FaaS for Java Developers
Diabolical Developer s Intro to FaaS for Java Developers Community Leader Devs+502 & JDuchess Chapter Guatemala Ex-JUG Member Guatemala Java Users Group (GuateJUG) Chief Technology Officer (CTO) at Produactivity
More informationOpenECOMP SDC Developer Guide
OpenECOMP SDC Developer Guide Copyright 2017 AT&T Intellectual Property. All rights reserved. Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation
More informationGAVIN KING RED HAT CEYLON SWARM
GAVIN KING RED HAT CEYLON SWARM CEYLON PROJECT A relatively new programming language which features: a powerful and extremely elegant static type system built-in modularity support for multiple virtual
More informationMaven POM project modelversion groupid artifactid packaging version name
Maven The goal of this document is to introduce the Maven tool. This document just shows some of the functionalities of Maven. A complete guide about Maven can be found in http://maven.apache.org/. Maven
More informationCloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0
Cloud-Native Applications Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Characteristics Lean Form a hypothesis, build just enough to validate or disprove it. Learn
More informationMigrating to Java 9 Modules. Paul Bakker
Migrating to Java 9 Modules Paul Bakker Why care about modules? lib/nebula-4.0.12.jar:lib/netflix-gradle-lint-8.6.1.jar:lib/gretty-2.0.0.jar:lib/gradle-infamous-plugin-1.28.jar:lib/java-semver-0.9.0.jar:lib/guava-20.0.jar:lib/
More informationRatpacked Notebook. Experience Ratpack with code snippets. Hubert Klein Ikkink. This book is for sale at
Ratpacked Notebook Experience Ratpack with code snippets Hubert Klein Ikkink This book is for sale at http://leanpub.com/ratpacked-notebook This version was published on 2016-11-14 This is a Leanpub book.
More informationMAVEN INTERVIEW QUESTIONS
MAVEN INTERVIEW QUESTIONS http://www.tutorialspoint.com/maven/maven_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Maven Interview Questions have been designed specially to get
More informationPage 1
Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory
More informationIntroduction to Spring Framework: Hibernate, Spring MVC & REST
Introduction to Spring Framework: Hibernate, Spring MVC & REST Training domain: Software Engineering Number of modules: 1 Duration of the training: 36 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual
More informationRobertaLab: Configuration, Architecture, Frameworks, Design
Roberta Seite 1 RobertaLab: Configuration, Architecture, Frameworks, Design reinhard.budde at iais.fraunhofer.de version 0.3 002014 12:57 Overview The system consists out of three distributed components,
More informationKeep Learning with Oracle University
Keep Learning with Oracle University Classroom Training Learning Subscription Live Virtual Class Training On Demand Cloud Technology Applications Industries education.oracle.com 3 Session Surveys Help
More informationStruts 2 Maven Archetypes
Struts 2 Maven Archetypes DEPRECATED: moved to http://struts.apache.org/maven-archetypes/ Struts 2 provides several Maven archetypes that create a starting point for our own applications. Contents 1 DEPRECATED:
More informationManaging Installations and Provisioning of OSGi Applications. Carsten Ziegeler
Managing Installations and Provisioning of OSGi Applications Carsten Ziegeler cziegeler@apache.org About Member of the ASF Current PMC Chair of Apache Sling Apache Sling, Felix, ACE, Portals (Incubator,
More informationBuilding Microservices with the 12 Factor App Pattern
Building Microservices with the 12 Factor App Pattern Context This documentation will help introduce Developers to implementing MICROSERVICES by applying the TWELVE- FACTOR PRINCIPLES, a set of best practices
More informationJAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP
2013 Empowering Innovation DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP contact@dninfotech.com www.dninfotech.com 1 JAVA 500: Core JAVA Java Programming Overview Applications Compiler Class Libraries
More informationDeveloper: Chaithanya Krishna Gogineni Graduate Teaching Assistant Software Engineering Computer Science Department Northern Illinois University
Developer: Chaithanya Krishna Gogineni Graduate Teaching Assistant Software Engineering Computer Science Department Northern Illinois University DeKalb, Illinois. www.chaithanyagogineni.com 1.Requirements
More informationcom Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-
www.javabykiran. com 8888809416 8888558802 Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/- Java by Kiran J2EE SYLLABUS Servlet JSP XML Servlet
More informationOracle Code Day Hands On Labs (HOL) (Install, Repository, Local Deploy, DevCS, OACCS)
Oracle Code Day Hands On Labs (HOL) (Install, Repository, Local Deploy, DevCS, OACCS) Table of Contents Getting Started...2 Overview...2 Learning Objectives...2 Prerequisites...2 Software for HOL Lab Session...2
More informationHeroku. Rimantas Kybartas
Heroku Rimantas Kybartas Salesforce platform (PaaS) Facts about Heroku Has been in development since June 2007, 2010 acquired by Salesforce Open platform Languages and frameworks: Ruby and Rails Node.js
More informationConfiguring and Using Osmosis Platform
Configuring and Using Osmosis Platform Index 1. Registration 2. Login 3. Device Creation 4. Node Creation 5. Sending Data from REST Client 6. Checking data received 7. Sending Data from Device 8. Define
More informationIntegrating Spring Boot with MySQL
Integrating Spring Boot with MySQL Introduction For this course we will be using MySQL as the database for permanent data storage. We will use Java Persistence API (JPA) as an Object Relation Map (ORM)
More informationCloud Native Java with Kubernetes
Cloud Native Java with Kubernetes @burrsutter burr@redhat.com developers.redhat.com We cannot solve our problems with the same thinking we used when we created them. Albert Einstein (Theoretical Physicist)
More informationSpring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics
Spring & Hibernate Overview: The spring framework is an application framework that provides a lightweight container that supports the creation of simple-to-complex components in a non-invasive fashion.
More informationThe Next Generation. Prabhat Jha Principal Engineer
The Next Generation Prabhat Jha Principal Engineer What do you wish you had in an Open Source JEE Application Server? Faster Startup Time? Lighter Memory Footprint? Easier Administration? 7 Reasons To
More informationContainers, Serverless and Functions in a nutshell. Eugene Fedorenko
Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes
More informationKeep Learning with Oracle University
Keep Learning with Oracle University Classroom Training Learning Subscription Live Virtual Class Training On Demand Cloud Technology Applications Industries education.oracle.com 3 Session Surveys Help
More informationMigrating traditional Java EE applications to mobile
Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16
More informationOracle Code Day Hands On Labs HOL
Oracle Code Day Hands On Labs HOL Overview This lab guides you through deploying and running the BlackJack application "locally" via a Tomcat server that is spawned by NetBeans. After successfully running
More informationOverview of Web Application Development
Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34 Table of Contents Overview Architecture 1 Overview
More informationEclipse MicroProfile with Thorntail (formerly WildFly Swarm)
Eclipse MicroProfile with Thorntail (formerly WildFly Swarm) John Clingan Senior Principal Product Manager Ken Finnigan Senior Principal Software Engineer EVOLUTION OF MICROSERVICES (2014 -?) Application
More informationOAuth2 Autoconfig. Copyright
Copyright Table of Contents... iii 1. Downloading... 1 1.1. Source... 1 1.2. Maven... 1 1.3. Gradle... 2 2. Authorization Server... 3 3. Resource Server... 4 I. Token Type in User Info... 5 II. Customizing
More informationBreaking Apart the Monolith with Modularity and Microservices CON3127
Breaking Apart the Monolith with Modularity and Microservices CON3127 Neil Griffin Software Architect, Liferay Inc. Specification Lead, JSR 378 Portlet 3.0 Bridge for JavaServer Faces 2.2 Michael Han Vice
More informationOracle Corporation
1 2012 Oracle Corporation Oracle WebLogic Server 12c: Developing Modern, Lightweight Java EE 6 Applications Will Lyons, Director of WebLogic Server Product Management Pieter Humphrey, Principal Product
More informationRESTful Web Services with Dropwizard
RESTful Web Services with Dropwizard Over 20 recipes to help you build high-performance, production-ready RESTful JVM-based backend services Alexandros Dallas BIRMINGHAM - MUMBAI RESTful Web Services with
More informationCopyright 2016 Pivotal. All rights reserved. Cloud Native Design. Includes 12 Factor Apps
1 Cloud Native Design Includes 12 Factor Apps Topics 12-Factor Applications Cloud Native Design Guidelines 2 http://12factor.net Outlines architectural principles and patterns for modern apps Focus on
More informationGroovy and Grails in Google App Engine
Groovy and Grails in Google App Engine Benefit from a Java-like dynamic language to be more productive on App Engine Guillaume Laforge Head of Groovy Development Guillaume Laforge Groovy Project Manager
More informationgraceland-core Documentation
graceland-core Documentation Release 0.1.0-SNAPSHOT Javier Campanini April 14, 2014 Contents 1 About 3 1.1 Contributing............................................... 3 1.2 License..................................................
More informationNative Android Development Practices
Native Android Development Practices Roy Clarkson & Josh Long SpringSource, a division of VMware 1 About Roy Clarkson (Spring Android Lead) @royclarkson 2 About Roy Clarkson (Spring Android Lead) @royclarkson
More informationJava J Course Outline
JAVA EE - J2SE - CORE JAVA After all having a lot number of programming languages. Why JAVA; yet another language!!! AND NOW WHY ONLY JAVA??? CHAPTER 1: INTRODUCTION What is Java? History Versioning The
More informationApplicationComposer. The TomEE Swiss Knife
ApplicationComposer The TomEE Swiss Knife ApplicationComposer API is mainly contained in org.apache.openejb.testing package (historically, today we would have called the package org.apache.tomee.applicationcomposer).
More informationContents in Detail. Foreword by Xavier Noria
Contents in Detail Foreword by Xavier Noria Acknowledgments xv xvii Introduction xix Who This Book Is For................................................ xx Overview...xx Installation.... xxi Ruby, Rails,
More informationApache Tamaya Configuring your Containers...
Apache Tamaya Configuring your Containers... BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENF HAMBURG KOPENHAGEN LAUSANNE MÜNCHEN STUTTGART WIEN ZÜRICH About Me Anatole Tresch Principal Consultant,
More informationContent. Development Tools 2(57)
Development Tools Content Project management and build, Maven Unit testing, Arquillian Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools
More informationSpring Cloud, Spring Boot and Netflix OSS
Spring Cloud, Spring Boot and Netflix OSS Spencer Gibb twitter: @spencerbgibb email: sgibb@pivotal.io Dave Syer twitter: @david_syer email: dsyer@pivotal.io (Spring Boot and Netflix OSS or Spring Cloud
More informationvrealize Code Stream Plug-In SDK Development Guide
vrealize Code Stream Plug-In SDK Development Guide vrealize Code Stream 2.2 This document supports the version of each product listed and supports all subsequent versions until the document is replaced
More informationDevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:
DevOps and Maven Produced by: Eamonn de Leastar (edeleastar@wit.ie) Dr. Siobhán Drohan (sdrohan@wit.ie) Department of Computing and Mathematics http://www.wit.ie/ Dev team created a solution for production.
More informationErlang in the Heroku Cloud
X Erlang in the Heroku Cloud X Who are we? Geoff Cant @archaelus Blake Gentry @blakegentry What do we do? Software Engineers Heroku Routing Team What is Heroku? Cloud Application PaaS We manage servers
More informationOpen Source Library Developer & IT Pro
Open Source Library Developer & IT Pro Databases LEV 5 00:00:00 NoSQL/MongoDB: Buildout to Going Live INT 5 02:15:11 NoSQL/MongoDB: Implementation of AngularJS INT 2 00:59:55 NoSQL: What is NoSQL INT 4
More informationJBPM Course Content. Module-1 JBPM overview, Drools overview
JBPM Course Content Module-1 JBPM overview, Drools overview JBPM overview Drools overview Community projects Vs Enterprise projects Eclipse integration JBPM console JBPM components Getting started Downloads
More informationComponent based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth
Component based Development Web Application Development Zsolt Tóth University of Miskolc 2017 Zsolt Tóth (University of Miskolc) Component based Development 2017 1 / 30 Table of Contents 1 2 3 4 Zsolt
More informationGroovy & Grails Scripting for Modern Web Applications. Rohit Nayak Talentica Software
Groovy & Grails Scripting for Modern Web Applications Rohit Nayak Talentica Software Agenda Demo: Quick intro to Grails Scripting, Web Applications and Grails/Groovy REST service in Grails Demo Internals
More informationTesting Your Application on / for Google App Engine
Testing Your Application on / for Google App Engine Narinder Kumar Inphina Technologies 1 Agenda Problem Context App Engine Testing Framework Local DataStore Testing Authentication API Testing Memcache
More informationEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java Microservices Emily Jiang twitter @emilyfhjiang 10 th October 2017 What is Eclipse MicroProfile? Eclipse MicroProfile is an open-source community
More informationTopics covered. Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session. Maven 2
Maven Maven 1 Topics covered Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session Maven 2 Introduction to Maven Maven 3 What is Maven? A Java project management
More informationBlow up the monolith? Serverless computing, nanofunctions, & Amazon Lambda
Blow up the monolith? Serverless computing, nanofunctions, & Amazon Lambda Disclaimer This is a concept and code that I'm still experimenting with. It is not live in production. "Serverless Computing"
More informationWHITE PAPER. RedHat OpenShift Container Platform. Benefits: Abstract. 1.1 Introduction
WHITE PAPER RedHat OpenShift Container Platform Abstract Benefits: Applications are designed around smaller independent components called microservices. Elastic resources: Scale up or down quickly and
More informationORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX
ORACLE APPLICATION EXPRESS, ORACLE REST DATA SERVICES, & WEBLOGIC 12C AUTHOR: BRAD GIBSON SENIOR SOLUTIONS ARCHITECT ADVIZEX AdvizeX Technologies - A Rolta Company 6/12/2015 1 AGENDA Introductions Test
More informationKinto Documentation. Release Mozilla Services Da French Team
Kinto Documentation Release 0.2.2 Mozilla Services Da French Team June 23, 2015 Contents 1 In short 3 2 Table of content 5 2.1 API Endpoints.............................................. 5 2.2 Installation................................................
More informationSchema Null Cannot Be Resolved For Table Jpa
Schema Null Cannot Be Resolved For Table Jpa (14, 19) The abstract schema type 'Movie' is unknown. (28, 35) The state field path 'm.title' cannot be resolved to a valid type. at org.springframework.web.servlet.
More informationSBB. Java User Group 27.9 & Tobias Denzler, Philipp Oser
OpenShift @ SBB Java User Group 27.9 & 25.10.17 Tobias Denzler, Philipp Oser Who we are Tobias Denzler Software Engineer at SBB IT Java & OpenShift enthusiast @tobiasdenzler Philipp Oser Architect at ELCA
More informationJaxb2 Maven Plugin Could Not Process Schema
Jaxb2 Maven Plugin Could Not Process Schema The JAXB2 Maven Plugin project was moved to GitHub. These pages are no longer maintained and therefore do not provide the actual information. Resource entries,
More informationJava Architectures A New Hope. Eberhard Wolff
Java Architectures A New Hope Eberhard Wolff http://ewolff.com What happens with a talk titled like this? Architecture of Enterprise Java Apps How can I implement a new feature??? ! ECommerce System
More informationMeet. Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, Friday, June 14, 13
Meet Brian Stansberry Principal Software Engineer, Red Hat, Inc. June 10, 2013 What s WildFly? New name for the JBoss Application Server project Reduce confusion over the name JBoss WildFly won a public
More informationRed Hat Developer Studio 12.0
Red Hat Developer Studio 12.0 Release Notes and Known Issues Highlighted features in 12.0 Last Updated: 2018-07-18 Red Hat Developer Studio 12.0 Release Notes and Known Issues Highlighted features in
More informationTo Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with
More informationRESTful Microservices
RESTful Microservices In Java With Jersey Jakub Podlešák So9ware Engineer Oracle, ApplicaAon Server Group September 29, 2014 Copyright 2014, Oracle and/or its affiliates. All rights reserved. Safe Harbor
More informationSimplified CICD with Jenkins and Git on the ZeroStack Platform
DATA SHEET Simplified CICD with Jenkins and Git on the ZeroStack Platform In the technical article we will walk through an end to end workflow of starting from virtually nothing and establishing a CICD
More informationSoftware Engineering 2 A practical course in software engineering. Ekkart Kindler
Software Engineering 2 A practical course in software engineering Tutorial 2: Consuming REST Services Contens How to consume REST services Example: NorthQ standalone Java application (but can be re-used
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More informationUnable To The Artifact From Any Repository Maven-clean-plugin
Unable To The Artifact From Any Repository Maven-clean-plugin The default behaviour of the plugin is to first resolve the entire dependency tree, Any manually included purge artifacts will be removed from
More informationLab 03 Finish and Deploy an Application. Lab 3-1: Add DELETE to the Spring Boot REST Application
Lab 03 Finish and Deploy an Application In this lab, you ll finish your version of the application featured in Lab 1. This includes creating the remaining REST calls. Test your work locally as you develop.
More informationJava SE7 Fundamentals
Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various
More informationWhat s new in IBM Operational Decision Manager 8.9 Standard Edition
What s new in IBM Operational Decision Manager 8.9 Standard Edition Release themes User empowerment in the Business Console Improved development and operations (DevOps) features Easier integration with
More informationIntroduction to Spring Framework: Hibernate, Web MVC & REST
Introduction to Spring Framework: Hibernate, Web MVC & REST Course domain: Software Engineering Number of modules: 1 Duration of the course: 50 hours Sofia, 2017 Copyright 2003-2017 IPT Intellectual Products
More informationnacelle Documentation
nacelle Documentation Release 0.4.1 Patrick Carey August 16, 2014 Contents 1 Standing on the shoulders of giants 3 2 Contents 5 2.1 Getting Started.............................................. 5 2.2
More informationResin Technical Update Summer 2018
Resin Technical Update Summer 2018 Caucho Engineering We have solved our nationwide scalability problems using Resin clustering and achieved major performance benefits to our high traffic sites. -Jung
More informationArquillian & ShrinkWrap
Arquillian & ShrinkWrap Integration testing made simple November 2014 What do they do? ShrinkWrap to package your test artifacts Arquillian deploys the package to target container Arquillian enriches and
More informationHigh performance reactive applications with Vert.x
High performance reactive applications with Vert.x Tim Fox Red Hat Bio Employed By Red Hat to lead the Vert.x project Worked in open source exclusively for the past 9 years Some projects I've been involved
More informationTools. SWE 432, Fall Design and Implementation of Software for the Web
Tools SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Before we can really make anything, there s a bunch of technical stuff to get out of the way Tools make our lives so much
More informationKERNEL C.I. USING LINARO S AUTOMATED VALIDATION ARCHITECTURE. Wednesday, September 11, 13
KERNEL C.I. USING LINARO S AUTOMATED VALIDATION ARCHITECTURE TYLER BAKER TECHNICAL ARCHITECT HTTP://WWW.LINARO.ORG LAVA DEVELOPER LAVA EVANGELIST FORMER PLATFORM ENGINEER KERNEL HACKER MT. BAKER, WA LAVA
More informationGlassFish : From the clustering to the cloud. Fabien LEROY
GlassFish : From the clustering to the cloud Fabien LEROY 10/02/2012 A few words about SERLI Software engineering company based in France 65 people Small company working for big ones 80% of the business
More information5.1 Registration and Configuration
5.1 Registration and Configuration Registration and Configuration Apache Wink provides several methods for registering resources and providers. This chapter describes registration methods and Wink configuration
More informationGiovanni Stilo, Ph.D. 140 Chars to Fly. Twitter API 1.1 and Twitter4J introduction
Giovanni Stilo, Ph.D. stilo@di.uniroma1.it 140 Chars to Fly Twitter API 1.1 and Twitter4J introduction Twitter (Mandatory) Account General operation REST principles Requirements Give every thing an ID
More informationBaking a Java EE 8 Micro Pi Mike Croft Ondrej Mihályi. Payara Support
Baking a Java EE 8 Micro Pi Mike Croft Ondrej Mihályi Payara Support Engineers @Payara_Fish Who are we? Payara Support @croft Snowboarder Payara Support @omihalyi Proud father What s this all about? How
More informationКирилл Розов Android Developer
Кирилл Розов Android Developer Dependency Injection Inversion of Control (IoC) is a design principle in which custom-written portions of a computer program receive the flow of control from a generic framework
More informationWriting Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p.
Preface p. xiii Writing Servlets and JSPs p. 1 Writing a Servlet p. 1 Writing a JSP p. 7 Compiling a Servlet p. 10 Packaging Servlets and JSPs p. 11 Creating the Deployment Descriptor p. 14 Deploying Servlets
More informationDesigning for Modularity with Java 9
Designing for Modularity with Java 9 Paul Bakker @pbakker Sander Mak @Sander_Mak Today's journey Module primer Services & DI Modular design Layers & loading Designing for Modularity with Java 9 What if
More informationConfiguration Problem Unable To Locate Spring Namespacehandler For Xml Schema Namespace Jpa
Configuration Problem Unable To Locate Spring Namespacehandler For Xml Schema Namespace Jpa Unable to locate Spring NamespaceHandler for XML schema namespace Application-Context gwt-maven-plugin documentation
More informationDependency Injection & Design Principles Recap Reid Holmes
Material and some slide content from: - Krzysztof Czarnecki - Ian Sommerville - Head First Design Patterns Dependency Injection & Design Principles Recap Reid Holmes REID HOLMES - SE2: SOFTWARE DESIGN
More information