SlideShare a Scribd company logo
Introducing	Scala	in	your
existing	Java	project
Tim	Soethout	-	ING	Bank
http://blog.timmybankers.nl
Overview
Intro
Scala	@	ING	-	Context
Compiling	Scala	in	Maven
Mixing	Java	and	Scala	source
Code	coverage
Code	quality	using	Sonar
More	code	analysis
Documentation	for	Java	consumers
Wrap	up
Who	am	I?
Tim	Soethout
Functional	programmer	at	heart
Scala	evangelist/trainer	inside	ING
More	recently:	Aquarium	enthusiast	&	West	Coast	Swing-
dancer
Scala	@	ING
State
Much	Java	with	Maven
Some	Scala	for	restful	services	using	Akka
Open	source:	Coral
Developers	are	getting	interested	and	looking	for
possibilities
Context
Maven	project	written	in	Java	6
Team	with	mixed	Scala	experience	levels
Eager	to	do	Scala
But	within	Enterprise:	Compliancy
Compiling	Scala	in	Maven
scala-maven-plugin
<project>
<build>
<sourceDirectory>src/main/scala</sourceDirectory>
<testSourceDirectory>src/test/scala</testSourceDirectory>
<plugins>
<plugin>
<groupId>net.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>3.2.2</version>
...
</plugin>
</plugins>
</build>
</project>
Mixing	Java	and	Scala
source
Demo
Mixed	Java	&	Scala
Demo
Multiple	modules
Mixing	it	up
Seems	to	work	on	first	sight
Problems	can	arise	in:
Multiple	modules
Dependencies	from	Java	to	Scala
Depends	on	compile	order
sbt	incremental	compiler	to	the	rescue
scala-maven-plugin:
<configuration>
<recompileMode>incremental</recompileMode>
</configuration>
Another	option;	runs	sbt	underneath
Not	really	maintained	anymore,	but	helped	us	a	lot	6
months	ago
sbt-compiler-maven-plugin
<plugin>
<groupId>com.google.code.sbt-compiler-maven-plugin</groupId>
<artifactId>sbt-compiler-maven-plugin</artifactId>
<version>1.0.0-beta5</version>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
<goal>addScalaSources</goal>
</goals>
<id>default-sbt-compile</id>
</execution>
</executions>
</plugin>
Code	coverage
Cobertura,	Jacoco,	Clover,	EclEmma?!?
Works	good	for	Java
Line	and	branch	coverage
Demo
Let's	try	it	for	Scala!
That's	awful!
Scala	compiler	generates	lots	for	you	(i.e.	in	case	classes,
traits	etc)
Cobertura	and	Jacoco	work	on	byte	code
ergo	lots	of	uncovered	generated	code
I	don't	want	to	be	testing	generated	code,	would	you?
to	the	rescue!
Scala	statement	and	branch	coverage!
scoverage-maven-plugin
Demo
Let's	try	it	for	Scala!
So	what	did	we	do?!
Statement	coverage	for	Scala	with	scoverage
Normal	line/branch	coverage	for	Java	with	Cobertura
Code	quality	using	Sonar
Code	Quality	Platform
Code	metrics
Coverage
Complexity
Size
Rules
Spot	regression
SonarQube
Tooling
docker-compose	script	with	data	container,	Postgres
database	and	SonarQube
Contains	plugins	needed	for	Scala!	(Cobertura,
scoverage,	Java,	etc)
	-	updated	to	use	cobertura	only	for	Java
Used	for	filtering	Scala	coverage	from	cobertura.xml
scala-sonarqube-docker
sonar-scala-plugin
xml-transform-maven-plugin
Demo
Java	&	Scala	code	coverage	in	Sonar
*.java
cobertura
cobertura.xml
*.scala
scoverage
scoverage.xml
xml-transform-maven-plugin
Sonar Scoverage plugincobertura-without-scala.xml
Sonar Cobertura Plugin
SonarQube
More	code	analysis
Compiler	flags	Java
-Xlint:unchecked	-	Unchecked	casts
Compiler	flags	Scala
-unchecked
-deprecation
-feature
-Xlint
-Yno-adapted-args
-Ywarn-dead-code
-Ywarn-numeric-widen
-Ywarn-value-discard
-Xfuture
-Ywarn-unused-import
-Ywarn-unused
Demo
Compiler	flags
FindBugs	&	FindSecurityBugs
More	checks	-	To	implement
Abide
Wartremover
Documentation	for	Java
consumers
Generated	outline	of	Scala	files	in	java
including	javadoc	annotations
useful	to	generate	Javadoc	for	Java	consumers
genjavadoc
Demo
genjavadoc
Wrap	up
Recap
Scala	and	Java	code	in
single	module
multiple	modules
code	coverage	on	both
Code	Quality	with
SonarQube
ScalaStyle
FindBugs
Lots	to	tweak	-	compiler	arguments,	linters
Documentation	for	Java
Thanks	for	listening
Questions?
	/	Slides Code
