Migrating to Java 9 Modules. Paul Bakker

Size: px
Start display at page:

Download "Migrating to Java 9 Modules. Paul Bakker"

Transcription

1 Migrating to Java 9 Modules Paul Bakker

2 Why care about modules? lib/nebula jar:lib/netflix-gradle-lint jar:lib/gretty jar:lib/gradle-infamous-plugin-1.28.jar:lib/java-semver jar:lib/guava-20.0.jar:lib/ nebula-core jar:lib/commons-lang-2.6.jar:lib/joda-time jar:lib/kotlin-reflect jar:lib/nebula-common jar:lib/nebula-repos jar:lib/ nebula-publish jar:lib/httpclient jar:lib/jgrapht-core jar:lib/build-info-extractor-gradle jar:lib/ant-jsch jar:lib/rest-api-clientcore jar:lib/rest-api-client-httpclient jar:lib/bakery-api-client jar:lib/odin jar:lib/artifactory-java-client-services jar:lib/ kotlin-stdlib-jre jar:lib/gradle-contacts-plugin jar:lib/gradle-dependency-lock-plugin jar:lib/gradle-extra-configurationsplugin jar:lib/gradle-git-scm-plugin jar:lib/gradle-info-plugin jar:lib/gradle-java-cross-compile-plugin jar:lib/gradle-lintplugin jar:lib/gradle-metrics-plugin jar:lib/gradle-ospackage-plugin jar:lib/gradle-override-plugin jar:lib/gradle-resolution-rulesplugin jar:lib/gradle-scm-plugin jar:lib/gradle-stash-plugin jar:lib/nebula-dependency-base-plugin jar:lib/nebula-dependencyrecommender jar:lib/nebula-grails-plugin jar:lib/nebula-project-plugin jar:lib/nebula-release-plugin jar:lib/gradle-release-1.2.jar:lib/ gradle-cobertura-plugin jar:lib/gretty-core jar:lib/spring-boot-loader-tools release.jar:lib/jetty-util v jar:lib/httpclientcache jar:lib/kotlin-stdlib jar:lib/metatron-decrypt jar:lib/nebula-publishing-plugin jar:lib/httpcore jar:lib/commonslogging-1.2.jar:lib/commons-codec-1.9.jar:lib/ivy jar:lib/build-info-extractor jar:lib/ant jar:lib/mail jar:lib/frigga-0.13.jar:lib/ nekohtml jar:lib/artifactory-java-client-api jar:lib/groovy-xml jar:lib/jcl-over-slf4j jar:lib/kotlin-stdlib-jre jar:lib/ svnkit jar:lib/asm-5.2.jar:lib/gpars jar:lib/junit-4.12.jar:lib/jackson-datatype-joda jar:lib/logstash-logback-encoder jar:lib/ jest jar:lib/fluent-hc jar:lib/redline jar:lib/jdeb-1.4.jar:lib/gradle-docker-plugin jar:lib/commons-beanutils-core jar:lib/jacksonmodule-kotlin jar:lib/maven-model-builder jar:lib/grails-launcher-1.1.jar:lib/groovy jar:lib/commons-cli-1.2.jar:lib/commonsconfiguration-1.10.jar:lib/org.apache.servicemix.bundles.bcprov-jdk _3.jar:lib/spring-boot-devtools release.jar:lib/spring-core release.jar:lib/ annotations-13.0.jar:lib/gson jar:lib/protobuf-java-util jar:lib/protobuf-java jar:lib/grpc-core jar:lib/javax.inject-1.jar:lib/metatroncommon jar:lib/metatron-ipc-common jar:lib/build-info-client jar:lib/xstream jar:lib/ant-launcher jar:lib/multiversecore jar:lib/jsr166y jar:lib/hamcrest-core-1.3.jar:lib/logback-core jar:lib/jest-common jar:lib/httpcore-nio jar:lib/ httpasyncclient-4.1.jar:lib/plexus-utils jar:lib/plexus-interpolation-1.24.jar:lib/plexus-component-annotations jar:lib/maven-model jar:lib/ maven-artifact jar:lib/maven-builder-support jar:lib/spring-boot release.jar:lib/spring-boot-autoconfigure release.jar:lib/ error_prone_annotations jar:lib/jsr jar:lib/grpc-context jar:lib/instrumentation-api jar:lib/grpc-protobuf jar:lib/grpcstub jar:lib/jackson-mapper-asl jar:lib/build-info-api jar:lib/xpp3_min-1.1.4c.jar:lib/spring-context release.jar:lib/grpc-google-commonprotos jar:lib/grpc-protobuf-lite jar:lib/jackson-core-asl jar:lib/spring-aop release.jar:lib/spring-beans release.jar:lib/springexpression release.jar:lib/aopalliance-1.0.jar:lib/http-builder jar:lib/json-lib-2.3-jdk15.jar:lib/xml-resolver-1.2.jar:lib/commonsbeanutils jar:lib/commons-collections jar:lib/ezmorph jar:lib/slf4j-api jar:lib/commons-io-2.5.jar:lib/jackson-annotations jar:lib/ jackson-databind jar:lib/nebula-gradle-interop jar:lib/org.eclipse.jgit.ui r.jar:lib/jsch.agentproxy.jsch jar:lib/ jsch.agentproxy.pageant jar:lib/jsch.agentproxy.sshagent jar:lib/jsch.agentproxy.usocket-jna jar:lib/jsch.agentproxy.usocket-nc jar:lib/ jsch.agentproxy.core jar:lib/jna jar:lib/jna-platform jar:lib/p4java jar:lib/jzlib jar:lib/jsch.agentproxy.svnkit-trileadssh jar:lib/trilead-ssh build220.jar:lib/jsch.agentproxy.connector-factory jar:lib/sequence-library jar:lib/sqljet jar:lib/antlrruntime-3.4.jar:lib/commons-lang3-3.5.jar:lib/gradle-git jar:lib/groovy-json jar:lib/commons-compress-1.8.jar:lib/bcpg-jdk15on-1.51.jar:lib/bcprovjdk15on-1.51.jar:lib/xercesimpl jar:lib/jackson-core jar:lib/org.eclipse.jgit r.jar:lib/javaewah jar:lib/jsch jar:lib/ grgit jar:lib/xz-1.5.jar

