What language(s) is OpenNMS written in?
OpenNMS is mainly written in Java. The goal for OpenNMS 2.0 is to have a product that will install as a collection of .jar files. There are a few areas that aren’t Java: • icmpd – The 1.4 Java API does not understand ICMP. Since ICMP echo requests (“pings”) are the simplest way to test the responsiveness of an IP-based network device, no network management application will be complete without it. The goal is to separate the ICMP functions into their own daemon that OpenNMS will use if present and ignore if not. OpenNMS does not require ICMP in order to monitor network devices. • Database – OpenNMS currently uses PostgreSQL as the underlying database, which is written in C. OpenNMS 2.0 will allow for a number of databases to be used through the adoption of Hibernate. • RRDTool – OpenNMS uses JRobin (a Java port of RRDTool 1.0) by default, but can be configured to use RRDTool proper (which is written in C) for cases where JRobin is not suitable.