 Good afternoon. Good evening. My name is Rory O'Donnell and I'm going to be assisted with my gorgeous co-presenter over here, Dallabor. So I'm the open JDK group quality lead. Dallabor is the wonderful title of principal product manager for the Java platform group and between us we're going to talk to you about the JDK 9 outreach, the awesome parts. So prepare to be dazzled. The obligatory, ten seconds, are we done yet? You're fast readers, right? Okay, so this is what our agenda is about. So I'm going to take items one and two and Dallabor is going to take three and four. So let me just give you some background. What is this JDK 9 outreach? For JDK 8 we wanted to make sure that we didn't have the same situation when JDK 7 went GA and we had issues almost immediately thanks to Ui at Apache Lucent. So we wanted to go out and talk to the community at large and say come and work with us, download our early access bills, test them, let us know what issues you find. So the first person we approached was Ui and he was delighted to come aboard and suggested others that might be of the same frame. So before JDK 8 actually shipped, we actually got somewhere like 20 open source community members to actually projects to come and talk to us and work with us downloading and logging bugs. At the moment we're up to a hundred and one. We've just broken through the 100 projects. So we are communicating the changes that are in early access bills to over a hundred open source projects. I'd love to know if any of you guys have ever heard of me before coming in here and I actually had received emails on device mailing lists or anything that you see me annoyingly sending out these emails all the time. Anybody? Yes. Excellent. Great. Okay. It's me. Okay. It's all my fault. Okay. So this is a continuous process and in the last 16 months we've added 18 new. And actually we've added 20 because another two came in in the last two weeks since these slides were actually created. And one of the great things that we measure is how successful we are with this is the number of bugs that are coming in from the community. In the last year we've had 60 new 64 issues logged. And I'll show you how some of these break down into different priorities and components and stuff. So in total since we actually started it's 173 bugs have actually been logged. And I see lots of faces here of the people who have actually logged those bugs. So it's great to see you here. It's so simple to actually join. I would like to recommend it to every single one of you here today. This is something that you will we give you information about what's going into the latest build and changes that might break you and advise you OK if you're doing this you need to test on this particular build. So all you have to do is send a mail to the quality discuss open JDK or you can send a mail to me as well if you prefer. And the great thing is what you can't really read this. But if that was a little bit clear you would see that Stefan Bodovic from Apache and I had been annoying him for so long to come and join us. And he was actually doing testing but he didn't want his stuff listed externally because he thought everybody would be annoying him. So eventually he sent me a mail at 8 AM in the morning and by 10 minutes past 8 I had him listed on the open JDK quality external page. So I can't guarantee every time that I'm going to get you listed within 10 minutes but I will you know I will do my best to get you on there. Now these are the guys who are this is just five but these are the guys that logged the most bugs and the highest quality bugs in the last six months. Number one Apache Lucen and that's usually we Apache Tomcat came in with six bugs in a row just together just here you go six bugs. Thank you. Really really you know this is what actually helps us to make sure and improve the quality of the release that we actually release at GA time. So thank you to these guys they've done a sterling job they you know it makes our life so much better and when the bugs come in. Delibor and I will make sure that you know these bugs are given the proper viewing by the right people so we try to get them because we know the quality of the bugs coming in from the people are absolutely first class and need to be fixed. Now just give you an idea of the overall from from when we started this so we 173 bugs have been logged as I mentioned. I'm lovely to see that we have zero on resolve P1 and P2 bugs from the blogs that come in from the community we still have 14 P3s that we have to work on so that's work in progress but you can see here that we fixed 94 or sorry 96 of these so they're obviously bugs that we interpreted as being high quality needed to be fixed before we actually shipped the product out so thank you again. For logging all these bugs. So that's my priority now if you look then at the different components when if you were to look at a similar graph as this 12 months ago you would have seen that hotspot was the one that was getting the most bugs. Client and core libs have caught up very much so in the last while so they have a total of 46 and 23 whereas hotspot still is just up there with 51 but what we can see is that you know the the number of bugs is actually going down and with that I'm going to hand over to my able. That's wonderful so before I get started with the slides right that's the boring part what we usually do here is we have a governing board session afterwards and these guys drink beer and there are five governing board members. I bought six beers so what I'm going to do is I'm going to give one beer out to one of you who's project signs up for this quality outreach stuff on quality dash discuss at open JDK Java net. By the end of this talk right so get on it and then come back later get a beer and now we can go with the slides so the thing about nine is of course we've been doing this for a while and the one question people ask me a lot about nine is. Does anybody really care about nine yet aren't people just moving up to eight like this outreach stuff do developers really want to know about this stuff and so what do we do like well the Rory sends a lot of emails so there is that but the question is you know do the other projects care to people already filed a box against the issues in line on their own this is something happening there so one way to look at this is looked at their main list traffic through archives like mark mail and just search for subject like JDK nine and you find Rory a lot of times right this guy is sending out a lot of email and getting a lot of replies back to which is good. But you also find that if you look at how that is developed the past couple years when I started out there were like a thousand messages across various projects in Apache and eclipse and so forth. This has grown six fold in the last two years in part because we have worked diligent to get more projects to sign up and participate and they spread the word. And more importantly if you compare this to where we were with JDK eight one year before it's J. We were you know more than double today in terms of JDK nine traffic outside of interest then we're at the time of eight at the same time. And if you look at how encouraging you know community reaction was to eight how much people people cared about getting their stuff to work with eight. I think this is a really good you know data point to look forward to. So next slide please. Now the other data point to look forward to is that you know one thing is to try to extract random data of the Internet. The other is to just ask people directly. So in this outreach effort we have this project participating. So what we did about two years before Java one this this autumn was to do short survey and just to ask the participating projects. You know if they're testing at all how far along they are what their you know success is. And so we had about a half of the projects that participate in quite outreach came back to us filled out a survey. Around 90 percent actually tried already to build the project with nine and had some success. And about 86 percent plan to support nine within the first year of the release of JDK nine. And I think this is really really a good piece of data to have because if you if you look at the talks. You know like like U.S. and so forth there is work to be done a work to be done on the JDK side of course to make sure that we have a great release. Work to do but to be done on a bunch of libraries to make sure they work really well with nine. But there is also a willingness in the community to participate in this and I think this is a great great thing to have. It's a great community we're part of. Next slide. And so to give you some examples of the things we've we've done in the past year. Like I said Rory sent out all these emails tells people about the builds tells what's in them and then hopefully some of them will try things out let us know about things that break. And Rory mentioned that Tomcat project was very active in giving us some really good bucks to work with. So for example Mark Thomas submitted an issue JDK something or other about the default behavior of your connection which was to use caching and that turned out to be problematic. In particular on say on Windows when you're using jar your collections you may end up having descriptive leaks or you know fast and deadlocking. And so he made a suggestion there was a discussion first between us where we try to figure out this is something that we can resolve between us already. Then the discussion upon a suggestion was carried over to the core lips that should have many lists and open JDK and their mark and members of the JDK team discussed various ways to address the problem. It was finally resolved by adding an API for this by I think Michael McMahon while maintaining the current behavior so that existing code that relies on this doesn't break. So there's new API for this since Java 9 there is a get set default use caches in Java net URL connection. And this is just one example of the kind of interactions we have with developers participating projects is not all just bucks they find it's also extensions they need. Also things they find that should be working better in a future release where they need functionality. Isn't there yet. Next please. Another example for example is with aunt as we mentioned in his talk the Apache aunt team has actually done a really good job of getting their code to work and pass all the tests with nine. And then it turned out of course that it had one once once more problem. And usually we can help with the simple stuff where people forget to set the release flag or whatever. If we can't help you directly we direct them to the right mailing list which also can be challenging because remain listen on open JDK. For stuff like this in this case Stefan was having one test in and that was failing due to well the things people do you know reflection trickery to get an internal API and XML. Pause it to do something or other and of course we get it cannot with modules that doesn't work anymore. So what are you going to do well you can complain you can write a blog post you can tweet angrily or you can go to core lives there. And that's what he did and said you know I would like to find a good way to solve this. And so there was a threat on core lives there which went on for you know for a few weeks. Right they wanted to use an XLT task from within Eclipse with a secure manager how to make this work. And it was resolved after a couple of weeks with a change both in the JDK where it turned out to have to be a bug in our implementation of the functionality. And also by making some small adjustment to the test code in the patch and so that's the other thing we you know we try to work with with community projects to make sure that their code gets better as well. And it uses the new functionality. And then of course there is more some of the projects we started to work with because we came across you know their own efforts to to get the code to work with nine like a Patrick Halstide and Julian Hyde is the. I think the VP for that in the Patrick when it started out they had some challenges right we spoke we got him on board and eventually you know their stuff runs on I'm happy about it. Other projects are actually using the soul move tonight thing as a way to get the users to move off old versions lock for Jay who here uses a patch lock for Jay right. Everybody uses a patch lock for Jay too right because of using one one is kind of end of life and so it's also broken on nine due to new versioning changes. And so the lock for Jay team has gone off and contacted their users within Apache to help them to upgrade to move off lock for Jay one to the more current version that works on nine of course. Similarly other projects that we're in touch with in the same even ecosystem. Have done a lot of good work over the past year to make sure that the functionality we provided nine is actually supported by the tools resolve the number of issues and made a number of incremental releases. Improving their their facilities to work with their lease itself. And sometimes this is sometimes a bit challenging because what we try to do is we try to sign up the projects from our side. Approach them directly that are most popular ones. And that sometimes also means changing chasing down they say diaspora of Google code or of code house of these various hosting sites that if over time you know. Diminish disappeared and finding out you know who's still running these projects so we can actually get involved because many of these things like QDocs are eventually dependencies that a bunch of popular projects we depend on. So we want these dependencies to work with nine and future leases and of course we want your code to be part of this too. Next slide. Yeah awesome. And so for us the question now that nine is getting close to the end game and tennis opening up what do we do next. So where do we go with say JD King 10 outreach. What should we be looking at doing better and different for the next release. And with that I'd like to open up for questions because I think we have about seven more minutes. Seven more minutes. So developers from both Maven and Gradle are involved. There are of course for some of them in some cases challenges in Gradle's case. There are some interesting issues that crop up because the module system does restrict access to. Private classes. So there is for example in Gradle there is one one bit of functionality that's there to be able to set environment variables on demons. And to do that it goes into you know an undemodifiable collection using some accessible of environment variables and makes it modifiable again. Which is maybe not something you should be doing right. But the thing is it's really a tricky problem. Setting environment variables. Understate JLPC. Is not as nice and easy as it sounds. There's a wonderful manual patch page in JLPC Linux that's basically because you don't do this in multi-trader programs or bad things will happen. So this is an example where you know the Gradle team has to look at issues they have with the code and figure out if there is a better way to do this. If there is a different way to implement functionality in nine or if this is something where we would need to think about providing adequate interfaces. Instantly at least if we can do this you know at all right. If the JLPC says you can't do this then that's a problem. For Maven Robert from the Maven team has been around here as well and they've been working on a number of things. I don't think that all of their tests pass yet. I don't know if you know. So we have a number of things to go through to make you know things work as they as we hope they should. But what we're trying to do here is create a channel between developers of the major projects and the teams working behind you know the scenes on say JDK and direct memory mapping as we mentioned so that people who you know work together can actually work together in open JDK. Yeah absolutely. I mean that's why that's why build tools and low level libraries like that have been you know our first kind of target to reach out to. We have since tried to expand this coverage you know to cover other areas of the JVM as well. So we have as you've seen before a lot of good input from say Uwe and these teams about hotspot issues. We have really good core libraries issues areas where we would like to see more projects come here say things like Java FX where we only have a few project participating so far. Or service ability and parts like that. So you know if you don't if you do this though if you do a project that works in these parts we would really welcome you over here right to participate in this and let us know about issues that break. If you do work on build systems that are not maven gradle and something else you're very welcome as well right. Right. Yeah there have been a number of recent changes and as we mentioned with 148 that have led to a bit of you know struggle for a number of tools. But I think this will gradually get worked out. It would be very useful as well if you could go to the quality outreach page and look at the list. See is there any projects on there that are really missing that you think should be on there. We'd love to and if there if you have contacts we're more than happy to go talk to them. I don't think we do. I don't think we do. Have you talked to Apache Felix or OSGI framework people for JDK and builds. I'm very sure we talked to Apache Felix I'm not entirely I can't remember off the top of my head whether we got a positive response or not. So we have a kind of 50 percent if race we think when we go out to people and ask them do they want to join us. It's like if we go out to 150 them will come back and say yes OK. So sometimes it's because we don't know the actual you know the real person who should be we should be contacting to. So that's why it would be really great if you guys could have a look and see are we missing projects. And if you know of context that would really help us. Tell your friends tell your friends. Five bucks. Yeah. Tell where we have one person signed up. Go in. Go in. Go in. Go in. Go in.