3 Module primer. module easytext.cli { } requires easytext.analysis; module easytext.analysis { exports analysis.api; opens impl; } easytext.cli easytext.analysis analysis.api reflection only! impl other

4 Module primer. module easytext.cli { } requires easytext.analysis; module easytext.analysis { } exports analysis.api; Modules define dependencies opens impl; explicitly easytext.cli easytext.analysis analysis.api reflection only! impl other

5 Module primer. module easytext.cli { } requires easytext.analysis; Packages are encapsulated by default module easytext.analysis { exports analysis.api; opens impl; } easytext.cli easytext.analysis analysis.api reflection only! impl other

6 Module primer. module easytext.cli { } requires easytext.analysis; Packages can be opened for deep reflection at run-time module easytext.analysis { exports analysis.api; opens impl; } easytext.cli easytext.analysis analysis.api reflection only! impl other

7 Migrating to Java 9. Java 8 java -cp -jar MyApp.jar Java 9 java -cp -jar MyApp.jar

8 Our journey to modules. Running on Java 9 Using existing libraries Allowing reflection Spring / Hibernate case study Refactoring to increase modularity Migrating builds

9 !"" lib!"" run.sh #"" src!"" books $!"" api $ $!"" entities $ $ $ #"" Book.java $ $ #"" service $ $ #"" BooksService.java $ #"" impl $!"" entities $ $ #"" BookEntity.java $ #"" service $ #"" HibernateBooksService.java!"" bookstore $!"" api $ $ #"" service $ $ #"" BookstoreService.java $ #"" impl $ #"" service $ #"" BookstoreServiceImpl.java!"" log4j2.xml!"" main $ #"" Main.java #"" main.xml javac -cp [list of JARs in lib] -d out -sourcepath src $(find src -name '*.java') cp $(find src -name '*.xml') out java -cp [list of JARs in lib]:out main.main

10 Missing platform libraries. import javax.xml.bind.datatypeconverter; public class Main { } public static void main(string... args) { } DatatypeConverter.parseBase64Binary("SGVsbG8gd29ybGQh"); java.lang.classnotfoundexception: javax.xml.bind.jaxbexception

11 The platform module graph.

12 java.se vs java.se.ee

13 Resolving JAXB. java --add-modules java.xml.bind

14 Illegal deep reflection. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by javassist.util.proxy.securityactions WARNING: Please consider reporting this to the maintainers of javassist.util.proxy.securityactions WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release

15 Type Compile time Reflection on public Deep reflection Exports Open Exports + Open

16 Fixing illegal deep reflection. Use a library that doesn t do this! do you really need deep reflection on JDK types!? Use command line flags to open packages java --add-opens java.base/java.lang=all-unnamed Main

17 Automatic Modules

18 But we re still on the classpath!

19 Let s migrate our code to modules But how do we deal with libraries?

20 package demo; import com.fasterxml.jackson.databind.objectmapper; public class Main { public static void main(string... args) throws Exception { Book modularitybook = new Book("Java 9 Modularity", "Modularize all the things!"); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writevalueasstring(modularitybook); System.out.println(json); } } module books { }

21 Automatic modules - A nonmodular JAR on the module path Exports all packages Requires all resolved modules Can read the class path (the unnamed module)

22 module books { } requires jackson.databind; CP=lib/jackson-annotations jar: CP+=lib/jackson-core jar javac -cp $CP --module-path mods -d out --module-source-path src -m books

23 Case study

24 Sample app after migration.

