A presentation which shows you what the pain points are when working with Scala Future on Servlet environment
'VUVSFPO4FSWMFU,B[VIJSP4FSB!TFSBUDI
View Slide
8IPBN*w!TFSBUDIw4DBMJLF+%#$ʢʙʣw4LJOOZ'SBNFXPSLʢʙʣw4DBMBUSBɺKTPOTɺ4DBMBUFw. *OD4PGUXBSF%FWFMPQFS
"HFOEBw8IZ'VUVSFw5ISFBEMPDBMUIJOHTJOUIFXJMEw'VUVSFIBTJUTPXOUISFBEQPPMw4FSWMFU"1*`TNVUBCJMJUZwSFDZDMJOHSFRVFTUJTTVFJOBTZODNPEFw4DBMBUSB%ZOBNJD4DPQFJTTVFw4LJOOZ`TTPMVUJPO
8IZ'VUVSF
)PXUPVTF'VUVSFw$SFBUJOHBOEDPNQPTJOHNVMUJQMF'VUVSFTBOEUIFO"XBJUSFTVMU 'VUVSF SFUVSOJOH4FSWMFUSFTQPOTFTZODISPOPVTMZw3VOOJOH4FSWMFUTJOBTZODNPEFTVQQPSUFETJODF4FSWMFU
8IZ'VUVSFw6TJOH'VUVSFPO4FSWMFUJTOPUBMXBZTSFDPNNFOEFEw050) 'VUVSFJTUIFTUBOEBSEJO4DBMBOPX TPNFUJNFTOFFEFEUPTNPPUIMZJOUFHSBUF'VUVSFCBTFEMJCSBSJFTw.ZOFBSB⒎BJSVTJOHOVMBCTDBMBPBVUIQSPWJEFSJOB4FSWMFUBQQMJDBUJPO
5ISFBEMPDBMUIJOHTJOUIFXJME
5ISFBEFENPEFMwPOFUISFBEGPSPOFSFRVFTUw"UISFBESFUVSOTBSFTQPOTFGPSBSFRVFTUw0OUIFTBNFUISFBEGPSXIPMFQSPDFTTw5ISFBEQPPMNBOBHFECZDPOUBJOFSTw+BWB&&IBT+43UPTIPXIPXUPVTFDPODVSSFODZ
5ISFBE-PDBMw%ZOBNJD7BSJBCMFJO4DBMBw4PNFUJNFTIBWFBOFBTZUJNFPGJUCZVTJOH5ISFBE-PDBMJGOPNVMUJUISFBEJOHw/POFFEUPUBLFTUBUFBSPVOEUPNFUIPETw"01GSJFOEMZw*NQMJDJUTUBUFNBLFTDPEFTJNQMF
'VUVSFIBTJUTPXOUISFBEQPPM
'VUVSFw'VUVSFTDBMBEPDw'VUVSFBQQMZ\EJ⒎FSFOUUISFBEIFSF^w'VUVSFTVDDFTTGVM\TBNFUISFBEIFSF^w$BOFBTJMZDSFBUFBTZODPQFSBUJPOTUIBUSVOPOEJ⒎FSFOUUISFBETNBOBHFECZUISFBEQPPM &YFDVUJPO$POUFYUw5PPFBTZUPBDDFTTpFMETPOUIF4FSWMFUUISFBEGSPN'VUVSFUISFBET
4FSWMFU"1*`TNVUBCJMJUZ
4FSWMFU"1*JTNVUBCMFw3FRVFTUTFU"UUSJCVUF 4USJOH "OZ3FGw*NQMFNFOUBUJPOQBUUFSOTUIBUEFQFOEPOSFRVFTUBUUSJCVUFTw0CKFDUTNBOBHFECZDPOUBJOFSTw8SJUJOHSFTVMUWBMVFPOSFTQPOTFBOZUJNFw4JNQMZBDDFTTJOHUIFNBNPOHNVMUJQMFUISFBETJTTPGSBHJMF
SFDZDMJOHSFRVFTUJTTVFJOBTZODNPEF
+43+BWB4FSWMFU4QFDJpDBUJPOIUUQTKDQPSHFOKTSEFUBJM JE
#VHSFRVFTUHFU$POUFYU1BUI JTOVMMXIFOXPSLJOHJOBTZODNPEFIUUQTCVHTFDMJQTFPSHCVHTTIPX@CVHDHJ JE+FUUZ
#VH/VMM1PJOUFS&YDFQUJPOJOPSHBQBDIFDBUBMJOBDPOOFDUPSIUUQTC[BQBDIFPSHCVH[JMMBTIPX@CVHDHJ JED5PNDBU
SFDZDMJOHSFRVFTUTw*OGBDU SFRVFTUDBOCFSFDZDMFECFGPSF"TZOD$POUFYUDPNQMFUF w$POUBJOFSTDPNNPOMZEPUIFlSFDZDMFzJOPSEFSUPBWPJEQFSGPSNBODFPWFSIFBEw*G*VOEFSTUBOESJHIU FWFOUIPVHI4FSWMFUTQFDTBZTTBNFBCPVUSFTQPOTF SFTQPOTFXPO`UCFSFDZDMFEVOUJMJUTDMPTVSFBUMFBTUJODBTFTPGTUBUFMFTT)551
4DBMBUSB%ZOBNJD4DPQFJTTVF
Too easy to access this valueeverywhere including Futurethreads created on this Servlet
SFRVFTUSFTQPOTFw4DBMBUSB#BTF`TSFRVFTUSFTQPOTFBSFUISFBEMPDBM UPPEBOHFSPVTUPBDDFTTUIFNGSPN'VUVSFUISFBETw"MMUIF%4-BOEFYUFOTJPOTEPO`UBDDFQUSFRVFTUBTJNQMJDJUQBSBNFUFSw*OUIFJOJUJBMTUBUF UIJTEFTJHOJTSFBTPOBCMF 'VUVSFEJEO`UFYJTUBUUIFUJNF 4JOBUSBDPODFQU
4LJOOZ`TTPMVUJPO
4LJOOZ
TLJOOZFOHJOF
TLJOOZFOHJOFw4UBSUFEBTB4DBMBUSBGPSL NVDIJNQSPWFEJOUFSOBMDPEFXIJMF%4-TPVSDFDPNQBUJCJMJUZJTLFQUw.BOZSFOBNJOHSFQBDLBHJOHBOEBGFXSFNPWBMPOUSBJUTw1BTTFEBMMUIF4DBMBUSB`TFYJTUJOHUFTUTw*`EMPWFUPDPOUSJCVUFTLJOOZFOHJOF`TJNQSPWFNFOUTUP4DBMBUSBUPP
TUBCMFSFRVFTU
TUBCMFSFRVFTUw4UBCMFBDDFTTUPSFBEPOMZEBUB SFRVFTUBUUSJCVUFTFWFOXIFOSFRVFTUIBTCFFOSFDZDMFEXIJMF'VUVSFPQTBSFTUJMMSVOOJOHw7BMJEBUFTVOTUBCMFBDDFTTUPPCKFDUTNBOBHFECZDPOUBJOFST .w4IPVMEXPSLBUMFBTUPO+FUUZBOE5PNDBU
/PNPSF%ZOBNJD4DPQF
/PNPSF%ZOBNJD4DPQFw1BTTTLJOOZFOHJOF$POUFYUBTJNQMJDJUQBSBNFUFSUPBMMUIF%4-"1*Tw"TZOD4LJOOZ&OHJOF4FSWMFU'JMUFSBDDFQU$POUFYU"OZBTBDUJPOJOTUFBEw0O4DBMBUSBDPNQBUJCMFUSBJUT EFUFDUGSBHJMFDPEFCZDIFDLJOHDPNQJMBUJPOFSSPSTbFSSPSBNCJHVPVTJNQMJDJUWBMVFT`
/FXBTZODUSBJU
4DBMBUSBDPNQBUJCMFUSBJU
0ILJOJb5IBOLT`JO0TBLB