Important	legal	information
This	document	has	been	produced	by	ING	solely	for	use	at	presentations	held	externally,	and	may	not	be	reproduced	or	redistributed,	in	whole	or	in	part,	to	any	other	persons	without	the	prior	written
consent	of	ING.	The	content	of	this	document	is	not	to	be	construed	as	legal,	business,	investment	or	tax	advice.	Each	person	should	consult	with	its	own	professional	advisors	for	any	such	matters	and
advice.	ING	comprises	a	broad	spectrum	of	companies	(the	"ING	companies"),	many	of	them	operating	under	their	own	brand	names.	Almost	every	ING	company,	business	unit	or	product	group,	has	its
own	website	on	the	internet	where	it	offers	information	about	its	products	and	services.	Reference	is	made	to	those	websites	for	further	details	and	hyperlinks	to	the	websites	of	those	ING	companies,
business	units	and	product	groups,	if	available.	However,	ING	is	not	responsible	for	the	content	of	any	other	websites	that	are	included	in	this	document.	A	link	to	such	website	is	meant	for	convenience
only	and	does	not	imply	that	ING	endorses	the	website	or	any	products	or	services	that	it	describes.	Your	access	to	and	use	of	any	other	websites	included	in	this	document	is	at	your	own	risk	and	ING
assumes	no	obligation	or	liability	in	connection	therewith.
Certain	of	the	statements	contained	in	this	release	are	statements	of	future	expectations	and	other	forward-looking	statements.	These	expectations	are	based	on	management’s	current	views	and
assumptions	and	involve	known	and	unknown	risks	and	uncertainties.	Actual	results,	performance	or	events	may	differ	materially	from	those	in	such	statements	due	to,	among	other	things	:	(1)	changes
in	general	economic	conditions,	in	particular	economic	conditions	in	ING’s	core	markets,	(2)	changes	in	performance	of	financial	markets,	including	developing	markets,	(3)	consequences	of	a	potential
(partial)	break-up	of	the	euro,	(4)	ING’s	implementation	of	the	restructuring	plan	as	agreed	with	the	European	Commission,	(5)	changes	in	the	availability	of,	and	costs	associated	with,	sources	of	liquidity
such	as	interbank	funding,	as	well	as	conditions	in	the	credit	markets	generally,	including	changes	in	borrower	and	counterparty	creditworthiness,	(6)	the	frequency	and	severity	of	insured	loss	events,	(7)
changes	affecting	mortality	and	morbidity	levels	and	trends,	(8)	changes	affecting	persistency	levels,	(9)	changes	affecting	interest	rate	levels,	(10)	changes	affecting	currency	exchange	rates,	(11)
changes	in	investor,	customer	and	policyholder	behaviour,	(12)	changes	in	general	competitive	factors,	(13)	changes	in	laws	and	regulations,	(14)	changes	in	the	policies	of	governments	and/or	regulatory
authorities,	(15)	conclusions	with	regard	to	purchase	accounting	assumptions	and	methodologies,	(16)	changes	in	ownership	that	could	affect	the	future	availability	to	us	of	net	operating	loss,	net	capital
and	built-in	loss	carry	forwards,	(17)	changes	in	credit-ratings,	(18)	ING’s	ability	to	achieve	projected	operational	synergies	and	(19)	the	other	risks	and	uncertainties	detailed	in	the	risk	factors	section
contained	in	the	most	recent	annual	report	of	ING	Groep	N.V.	Any	forward-looking	statements	made	by	or	on	behalf	of	ING	speak	only	as	of	the	date	they	are	made,	and,	ING	assumes	no	obligation	to
publicly	update	or	revise	any	forward-looking	statements,	whether	as	a	result	of	new	information	or	for	any	other	reason.
This	document	does	not	constitute	an	offer	to	sell,	or	a	solicitation	of	an	offer	to	purchase,	any	securities	in	the	United	States	or	any	other	jurisdiction.	The	securities	of	NN	Group	have	not	been	and	will
not	be	registered	under	the	U.S.	Securities	Act	of	1933,	as	amended	(the	“Securities	Act”),	and	may	not	be	offered	or	sold	within	the	United	States	absent	registration	or	an	applicable	exemption	from	the
registration	requirements	of	the	Securities	Act.
www.ing.com