25 !"" lib!"" mods!"" run.sh #"" src #"" bookapp!"" books $!"" api $ $!"" entities $ $ $ #"" Book.java $ $ #"" service $ $ #"" BooksService.java $ #"" impl $!"" entities $ $ #"" BookEntity.java $ #"" service $ #"" HibernateBooksService.java!"" bookstore $!"" api $ $ #"" service $ $ #"" BookstoreService.java $ #"" impl $ #"" service $ #"" BookstoreServiceImpl.java!"" log4j2.xml!"" main $ #"" Main.java!"" main.xml #"" module-info.java Step 1 - Project structure. mods dir for automatic modules Single module dir (for now) Add module-info.java javac -cp $CLASSPATH \ --module-path mods \ -d out \ --module-source-path src \ -m bookapp

26 Step 2 - Add requires. Compilation error BookstoreServiceImpl.java:7: error: package org.springframework.stereotype is not visible import org.springframework.stereotype.component; Our module needs explicit dependencies!

27 Step 3 - Add missing compile time platform modules. Compilation error HibernateBooksService.java:19: error: cannot access Referenceable return sessionfactory.getcurrentsession().get(bookentity.class, id); ^ class file for javax.naming.referenceable not found Hibernate should declare requires transitive java.naming

28 Running. java -cp $CLASSPATH --module-path mods:out -m bookapp/main.main

29 Step 4 - Add missing platform modules. java.lang.classnotfoundexception: java.sql.sqlexception java -cp $CLASSPATH --add-modules java.sql,java.xml.bind --module-path mods:out -m bookapp/main.main

30 Step 5 - Open packages for reflection. java.lang.illegalaccessexception: class org.springframework.beans.beanutils cannot access class books.impl.service.hibernatebooksservice (in module bookapp) because module bookapp does not export books.impl.service to unnamed opens books.impl.entities; opens books.impl.service; opens bookstore.impl.service;

31 Step 6 - Illegal deep reflection. java.lang.reflect.inaccessibleobjectexception: Unable to make protected final java.lang.class java.lang.classloader.defineclass(java.lang.string,byte[],int,int,java.security.protectiondomain) throws java.lang.classformaterror accessible: module java.base does not "opens java.lang" to module javassist java -cp $CLASSPATH --add-modules java.sql,java.xml.bind --add-opens java.base/java.lang=javassist --module-path mods:out -m bookapp/main.main

32 Refactor to multiple modules

33 Multi module structure

34 requires books.api books.impl main requires bookstore requires Spring

35 requires books.api books.impl main requires bookstore.api bookstore.impl requires provides uses Module System provides

36 Build tools. module bookstore { requires books; <artifactid>bookstore</artifactid> <build> <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <configuration> <source>9</source> exports bookstore.service.api; <target>9</target> </configuration> uses books.api.service.booksservice; </plugin> </plugins> provides bookstore.service.api.bookstoreservice with </build> bookstore.service.impl.bookstoreserviceimpl; <dependencies> } <dependency> <groupid>javamodularity</groupid> <artifactid>books</artifactid> <version>1.0-snapshot</version> </dependency> </dependencies>

37 Thank you. Paul

Migrating to Java 9 Modules

Migrating to Java 9 Modules Migrating to Java 9 Modules By Sander Mak @Sander_Mak Migrating to Java 9 Java 8 java -cp.. -jar myapp.jar Java 9 java -cp.. -jar myapp.jar Today's journey Running on Java 9 Java 9 modules Migrating to

More information

Advanced Modular Development

Advanced Modular Development Advanced Modular Development Alan Bateman Alex Buckley Java Platform Group, Oracle September 2016 Copyright 2016, Oracle and/or its affiliates. All rights reserved. Sessions 1 2 3 4 5 Prepare for JDK 9

More information

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39

Index. Decomposability, 13 Deep reflection, 136 Dependency hell, 19 --describe-module, 39 Index A --add-exports option, 28, 134 136, 142, 192 Apache Maven compatibility, 214 Compiler plugin, 212, 214 goals, 209 JDeps plugin goals, 210 options, 211 JEP 223 New Version-String scheme, 209 Automatic

More information

Advanced Modular Development CON6821

Advanced Modular Development CON6821 Advanced Modular Development CON6821 Mark Reinhold, Alex Buckley, Alan Bateman Java Platform Group, Oracle October 2015 Copyright 2015, Oracle and/or its affiliates. All rights reserved. Sessions 1 2 3

More information

Designing for Modularity with Java 9

Designing 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 information

Spring Framework 5.0 on JDK 8 & 9

Spring Framework 5.0 on JDK 8 & 9 Spring Framework 5.0 on JDK 8 & 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 5.0 (Overview) 5.0 GA as of September 28 th, 2017 one week after JDK 9 GA! Embracing JDK 9 as well as

More information

Java 9 Module System. Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK

Java 9 Module System. Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK Java 9 Module System Complex Software and Programming Language History of Modules Module Concepts and Tools Modularization of the JDK Problem of Complexity and Programming Language 2 von 41 Early/Modern

More information

Jigsaw and OSGi: What the Heck Happens Now?

Jigsaw and OSGi: What the Heck Happens Now? Jigsaw and OSGi: What the Heck Happens Now? Neil Bartlett neil.bartlett@paremus.com Jigsaw and OSGi: WTF Happens Now? Neil Bartlett neil.bartlett@paremus.com Agenda WTF is a Module System? How do OSGi

