In this talk I intend to demonstrate how we had integrated the Java virtual machine into a multi-threaded, pluginized C program. If you have ever encountered the problem that something only has Java API while you intend to use it with your C / C++ code, this talk is for you.
The goal of syslog-ng is to become a major player in the big data logging infrastructure market. Our aim is to be the fastest and most reliable logging software that can send messages to most big data tools, for example Elasticsearch, Hadoop and Kafka. Most big data software uses Java API. Originally, syslog-ng has been written in C, with the pros and cons of the language. Although there are a few 3rd party tools in C language, utilizing these results in encountering several problems, for example difficulties when we attempt to follow the original libraries, maintenance issues, and so on. Therefore, in order to stay up-to-date with the big data tools, we must use the official Java APIs. This is why we have started our “Java language binding” project. We also hope that this project will be an important factor in the syslog-ng community, because now anyone who wants to contribute to improving syslog-ng by developing plugins in Java can do so.