More Related Content

What's hot

Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
Bruno Borges
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
Ed Burns
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework
Abdhesh Kumar
 
MySQL User Camp: Multi-threaded Slaves
MySQL User Camp: Multi-threaded SlavesMySQL User Camp: Multi-threaded Slaves
MySQL User Camp: Multi-threaded Slaves
Shivji Kumar Jha
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Bruno Borges
 
Java1
Java1Java1
Java1
Java1Java1
Java on Azure
Java on AzureJava on Azure
Java on Azure
Philly JUG
 
Play framework : A Walkthrough
Play framework : A WalkthroughPlay framework : A Walkthrough
Play framework : A Walkthrough
mitesh_sharma
 
Connecting Connect with Spring Boot
Connecting Connect with Spring BootConnecting Connect with Spring Boot
Connecting Connect with Spring Boot
Vincent Kok
 
PROGRAMMING IN JAVA- unit 5-part II
PROGRAMMING IN JAVA- unit 5-part IIPROGRAMMING IN JAVA- unit 5-part II
PROGRAMMING IN JAVA- unit 5-part II
SivaSankari36
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
Martin Grebac
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
Bruno Borges
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 Framework
PT.JUG
 
DevJam 2019 - Building an ALEC Time Engine
DevJam 2019 - Building an ALEC Time EngineDevJam 2019 - Building an ALEC Time Engine
DevJam 2019 - Building an ALEC Time Engine
Ronny Trommer
 
Agile sites311training
Agile sites311trainingAgile sites311training
Agile sites311training
Michele Sciabarrà
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
Reza Rahman
 
Building a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring BootBuilding a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring Boot
Omri Spector
 
Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0
Steven Smith
 

What's hot (20)

Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Java EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The CloudJava EE Arquillian Testing with Docker & The Cloud
Java EE Arquillian Testing with Docker & The Cloud
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016HTTP/2 in the Java Platform -- Java Champions call February 2016
HTTP/2 in the Java Platform -- Java Champions call February 2016
 
Scala play-framework
Scala play-frameworkScala play-framework
Scala play-framework
 
MySQL User Camp: Multi-threaded Slaves
MySQL User Camp: Multi-threaded SlavesMySQL User Camp: Multi-threaded Slaves
MySQL User Camp: Multi-threaded Slaves
 
Melhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na NuvemMelhore o Desenvolvimento do Time com DevOps na Nuvem
Melhore o Desenvolvimento do Time com DevOps na Nuvem
 
Java1
Java1Java1
Java1
 
Java1
Java1Java1
Java1
 
Java on Azure
Java on AzureJava on Azure
Java on Azure
 
Play framework : A Walkthrough
Play framework : A WalkthroughPlay framework : A Walkthrough
Play framework : A Walkthrough
 
Connecting Connect with Spring Boot
Connecting Connect with Spring BootConnecting Connect with Spring Boot
Connecting Connect with Spring Boot
 
PROGRAMMING IN JAVA- unit 5-part II
PROGRAMMING IN JAVA- unit 5-part IIPROGRAMMING IN JAVA- unit 5-part II
PROGRAMMING IN JAVA- unit 5-part II
 
Java API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and updateJava API for JSON Binding - Introduction and update
Java API for JSON Binding - Introduction and update
 
Migrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFXMigrating From Applets to Java Desktop Apps in JavaFX
Migrating From Applets to Java Desktop Apps in JavaFX
 