More information

COMP6700/2140 Packages, Modules and Jigsaw

COMP6700/2140 Packages, Modules and Jigsaw COMP6700/2140 Packages, Modules and Jigsaw Alexei B Khorev and Josh Milthorpe Research School of Computer Science, ANU May 2017 Alexei B Khorev and Josh Milthorpe (RSCS, ANU) COMP6700/2140 Packages, Modules

More information

Set up Maven plugins in Eclipse. Creating a new project

Set up Maven plugins in Eclipse. Creating a new project In this tutorial, we describe steps for setting up a Maven project that uses libsbolj in Eclipse. Another tutorial follows this one which explains how we use SBOL 2.0 to represent the function of a state-of-the-art

More information

JAVA Modules Java, summer semester 2018

JAVA Modules Java, summer semester 2018 JAVA Modules Modules a module explicitely defines what is provided but also what is required why? the classpath concept is fragile no encapsulation 2 Modules a module explicitely defines what is provided

More information

Jaxb2 Maven Plugin Could Not Process Schema

Jaxb2 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 information

4. Check the site specified in previous step to work with, expand Maven osgi-bundles, and select slf4j.api,

4. Check the site specified in previous step to work with, expand Maven osgi-bundles, and select slf4j.api, In this tutorial, we describe steps for setting up a Maven project that uses libsbolj in Eclipse. Another tutorial follows this one which explains how we use SBOL 2 to represent the function of a state-of-the-art

More information

Hello Gradle. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

Hello Gradle. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2. Hello Gradle TestNG, Eclipse, IntelliJ IDEA Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2 Dávid Bedők 2017.09.18. v0.2 Dávid Bedők (UNI-OBUDA) Hello JavaEE 2017.09.18.

More information

JVM Survival Guide. Hadi Hariri

JVM Survival Guide. Hadi Hariri JVM Survival Guide Hadi Hariri This talk For What For Who 20 years of Java The Sun and The Oracle Java The Language Java The Virtual Machine Java The Ecosystem The Community Community Driven Not Vendor-Driven

More information

Modularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt

Modularity in Java. With OSGi. Alex Docklands.LJC January Copyright 2016 Alex Blewitt Modularity in Java With OSGi Alex Blewitt @alblue Docklands.LJC January 2016 Modularity in Java Modularity is Easy? Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity is Hard! Modularity

More information

Hello Maven. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

Hello Maven. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2. Hello Maven TestNG, Eclipse, IntelliJ IDEA Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2 Dávid Bedők 2017.09.19. v0.1 Dávid Bedők (UNI-OBUDA) Hello JavaEE 2017.09.19.

More information

Java SE 9 and the Application Server

Java SE 9 and the Application Server EclipseCon Europe 2017 Java SE 9 and the Application Server InterConnect 2017 Kevin Sutter MicroProfile and Java EE Architect @kwsutter 1 Java SE 9 Standalone 2 10/30/17 Java 9 Standard Features JSR 379:

More information

Open source software libraries used in ConnectAll

Open source software libraries used in ConnectAll Open source software libraries used in ConnectAll Category Tools Version Ant ant 1.7.0 Ant ant-launcher 1.7.0 Apache commons-beanutils 1.8.0 Apache commons-cli 1.2 Apache commons-codec 1.3 Apache commons-collections

More information

Topics covered. Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session. Maven 2

Topics 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 information

Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth

Component 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 information

Giovanni Stilo, Ph.D. 140 Chars to Fly. Twitter API 1.1 and Twitter4J introduction

Giovanni 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 information

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap

Tattletale. What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap Tattletale What is Tattletale? Enterprise archives JBoss Application Server 7 Putting it all together Roadmap Problems You are faced with a lot of Java archives and you don't know how they relate You need

More information

OAuth2 Autoconfig. Copyright

OAuth2 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 information

Introduction to Modular Development CON5118

Introduction to Modular Development CON5118 Introduction to Modular Development CON5118 Alan Bateman Java Platform Group, Oracle October 2015 Sessions 1 2 3 4 5 Prepare for JDK 9 Introduction to Modular Development Advanced Modular Development Project

More information

Creating RESTful web services with Spring Boot

Creating RESTful web services with Spring Boot Creating RESTful web services with Spring Boot The Spring framework Free and open source Inversion of Control Container (IoC) Modules DI / AOP Data /Security Web MVC/ REST So much more +++ What is Spring

More information

GAVIN KING RED HAT CEYLON SWARM

GAVIN 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 information

Selenium Testing Course Content

Selenium Testing Course Content Selenium Testing Course Content Introduction What is automation testing? What is the use of automation testing? What we need to Automate? What is Selenium? Advantages of Selenium What is the difference

More information

JOSSO 2.4. Weblogic Integration

JOSSO 2.4. Weblogic Integration JOSSO 2.4 Weblogic Integration JOSSO 2.4 : Weblogic Integration 1. Introduction... 1 1.1. Weblogic Integration Overview... 1 2. Prerequisites and Requirements... 2 3. Weblogic Agent Install... 3 3.1. Assumptions...

