January 6th, 2016

by Ivan St. Ivanov

2015 is over and 2016 is a week old now. However, I can’t forget the past year, which happened to be the most active one for the Bulgarian JUG, where I happen to be one of the co-leads. And what a year it was! We had everything: seminar talks with local and foreign speakers, hands on labs, Adopt OpenJDK and Adopt a JSR hackathons, a code retreat and a big international conference. In this blog post I will briefly go through all the events that kept our community busy in 2015.

Adoption activities

We started with some unfinished work from 2014. Adopt OpenJDK was the initiative that somehow revived our JUG a few years back. We’ve been very active there globally: after running a few hackathons in the JUG and at local conferences, we created a bunch of VMs with OpenJDK set up and imported in the three major Java IDEs. These VMs were contributed to the community to be used by everyone that needed a kick start. So the next logical step was to bring a small change in the code base. We picked adding getStrackTraceString method to java.lang.Throwable. And at the end of 2014 we worked together until late on a hackathon to produce our first patch. We got some feedback from the reviewers, so in January we worked on a new solution, along with some more tests, including microbenchmarks with JMH. The second patch didn’t go through either. But at least we acquired valuable experience how the whole process works, how to debug core OpenJDK code and how to use JMH for microbenchmarking.

We didn’t give up and in February we tried to do some clean up on the JDK repositories. We took the JAX-WS, JAXP, CORBA and Nashorn repos (the main JDK was already done by Joe Darcy’s team). We created a patch, which unfortunately was not accepted by the reviewers. At least our findings on how to track compiler warnings in the JDK code made it to Mani Sarkar’s OpenJDK Getting Started Kit.

In 2015 our JUG also looked beyond the next Java release. Project Valhalla is researching things like value types, generic specialization, enhanced volatiles (a.k.a. variable handles), most of which will be available in Java 10 at earliest. So we looked at one of these topics: generics over primitive types. It was really interesting for the attendees and links to the blogof our official unofficial blogger Mihail Stoynov along with my slides and series of preparatory blog posts appeared on Valhalla’s official page.


Adopt OpenJDK is part of a bigger initiative called Adopt a JSR. As part of the latter,we organized a hackathon right after the summer break. Myself and Nayden Gochev prepared a gentle introduction to MVC 1.0, which is supposed to be part of Java EE 8. We had some slides, followed by a hands on lab, where the attendees could experiment with the cutting edge APIs and implementations.

The meetupsscala

Seminar sessions are the heart of any JUG. And we tried to run one of them each month. The pace was set by our co-leads Dmitry Alexandrov and Martin Toshev. Mitya talked in February about his favorite topic: Nashorn. While Marto had a 
in June on RabbitMQ, on which he even published a book at the end of the year.We also had a Scala talk in April by Vassil Dichev.

Besides the experienced speakers, we did have a presentation by a newcomer.Petar Petrov closed the year with a very huge topic – algorithms and data structures and Java.

Thanks to our generous sponsors we were able to get a few foreign speakers as well. In March the Java champion David Blevins from Tomitribe shared his huge experience in Java EE. Then in May we had the Eclipse committer Simon Scholztalk on E4. Last but not least, the Macedonian JUG’s lead Pance Cavkovski showed us how we can automate many things in our homes with Raspberry PI and Java.


The list of all these and future events is available on our website.

The code retreat

Summer is usually time for rest and vacation. Not for Bulgarian JUG. As there were not so many people in Sofia, we decided to do some coding during a weekend in the countryside. So on a sunny August Friday, together with our families and friends we went to the beautiful mountain town of Velingrad, which happens to be SPA resort as well. While our friends and families were enjoying the swimming pool and the sunshine, thirteen of us participated in the first BG JUG code retreat.

Prior to that we took some time to pick a topic and create the high level architecture of what we were going to do. And what was that? Well, we picked two of the projects, where some of our members have experience: Spring Boot and JBoss Forge. We started with the Forge Hands on Lab to get the people up to speed with its development model.retreat1 Then we continued with brief introduction to Boot and its basic features. Finally we presented the task: develop Boot addon for Forge. In the course of the next day and a half we did some amazing things. But our job is not completed yet. Hopefully we will be able to finish that in the next few months (feels like a New Year’s resolution, doesn’t it).

Of course the code retreat was not only about writing code. In the evenings we did wonderful get-togethers with a lot of fun for everyone.


The conference(s)

jprime-logoThe peak of our activities in 2015 was undoubtedly the community conference that we organized. The first edition of jPrime was a blast. And guess what: it was completely organized by some of the Bulgarian JUG members in our spare time! Without any profit at the end (eventually we even had to cover some of the expenses by ourselves). Of course it was sponsored by some of the biggest companies in the industry. Without their help, we couldn’t have done such an amazing event. We had the best venue in Sofia, coffee, lunch and beer, as well as a bunch of great international speakers. Blogging about the event would take a whole new post. I think enough was said so far. I hope I see you all this May for the second edition!kohsuke

Besides jPrime, we decided to start a brand new project. It’s the jProfessionals conference – the little sister of our main gig. The goal there is to let new speakers from our community to gather some experience talking to the audience. So that afterwards they are prepared for the big events. Of course it was not just for newbie – we had several well know speakers as well. The first edition was held end of November. It was kicked off by the Jenkins CI creator Kohsuke Kawaguchi.Besides him we also had Svetlin Nakov, Vlado Tsanev, Emil Doychev, Doychin Bondzhev and Trayan Iliev: great combination of experienced and new speakers from our community!

The second edition of jProfessionals is in the making. It will be held on 20th February and for that we have prepared a few more surprises for our audience.


Looking back at 2015, I can’t help but notice that it was quite impressive year. Surely, we couldn’t achieve even half of that without the great Bulgarian Java community! Everything that we did was completely voluntary. But it was nevertheless amazing. I hope we preserve our energy and enthusiasm for the upcoming 2016.

Of course, inviting foreign speakers, paying for their flights and accommodations was not for free. The beer at our meetups neither. That’s why I would like to give special thanks to our sponsors: SAP Labs Bulgaria, EPAM, Questers, Luxoft,, Verint Systems and TechHuddle. Without their support part of our events, the cool T-shirts and the jProfessionals conference would not be possible.

And last but not least, great thank you to Sofia University, SoftUni, Skrill and Hack Bulgaria for giving up for free the venues for our events!

See you all in 2016!