An Introduction to Play 2 Framework
An Introduction to Play 2 FrameworkAn Introduction to Play 2 Framework
An Introduction to Play 2 Framework
 
DevJam 2019 - Building an ALEC Time Engine
DevJam 2019 - Building an ALEC Time EngineDevJam 2019 - Building an ALEC Time Engine
DevJam 2019 - Building an ALEC Time Engine
 
Agile sites311training
Agile sites311trainingAgile sites311training
Agile sites311training
 
Testing Java EE Applications Using Arquillian
Testing Java EE Applications Using ArquillianTesting Java EE Applications Using Arquillian
Testing Java EE Applications Using Arquillian
 
Building a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring BootBuilding a REST Service in minutes with Spring Boot
Building a REST Service in minutes with Spring Boot
 
Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0Introducing ASP.NET Core 2.0
Introducing ASP.NET Core 2.0
 

Viewers also liked

Exploiting hotel Cassandra
Exploiting hotel CassandraExploiting hotel Cassandra
Exploiting hotel Cassandra
ING-IT
 
Elastic{on} - Tracking of events within ING
Elastic{on} - Tracking of events within INGElastic{on} - Tracking of events within ING
Elastic{on} - Tracking of events within ING
ING-IT
 
Cassandra at ING - There and back again
Cassandra at ING - There and back againCassandra at ING - There and back again
Cassandra at ING - There and back again
ING-IT
 
Online recommendations at scale using matrix factorisation
Online recommendations at scale using matrix factorisationOnline recommendations at scale using matrix factorisation
Online recommendations at scale using matrix factorisation
Marcus Ljungblad
 
ITIL and DEVOPS can be friends
ITIL and DEVOPS can be friendsITIL and DEVOPS can be friends
ITIL and DEVOPS can be friends
ING-IT
 
Transformation to a scalable architecture at ING
Transformation to a scalable architecture at INGTransformation to a scalable architecture at ING
Transformation to a scalable architecture at ING
ING-IT
 
Nginx conference 2015
Nginx conference 2015Nginx conference 2015
Nginx conference 2015
ING-IT
 
Chronicles of the lion
Chronicles of the lionChronicles of the lion
Chronicles of the lion
ING-IT
 
2016 Banking Trends
2016 Banking Trends2016 Banking Trends
2016 Banking Trends
MX
 

Viewers also liked (9)

Exploiting hotel Cassandra
Exploiting hotel CassandraExploiting hotel Cassandra
Exploiting hotel Cassandra
 
Elastic{on} - Tracking of events within ING
Elastic{on} - Tracking of events within INGElastic{on} - Tracking of events within ING
Elastic{on} - Tracking of events within ING
 
Cassandra at ING - There and back again
Cassandra at ING - There and back againCassandra at ING - There and back again
Cassandra at ING - There and back again
 
Online recommendations at scale using matrix factorisation
Online recommendations at scale using matrix factorisationOnline recommendations at scale using matrix factorisation
Online recommendations at scale using matrix factorisation
 
ITIL and DEVOPS can be friends
ITIL and DEVOPS can be friendsITIL and DEVOPS can be friends
ITIL and DEVOPS can be friends
 
Transformation to a scalable architecture at ING
Transformation to a scalable architecture at INGTransformation to a scalable architecture at ING
Transformation to a scalable architecture at ING
 
Nginx conference 2015
Nginx conference 2015Nginx conference 2015
Nginx conference 2015
 
Chronicles of the lion
Chronicles of the lionChronicles of the lion
Chronicles of the lion
 
2016 Banking Trends
2016 Banking Trends2016 Banking Trends
2016 Banking Trends
 

Similar to Introducing Scala in your existing Java project

Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
ssusercd195b
 
From java to scala at crowd mix
From java to scala at crowd mixFrom java to scala at crowd mix
From java to scala at crowd mix
Stefano Galarraga
 
Not Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabsNot Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabs
Konrad Malawski
 
QCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVM
QCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVMQCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVM
QCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVM
Peter Pilgrim
 
Reactive Programming With Akka - Lessons Learned
Reactive Programming With Akka - Lessons LearnedReactive Programming With Akka - Lessons Learned
Reactive Programming With Akka - Lessons Learned
Daniel Sawano
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
Petr Hošek
 