More information

Simple REST-APIs with Dropwizard and Swagger. Bernd Schönbach LeanIX GmbH

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 information

Gant as Ant and Maven Replacement

Gant as Ant and Maven Replacement Gant as Ant and Maven Replacement Dr Russel Winder Concertant LLP russel.winder@concertant.com russel@russel.org.uk Groovy and Grails User Group 2007 Russel Winder 1 Aims and Objectives Convince people

More information

Setting up a Maven Project

Setting up a Maven Project Setting up a Maven Project This documentation describes how to set up a Maven project for CaptainCasa. Please use a CaptainCasa version higher than 20180102. There were quite some nice changes which were

More information

TOP REASONS WHY YOU SHOULD SWITCH TO MAVEN 3

TOP REASONS WHY YOU SHOULD SWITCH TO MAVEN 3 TOP REASONS WHY YOU SHOULD SWITCH TO MAVEN 3 Dennis Lundberg C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y DENNIS LUNDBERG Systems Architect Java since 1996 Maven PMC member since 2006 Maven

More information

Maven Introduction to Concepts: POM, Dependencies, Plugins, Phases

Maven Introduction to Concepts: POM, Dependencies, Plugins, Phases arnaud.nauwynck@gmail.com Maven Introduction to Concepts: POM, Dependencies, Plugins, Phases This document: http://arnaud-nauwynck.github.io/docs/maven-intro-concepts.pdf 31 M!! What is Maven? https://maven.apache.org/

More information

Session 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p

Session 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p Session 24 Spring Framework Introduction 1 Reading & Reference Reading dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p http://engineering.pivotal.io/post/must-know-spring-boot-annotationscontrollers/

More information

Fat / Uber jars - Using the Shade Plugin

Fat / 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 information

What is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy).

What is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy). Plan What is Maven? Links : mvn command line tool POM : 1 pom.xml = 1 artifact POM POM Inheritance Standard Directory Layout Demo on JMMC projects Plugins Conclusion What is Maven? Apache Maven is a software

More information

You, me and jigsaw. Tom Schindl

You, me and jigsaw. Tom Schindl You, me and jigsaw Tom Schindl Twitter: @tomsontom Blog: http://tomsondev.bestsolution.at Website: http://www.bestsolution.at About Tom CTO BestSolution.at Systemhaus GmbH

More information

Simple Java Programs. OOC 4 th Sem, B Div Prof. Mouna M. Naravani

Simple Java Programs. OOC 4 th Sem, B Div Prof. Mouna M. Naravani Simple Java Programs OOC 4 th Sem, B Div 2016-17 Prof. Mouna M. Naravani /* */ A First Simple Program This is a simple Java program. Call this file "Example.java". class Example { } // Your program begins

More information

Tuscany: Applying OSGi modularity after the fact

Tuscany: Applying OSGi modularity after the fact Tuscany: Applying OSGi modularity after the fact Luciano Resende lresende@apache.org http://lresende.blogspot.com Raymond Feng rfeng@apache.org Agenda Introduction and Motivation Status of current Tools

More information

Microservices To-Go mit Dropwizard

Microservices To-Go mit Dropwizard Microservices To-Go mit Dropwizard Mario Goller Software Engineer, Swisscom AG mario.goller@swisscom.com Java Forum Stuttgart 2017 Excursion: Architecture Comparison Monolith: multiple modules in the same

More information

RobertaLab: Configuration, Architecture, Frameworks, Design

RobertaLab: 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 information

CPSC 324 Topics in Java Programming

CPSC 324 Topics in Java Programming CPSC 324 Topics in Java Programming Lecture 24 Today Final exam review Java packages and jar files Reminder Group projects on Thursday! Reading Assignment Core: Ch. 10 pp. 493-500 (Jar files) Core: Ch.

More information

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird ArcGIS Runtime SDK for Java: Building Apps Mark Baird Agenda Getting started with 100.4 JavaFX Base maps, layers and lambdas Graphics overlays Offline data Licensing and deployment What is happening in

More information

MAVEN INTERVIEW QUESTIONS

MAVEN 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 information

Certified Core Java Developer VS-1036

Certified Core Java Developer VS-1036 VS-1036 1. LANGUAGE FUNDAMENTALS The Java language's programming paradigm is implementation and improvement of Object Oriented Programming (OOP) concepts. The Java language has its own rules, syntax, structure

More information

Advanced Dependency Management with Gradle. Benjamin Muschko, Gradle Inc.

Advanced Dependency Management with Gradle. Benjamin Muschko, Gradle Inc. Advanced Dependency Management with Gradle Benjamin Muschko, Gradle Inc. Custom requirements in complex builds Dependency management requires conscious decisions and trade- offs Transitive dependencies

More information

Modularity in Java 9. Balázs Lájer Software Architect, GE HealthCare. HOUG Oracle Java conference, 04. Apr

