- AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3...
Transcript of - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3...
![Page 1: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/1.jpg)
- AdoptOpenJDK – Ensuring Free Java™ for the Community
PresentedBy:
ShelleyLambert(AdoptOpenJDKCommitter,EclipseOpenJ9Committer,IBMRuntimesTestLeader)
![Page 2: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/2.jpg)
Agenda
• TheBasics• BriefHistory• Rationale• RoadmapAnd• BuildFarmTech
![Page 3: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/3.jpg)
The Basics
![Page 4: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/4.jpg)
What is Java?
• JavaDevelopmentKit(JDK)consistsof• JavaRuntimeEnvironment(JRE)• ToolstocompileanddebugJavacodefordevelopingJavaapplications.
• JREconsistsof:• Libraries• JavaVirtualMachine(JVM)• JavaPlugin(Applets!)andJavaWebStart
![Page 5: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/5.jpg)
What is OpenJDK?
• Thereferenceimplementation(RI)fromJava7SEonwards
• Freeandopensource• GNUGeneralPublicLicense,version2,withtheClasspathException
• SourcetobuildyourownJava;boththelanguageandplatform
• UserslikeTwitter,AlibabaandAmazonhaveaugmentedtheJDKwithcustombuildsfortheirplatforms
• Manycommercialandcommunitybuildsavailable
![Page 6: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/6.jpg)
OpenJDK is widely available via multiple distros and builders
• Oracle’scommercialJDKbuildsfromOpenJDKandisevolvingthetwotobeessentiallyidentical.
• IBM’sJDKisbasedonEclipseOpenJ9,forJava8andonwards,asingleVMwhichrunsacrossmanyversions.OpenJ9canbebuiltasacomponentofOpenJDK
• Zulu®isAzul’sbuildofOpenJDK• IcedTeaisoneoftheearliestOpenJDKdistrosandblendsOpenJDKandGNUClasspath.
• IcedTeaiscurrentlybundleddefaultwithGNU/LinuxdistributionssuchasFedora,GentooandDebian.
![Page 7: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/7.jpg)
goo.gl/PakfKi
![Page 8: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/8.jpg)
What is AdoptOpenJDK?
• AdoptOpenJDKisabuildfarmforOpenJDKbinaries
• Freshbuildsacrossmanyplatforms,nightly.
• Fullyopen-source;fulltransparencyontheentirepipeline,fromhostpreptotestinganddistribution.
• Consistentqualityacrossallplatforms.
![Page 9: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/9.jpg)
History
![Page 10: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/10.jpg)
https://www.slideshare.net/neomatrix369/adopt-openjdk-the-past-the-present-the-future
+
![Page 11: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/11.jpg)
Current OpenJDK Difficulties
Thorough testing is challenging...
Visibility of contributions Discussions on incorrect mailing lists Lots of work for reviewers
![Page 12: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/12.jpg)
Evolution
AdoptOpenJDK build farm born from the desire to standardize build/test of JDK binaries.
![Page 13: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/13.jpg)
Enter Stage Left – IBM and Eclipse & Distribution
IBMopen-sourcestheirJavastack:● OpenLiberty● EclipseOpenJ9(IBM’sJVMbuilt
uponEclipseOMR)
● AdoptOpenJDK,anaturalplaceforEclipseOpenJ9communitytobuildanddistributeOpenJDKwithOpenJ9binaries
![Page 14: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/14.jpg)
IBM donates testing infrastructure
IBMdonatesitsinternalJavatestinginfrastructuretoAdoptOpenJDK
● Inthespaceofweeks,AdoptOpenJDKisabletopushouthighqualitybinaries
![Page 15: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/15.jpg)
Extreme Growth
AdoptOpenJDKgrowsto60+reposand600+volunteersin6-9months.
• ATechnicalSteeringCommitteeisbeingformedtoensurequalityandsecurity
• Lotsofcommunityparticipation
![Page 16: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/16.jpg)
The Flow
● BuildTestDeploy
● Nightly&ReleasePipelines● NightlyandReleasebinariesdistributed
ontheAdoptOpenJDKwebsite(+viaapi.adoptopenjdk.net)
![Page 17: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/17.jpg)
AdoptOpenJDK Example (Build, Test, Deploy)
OpenJDKmercurialrepoismirroredintoGitHub
RepoisclonedintoJenkins
Buildjobiskickedoff
Ifbuildpassesthenthetestsuitesarekickedoff
Iftestpassesthenbinaryisshipped
![Page 18: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/18.jpg)
AdoptOpenJDK Example (Build, Test, Deploy)
OpenJDKmercurialrepoismirroredintoGitHub
RepoisclonedintoJenkins
Buildjobiskickedoff
Ifbuildpassesthenthetestsuitesarekickedoff
Iftestpassesthenbinaryisshipped
![Page 19: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/19.jpg)
AdoptOpenJDK Example (Build, Test, Deploy)
OpenJDKmercurialrepoismirroredintoGitHub
RepoisclonedintoJenkins
Buildjobiskickedoff
Ifbuildpassesthenthetestsuitesarekickedoff
Iftestpassesthenbinaryisshipped
![Page 20: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/20.jpg)
AdoptOpenJDK Example (Build, Test, Deploy)
OpenJDKmercurialrepoismirroredintoGitHub
RepoisclonedintoJenkins
Buildjobiskickedoff
Ifbuildpassesthenthetestsuitesarekickedoff
Iftestpassesthenbinaryisshipped
![Page 21: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/21.jpg)
AdoptOpenJDK Example (Build, Test, Deploy)
OpenJDKmercurialrepoismirroredintoGitHub
RepoisclonedintoJenkins
Buildjobiskickedoff
Ifbuildpassesthenthetestsuitesarekickedoff
Iftestpassesthenbinaryisshipped
![Page 22: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/22.jpg)
GitHub Releases
• Freetouse!• ReleasescanbemadeandbinariesuploadedusingtheAPI.
• Canhaveunlimitedreleasesbutthemaxfilesizeis2GB.
![Page 23: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/23.jpg)
Standardized, open, transparent at all layers
LabMachines(Ansible/Docker)
Build(Bash/Jenkinspipelines)
Test(testkitgen/Jenkinspipelines)
Deploy(Jenkinspipelines/Githubreleases)
![Page 24: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/24.jpg)
Infrastructurehttps://github.com/AdoptOpenJDK/openjdk-infrastructure
• PlaybooksinGit• Exampleuse:• AdoptOpenJDK_Unix_Playbook
dir:
main.yml /roles
/Common/Debug/autoconf/freemarker/Ant-Contrib/ccache…
![Page 25: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/25.jpg)
The Farm & The Sponsors
TheAdoptBuildFarmcontainsmanymachines,donatedandfundedbythesegenerousgroups:
![Page 26: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/26.jpg)
Buildhttps://github.com/AdoptOpenJDK/openjdk-build
./sbin/common/ config_init.sh
./configureBuild.sh
(Coordinates configuration)
![Page 27: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/27.jpg)
functional openjdk perfjckexternalsystem
testkitgen
testNG,cmdlinetester
STF junit&others
javatest Assortedbenchmarks
jtreg
“ConsolidateandCurate”
Testhttps://github.com/AdoptOpenJDK/openjdk-tests
![Page 28: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/28.jpg)
Binaryiscompressedintotarball
Sha256sumisgeneratedfromtarball
GitHubreleasetagiscreated
BinaryandSha256sumisuploadedtoGitHub
GitHubAPIcanbeusedtolookupdownloadlinks
Deployhttps://github.com/AdoptOpenJDK/openjdk-build
https://github.com/AdoptOpenJDK/openjdk-website-backendhttps://github.com/AdoptOpenJDK/openjdk-api
![Page 29: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/29.jpg)
![Page 30: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/30.jpg)
Source-controlledbuildpipelines.
- Githubrepository:https://github.com/AdoptOpenJDK/openjdk-build
![Page 31: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/31.jpg)
![Page 32: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/32.jpg)
![Page 33: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/33.jpg)
![Page 34: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/34.jpg)
This all sounds great! How do I get it?
• TheAdoptOpenJDKprojectcanbefoundhttps://adoptopenjdk.net/
• Whatisthecommunityaskingfor?• Websitedownload• “APIgateway”allowingprogrammaticdownload(https://api.adoptopenjdk.net/README)
• macOSbrewpackageinstall• Dockerimages(includingdistro-less)
![Page 35: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/35.jpg)
Roadmap (near-term plans)
LabMachines(sanitizeplaybooks,automatedansibleruns,on-demandhosting)
Build(exploitDockerforbuilds,fasterbuildtimes,simplify)
Test(test&triagesmarter,analytics,fuzztesting,openperf)
Deploy(installers,morewaysofgettingbinariestothecommunity)
![Page 36: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/36.jpg)
How to participate?
![Page 37: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/37.jpg)
Where can you help? • Infrastructure(github.com/AdoptOpenJDK/openjdk-infrastructure)• Build(github.com/AdoptOpenJDK/openjdk-build)• Test(github.com/AdoptOpenJDK/openjdk-tests)• Deploy(openjdk-website/api/docker/installers)
• Overallguidetotherepositories:github.com/AdoptOpenJDK/TSC
![Page 38: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/38.jpg)
Summary
Todaywelearned:• TheBasics• BriefHistory• Rationale• RoadmapAnd• BuildFarmTech
![Page 39: - AdoptOpenJDK · • Why Kotlin is My Favorite Example of Functional Programming – Sem. 1-3 10:00 • Shaking Sticks and Testing OpenJDK Implementations – Sem. 5 14:00 AdoptOpenJD](https://reader035.fdocuments.in/reader035/viewer/2022070915/5fb59c0b7d96f74b940c9d1a/html5/thumbnails/39.jpg)
More at EclipseCon Europe Tuesday• MigrateEarly,MigrateOften!JDKreleasecadencestrategies–Theater17:00
Wednesday• PerformanceTestingforEveryone–Theatre11:55• AdoptOpenJ9forSpringBootPerformance– Silchersaal14:00• AreYouReadyforCloudNativeJava–Sem.516:30
Thursday• WhyKotlinisMyFavoriteExampleofFunctionalProgramming–Sem.1-310:00• ShakingSticksandTestingOpenJDKImplementations–Sem.514:00
AdoptOpenJDK
adoptopenjdk.netAdoptOpenJDK/TSC @adoptopenjdk