Status report Jigsaw num. 4 for GSoC 2011 ----------------------------------------- We now have all dependencies in Debian to build Jigsaw and running its tests. So it is time to think about what we can do to package all the modules. During these weeks I have done some progress about understanding how Jigsaw works and that is really important to know how we are going to package it. First I tried to build Jigsaw with the current OpenJDK 7 packaging. These packages are based on IcedTea and several tarballs from the OpenJDK mercurial forest. So basically, I tried to make the same things but with Jigsaw tarballs instead. Sadly, it didn't work but this was expected not to work. IcedTea is a really great project which gives us the tools to build OpenJDK with autotools and stuffs. It also ships some patches to replace some part of the JDK such as the web plugin for example. Jigsaw being synchronized with OpenJDK 7 we will probably reuse the patches from IcedTea and the ones from the Debian packaging to build Jigsaw. After that I have spent a lot of time reading documentation and blog entries about modularizing Java. Mark Reinolds[1] the chief architect of Java wrote several interesting articles about what people want Jigsaw to be. I also had to plan my trip to got to DebConf 11 which has just ended. We now know that we can create several modules and that gives us the idea to separate JVM modules from applications specific modules. In this way, the JDK system directory will contains only JDK modules and we could put applications specific modules in a directory like '/usr/share/java/modules'. We also thought about packaging Jigsaw like a classic JDK so we will be able to mimic the current installation of JDK6 or JDK7 and install all JDK modules in the same modules library which will be the base for all other. Modules libraries can be created with 'jmod create -L modules_library'. Each modules library, except the top-level one from the JDK, has a parent. The default is the JDK modules library but we can totally do something like: $ jmod create -L first_lib $ jmod create -L second_lib -P first_lib With this we will have 2 libraries, the first one is linked to the JDK library, and the second one is linked to the previoulsy created library. This is good because we can install modules in a lot of different places on a file system. But it can also complexify things and that's why I would like to see only 2 modules libraries in Debian which could be in: - /usr/lib/jvm/java-8-openjdk/modules ; for the JDK one - /usr/share/java/modules ; for third party applications modules Another idea that we mentionned is to automatically generate the dependencies list of Jigsaw modules in the 'debian/control' file. We know it is possible because Oracle did that with their own .deb creator. We coudl also use this kind of things to generate the dependencies list of a modular Java application. I guess that we should contribute to javahelper to do such a thing. Sylvestre Ledru has created a Git repository on Alioth[2] so we can work together on getting Jigsaw packaged. I have already applied the patch of Alan Bateman implementing exploded modules. We are still looking for a new version of this patch which *may* be available soon. The Git repository contains also a 'debian/' directory which is for now a copy of the 'debian/' directory of the OpenJDK 7 package. DebConf 11 was a great opportunity to meet my mentors Tom Marble and Sylvestre Ledru. We spoke about Jigsaw, its packaging and we found some ideas which will be followed during the next steps of the project. At DebConf 11, my mentors and I also gave a talk about our project and what we have done so far. The slides of this talk[3] are available online as well as the video[4]. These last weeks were full of brainstorming. The next steps are to go ahead with the packaging of Jigsaw and try to obtain .deb as soon as possible. Maybe we are going to use the patches from IcedTea and OpenJDK 7 package too. We will also need to interact with upstream to push changes. I also would like to cooperate with people from IcedTea. [1] http://mreinhold.org/blog/ [2] git+ssh://git.debian.org/git/pkg-java/jigsaw.git [3] http://wiki.debian.org/SummerOfCode2011/Jigsaw?action=AttachFile&do=get&target=jigsaw-dc11.pdf [4] http://meetings-archive.debian.net/pub/debian-meetings/2011/debconf11/low/718_Jigsaw_Progress_in_Debian.ogv
Attachment:
signature.asc
Description: Digital signature