Modularity in Java 9. Balázs Lájer Software Architect, GE HealthCare. HOUG Oracle Java conference, 04. Apr Modularity in Java 9 Balázs Lájer Software Architect, GE HealthCare HOUG Oracle Java conference, 04. Apr. 2016. Modularity in Java before Java 9 Source: https://www.osgi.org/developer/architecture/ 2 MANIFEST.MF

More information

1. Go to the URL Click on JDK download option

1. Go to the URL   Click on JDK download option Download and installation of java 1. Go to the URL http://www.oracle.com/technetwork/java/javase/downloads/index.html Click on JDK download option 2. Select the java as per your system type (32 bit/ 64

More information

Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz

Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz Last Updated 2017-11-08 Project Jigsaw: Primary Goals (Reinhold) Make the Java SE Platform, and the JDK, more easily scalable down to small

More information

Unable To The Artifact From Any Repository Maven-clean-plugin

Unable 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 information

Life Without NetBeans

Life Without NetBeans Life Without NetBeans Part A Writing, Compiling, and Running Java Programs Almost every computer and device has a Java Runtime Environment (JRE) installed by default. This is the software that creates

More information

Enterprise 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 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 information

Index. Kishori Sharan 2017 K. Sharan, Java 9 Revealed,

Index. Kishori Sharan 2017 K. Sharan, Java 9 Revealed, Index A Aggregator modules, 17 Applet API, 497 498 Arrays, 495 497 Automatic modules Automatic-Module-Name, 88 89 definition, 86 87 deriving names and versions, 88 explicit modules, 90 exported packages,

More information

IntelliJ IDEA, the most intelligent Java IDE

IntelliJ IDEA, the most intelligent Java IDE IntelliJ IDEA, the most intelligent Java IDE IntelliJ IDEA, JetBrains flagship Java IDE, provides high-class support and productivity boosts for enterprise, mobile and web development in Java, Scala and

More information

Continuous Integration INRIA

Continuous Integration INRIA Vincent Rouvreau - https://sed.saclay.inria.fr February 28, 2017 Contents 1 Preamble To go through this exercise, you will need to install : 1. Git (sudo apt-get install git sudo yum install git) 2. A

More information

Tuesday, April 26, 2011

Tuesday, April 26, 2011 Modular Class Loading With JBoss Modules David M. Lloyd Senior Software Engineer, Red Hat, Inc. The Class Path is Dead - Mark Reinhold, 2009 What does this mean? The limitations inherent in -classpath

More information

Content. Development Tools 2(57)

Content. 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 information

Generating A Hibernate Mapping File And Java Classes From The Sql Schema