Bhadale Group of Companies - digital projects
Bhadale Group of Companies - digital projectsBhadale Group of Companies - digital projects
Bhadale Group of Companies - digital projects
Vijayananda Mohire
 
Java Community News - September 2015
Java Community News - September 2015Java Community News - September 2015
Java Community News - September 2015
Yolande Poirier
 
Selling Scala to your boss
Selling Scala to your bossSelling Scala to your boss
Selling Scala to your boss
João Bernardino
 
Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy WSO2
 
Assist software awesome scala
Assist software   awesome scalaAssist software   awesome scala
Assist software awesome scala
AssistSoftware
 
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign SolutionsTen Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
MetaDesign Solutions
 
Sakai spring maven archetype
Sakai spring maven archetypeSakai spring maven archetype
Sakai spring maven archetype
gjenning
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
Haim Michael
 
Java in a world of containers
Java in a world of containersJava in a world of containers
Java in a world of containers
Docker, Inc.
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
Arun Gupta
 
Akka Made Our Day
Akka Made Our DayAkka Made Our Day
Akka Made Our Day
Daniel Sawano
 
Scala eXchange: Building robust data pipelines in Scala
Scala eXchange: Building robust data pipelines in ScalaScala eXchange: Building robust data pipelines in Scala
Scala eXchange: Building robust data pipelines in Scala
Alexander Dean
 
LF_APIStrat17_Keep Your Swagger On
LF_APIStrat17_Keep Your Swagger OnLF_APIStrat17_Keep Your Swagger On
LF_APIStrat17_Keep Your Swagger On
LF_APIStrat
 
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
Edureka!
 

Similar to Introducing Scala in your existing Java project (20)

Functional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdfFunctional Scala 2022 - scalajs Alexis.pdf
Functional Scala 2022 - scalajs Alexis.pdf
 
From java to scala at crowd mix
From java to scala at crowd mixFrom java to scala at crowd mix
From java to scala at crowd mix
 
Not Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabsNot Only Streams for Akademia JLabs
Not Only Streams for Akademia JLabs
 
QCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVM
QCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVMQCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVM
QCon 2015 Scala for the Enterprise: Get FuNkEd Up on the JVM
 
Reactive Programming With Akka - Lessons Learned
Reactive Programming With Akka - Lessons LearnedReactive Programming With Akka - Lessons Learned
Reactive Programming With Akka - Lessons Learned
 
Lessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its EcosystemLessons Learned: Scala and its Ecosystem
Lessons Learned: Scala and its Ecosystem
 
Bhadale Group of Companies - digital projects
Bhadale Group of Companies - digital projectsBhadale Group of Companies - digital projects
Bhadale Group of Companies - digital projects
 
Java Community News - September 2015
Java Community News - September 2015Java Community News - September 2015
Java Community News - September 2015
 
Selling Scala to your boss
Selling Scala to your bossSelling Scala to your boss
Selling Scala to your boss
 
Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy Kick Start your Application Development and Management Strategy
Kick Start your Application Development and Management Strategy
 
Assist software awesome scala
Assist software   awesome scalaAssist software   awesome scala
Assist software awesome scala
 
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign SolutionsTen Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
Ten Compelling Reasons to Go the Scala Development Way - Metadesign Solutions
 
Sakai spring maven archetype
Sakai spring maven archetypeSakai spring maven archetype
Sakai spring maven archetype
 
The Scala Programming Language
The Scala Programming LanguageThe Scala Programming Language
The Scala Programming Language
 
Java in a world of containers
Java in a world of containersJava in a world of containers
Java in a world of containers
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
Akka Made Our Day
Akka Made Our DayAkka Made Our Day
Akka Made Our Day
 
Scala eXchange: Building robust data pipelines in Scala
Scala eXchange: Building robust data pipelines in ScalaScala eXchange: Building robust data pipelines in Scala
Scala eXchange: Building robust data pipelines in Scala
 
LF_APIStrat17_Keep Your Swagger On
LF_APIStrat17_Keep Your Swagger OnLF_APIStrat17_Keep Your Swagger On
LF_APIStrat17_Keep Your Swagger On
 
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
Spring Framework Tutorial | Spring Tutorial For Beginners With Examples | Jav...
 

Recently uploaded

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 

Recently uploaded (20)

Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 

Introducing Scala in your existing Java project