Generating A Hibernate Mapping File And Java Classes From The Sql Schema Generating A Hibernate Mapping File And Java Classes From The Sql Schema Internally, hibernate maps from Java classes to database tables (and from It also provides data query and retrieval facilities by

More information

This section describes all application components, technologies and structure

This section describes all application components, technologies and structure RBX Global : Application overview This page last changed on Mar 25, 2009 by jperez. Application overview The EduCloud SIMS is a software application for educational establishments to manage student data.

More information

SCA Java Runtime Overview

SCA Java Runtime Overview SCA Java Runtime Overview Software Organization Source Code Locations If you take a Tuscany SCA Java source distribution or look in the Tuscany subversion repository (http://svn.apache.org/repos/asf/tuscany/java/sc

More information

gradle : Building Android Apps Mobel Meetup

gradle : Building Android Apps Mobel Meetup gradle : Building Android Apps Mobel Meetup 2013-10-15 @alexvb http://alex.vanboxel.be/ Biography Working with Java since the dark ages at Progress Software, Alcatel-Lucent, Interested in science and technology

More information

Oracle 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) 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 information

In this tutorial, we will understand how to use the OpenNLP library to build an efficient text processing service.

In this tutorial, we will understand how to use the OpenNLP library to build an efficient text processing service. About the Tutorial Apache OpenNLP is an open source Java library which is used process Natural Language text. OpenNLP provides services such as tokenization, sentence segmentation, part-of-speech tagging,

More information

Apache Isis Maven plugin

Apache Isis Maven plugin Apache Isis Maven plugin Table of Contents 1. Apache Isis Maven plugin................................................................. 1 1.1. Other Guides.........................................................................

More information

Entity Recognition Module. 1.0 Documentation

Entity Recognition Module. 1.0 Documentation Entity Recognition Module 1.0 Documentation Created: Table of Contents Entity Recognition Module Installation 4 System Requirements 4 Installation 4 Start and Stop 5 Integration with LucidWorks Search

More information

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION

MARS AREA SCHOOL DISTRICT Curriculum TECHNOLOGY EDUCATION Course Title: Java Technologies Grades: 10-12 Prepared by: Rob Case Course Unit: What is Java? Learn about the history of Java. Learn about compilation & Syntax. Discuss the principles of Java. Discuss

More information

JAVA MICROSERVICES. Java Language Environment. Java Set Up. Java Fundamentals. Packages. Operations

JAVA MICROSERVICES. Java Language Environment. Java Set Up. Java Fundamentals. Packages. Operations Java Language Environment JAVA MICROSERVICES Object Oriented Platform Independent Automatic Memory Management Compiled / Interpreted approach Robust Secure Dynamic Linking MultiThreaded Built-in Networking

More information

Programming by Delegation

Programming by Delegation Chapter 2 a Programming by Delegation I. Scott MacKenzie a These slides are mostly based on the course text: Java by abstraction: A client-view approach (4 th edition), H. Roumani (2015). 1 Topics What

More information

AJDT: Getting started with Aspect-Oriented Programming in Eclipse

AJDT: Getting started with Aspect-Oriented Programming in Eclipse AJDT: Getting started with Aspect-Oriented Programming in Eclipse Matt Chapman IBM Java Technology Hursley, UK AJDT Committer Andy Clement IBM Java Technology Hursley, UK AJDT & AspectJ Committer Mik Kersten

More information

Aim behind client server architecture Characteristics of client and server Types of architectures

Aim behind client server architecture Characteristics of client and server Types of architectures QA Automation - API Automation - All in one course Course Summary: In detailed, easy, step by step, real time, practical and well organized Course Not required to have any prior programming knowledge,

More information

ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen

ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen ESC/Java2 Use and Features David Cok, Joe Kiniry, Erik Poll Eastman Kodak Company, University College Dublin, and Radboud University Nijmegen David Cok, Joe Kiniry & Erik Poll - ESC/Java2 & JML Tutorial

More information

Simplified Build Management with Maven

Simplified Build Management with Maven Simplified Build Management with Maven Trasys Greece Kostis Kapelonis 11/06/2010 Menu Kitchen says hi!(motivation) Starters (Maven sample pom) Soup (Maven philosophy) Main dish (Library management) Side

More information

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat

About me. Jesper Pedersen. Project lead for. Chairman for Boston JBoss User Group. Core developer, JBoss by Red Hat About me Jesper Pedersen Core developer, JBoss by Red Hat Project lead for IronJacamar JCA container Tattletale software quality tool JBoss Profiler 2 profiler suite Papaki high-performance annotation

More information

Safely Shoot Yourself in the Foot with Java 9

Safely Shoot Yourself in the Foot with Java 9 1 Safely Shoot Yourself in the Foot with Java 9 Dr Heinz M. Kabutz Last Updated 2017-11-04 2 Project Jigsaw: Primary Goals (Reinhold)! Make the Java SE Platform, and the JDK, more easily scalable down

More information

maven Build System Making Projects Make Sense

maven Build System Making Projects Make Sense maven Build System Making Projects Make Sense Maven Special High Intensity Training Zen Questions Why are we here? What is a project? What is Maven? What is good? What is the sound of one hand clapping?

More information

Zero Turnaround in Java Jevgeni Kabanov

Zero Turnaround in Java Jevgeni Kabanov Zero Turnaround in Java Jevgeni Kabanov ZeroTurnaround Lead Aranea and Squill Project Co-Founder Turnaround cycle Make a change Check the change Build, deploy, wait DEMO: SPRING PETCLINIC TURNAROUND Outline

More information

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

JAVA 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 information

Red Hat JBoss Fuse 6.1

Red Hat JBoss Fuse 6.1 Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications for OSGi containers Last Updated: 2017-10-12 Red Hat JBoss Fuse 6.1 Managing OSGi Dependencies How to package applications

More information

Getting Started with the Cisco Multicast Manager SDK

Getting Started with the Cisco Multicast Manager SDK CHAPTER 1 Getting Started with the Cisco Multicast Manager SDK Cisco Multicast Manager (CMM) 3.2 provides a Web Services Definition Language (WSDL)-based Application Programming Interface (API) that allows

More information

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release

IBM. IBM WebSphere Application Server Migration Toolkit. WebSphere Application Server. Version 9.0 Release WebSphere Application Server IBM IBM WebSphere Application Server Migration Toolkit Version 9.0 Release 18.0.0.3 Contents Chapter 1. Overview......... 1 Chapter 2. What's new........ 5 Chapter 3. Support..........

More information

Call: Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline

Call: Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline Core&Advanced Java Springframeworks Course Content:35-40hours Course Outline Object-Oriented Programming (OOP) concepts Introduction Abstraction Encapsulation Inheritance Polymorphism Getting started with

More information

Ibis Communication Library User s Guide

Ibis Communication Library User s Guide Ibis Communication Library User s Guide http://www.cs.vu.nl/ibis May 24, 2012 1 Introduction This manual describes the steps required to run an application that uses the Ibis communication library. How

More information

Page 1

Page 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 information

JavaFX.Next. Kevin Rushforth Oracle Johan Vos Gluon October Copyright 2018, Oracle and/or its affiliates. All rights reserved.

JavaFX.Next. Kevin Rushforth Oracle Johan Vos Gluon October Copyright 2018, Oracle and/or its affiliates. All rights reserved. JavaFX.Next Kevin Rushforth Oracle Johan Vos Gluon October 2018 Safe Harbor Statement The following is intended to outline our general product direction. It is intended for information purposes only, and

More information

Carsten Ziegeler

Carsten Ziegeler Embrace OSGi Change A Developer's Quickstart Carsten Ziegeler cziegeler@apache.org About Member of the ASF Sling, Felix, Cocoon, Portals, Sanselan, Excalibur, Incubator PMC: Felix, Portals, Cocoon, Incubator,

More information

Seasar2.3. Yasuo Higa Seasar Foundation/Chief Committer Translated by:h.ozawa

Seasar2.3. Yasuo Higa Seasar Foundation/Chief Committer   Translated by:h.ozawa Seasar2.3 Yasuo Higa Seasar Foundation/Chief Committer http://www.seasar.org/en 1 I want to ask this question to every developer in the world, DO YOU REALLY WANT TO WRITE CONFIGURATION FILES? Seasar2 saves

More information

CES Open Source Licenses - Verint Text Analytics

CES Open Source Licenses - Verint Text Analytics CES Open Source Licenses - Verint Text Analytics Version 15.2 Document Revision 1.00 September 2018 Verint.com Twitter.com/verint Facebook.com/verint Blog.verint.com Table of Contents Open Source Attribution...

More information

Equinox OSGi: Pervasive Componentization

Equinox OSGi: Pervasive Componentization Equinox OSGi: Pervasive Componentization Thomas Watson Equinox Development Lead IBM Lotus Jeff McAffer, Eclipse RCP and Equinox Lead IBM Rational Software 10/3/2006 Why is Eclipse interesting? Extensible

More information

SELENIUM TRAINING COURSE CONTENT

SELENIUM TRAINING COURSE CONTENT SECTION 1 : INTRODUCTION SELENIUM TRAINING COURSE CONTENT What is automation testing? When Automation Testing is needed? What is the use of automation testing? Different Automation Tools available in the

More information

Table of Contents. Tutorial API Deployment Prerequisites... 1

Table of Contents. Tutorial API Deployment Prerequisites... 1 Copyright Notice All information contained in this document is the property of ETL Solutions Limited. The information contained in this document is subject to change without notice and does not constitute

More information

Create Datamart. Alessandro Taurelli 2010/06/15 13:41

Create Datamart. Alessandro Taurelli 2010/06/15 13:41 Create Datamart Alessandro Taurelli 2010/06/15 13:41 Table of Contents Create Datamart... 3 1 Reverse engineering the target database schema... 3 2 Hibernate mapping adjustement... 16 3 jar production

More information

Distributing JavaFX Applications with Java WebStart and Artifactory

Distributing JavaFX Applications with Java WebStart and Artifactory Distributing JavaFX Applications with Java WebStart and Artifactory Frederic Simon Yoav Landman JFrog Ltd. About Us Where frogs can code > 10+ years experience in build and dev environments > Promote hassle-free

More information

Demystifying Spring Boot Magic. Patrick DevOps Pro Moscow 2018

Demystifying Spring Boot Magic. Patrick DevOps Pro Moscow 2018 Demystifying Spring Boot Magic Patrick Baumgartner @patbaumgartner DevOps Pro Moscow 2018 Who am I? Patrick Baumgartner Spring Boot And Magic? Some famous tweets Magic or Boilerplate? Magic Things happen

More information

Xmlbeans-maven-plugin Xml Error Loading Schem

Xmlbeans-maven-plugin Xml Error Loading Schem Xmlbeans-maven-plugin Xml Error Loading Schema File Not able to generate entity classes from service.xml file. Jdk14LogImpl info. INFO: No server detec Loading urls(0) = file:/home/barn/.m2/repository/com/liferay/maven/plugins/liferay-mavenplugin/6.0.12/liferay-maven

More information

for Datum the Impatient

for Datum the Impatient JPMS Name Vorname Migration Guide Position for Datum the Impatient Michael Oswald Senior Java Consultant January, 14 2017 This article discusses some recent changes of the module declaration in the Java

More information

MIGRATION GUIDE DIGITAL EXPERIENCE MANAGER 7.2

MIGRATION GUIDE DIGITAL EXPERIENCE MANAGER 7.2 1 SUMMARY 1 INTRODUCTION... 4 2 HOW TO UPGRADE FROM DIGITAL EXPERIENCE MANAGER 7.1 TO 7.2... 5 2.1 Code base review and potential impacts... 5 2.2 Deployment scripts/procedure review... 5 2.3 Test environment

More information

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM

An Integrated Approach to Managing Windchill Customizations. Todd Baltes Lead PLM Technical Architect SRAM An Integrated Approach to Managing Windchill Customizations Todd Baltes Lead PLM Technical Architect SRAM Event hashtag is #PTCUSER10 Join the conversation! Topics What is an Integrated Approach to Windchill

More information

Oracle Code Day Hands On Labs HOL

Oracle 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 information

Exceptions and Libraries

Exceptions and Libraries Exceptions and Libraries RS 9.3, 6.4 Some slides created by Marty Stepp http://www.cs.washington.edu/143/ Edited by Sarah Heckman 1 Exceptions exception: An object representing an error or unusual condition.

More information