====== Tools ====== ===== Embedded open-source software ===== The following open-source pieces of software are used in dhcpd-j: * [[https://args4j.dev.java.net/|args4j-2.0.8]] - //Java command line options parser// ([[http://www.opensource.org/licenses/mit-license.php|The MIT License]]) * [[http://jakarta.apache.org/commons/dbutils/|common-dbutils-1.1]] - //make working with JDBC easier// ([[http://jakarta.apache.org/commons/dbutils/license.html|Apache License v2.0]]) * [[http://hsqldb.org/|hsqldb-1.8.0.7]] - //Lightweight 100% Java SQL Database Engine// ([[http://hsqldb.org/web/hsqlLicense.html|hypersonic_lic.txt & hsqldb_lic.txt]]). * [[https://jaxb.dev.java.net/|jaxb-2.1.4]] - //Java Architecture for XML Binding// ([[http://www.opensource.org/licenses/cddl1.php|Common Development and Distribution License]]) * [[http://logging.apache.org/log4j/|log4j-1.2.14]] - //Logging Services// ([[http://www.apache.org/licenses/LICENSE-2.0|Apache License v2.0]]) * [[http://wrapper.tanukisoftware.org/doc/english/introduction.html|Java Service Wrapper 3.2.3]] ([[http://wrapper.tanukisoftware.org/doc/english/license-silveregg.html|Silver Egg License]]) * [[http://sourceforge.net/projects/dhcp4java/|dhcp4java]] latest version :-) ([[http://www.gnu.org/licenses/lgpl.html|LGPL License]]) ===== Software Quality ===== The primary objective of the project is **reliability**. Therefore very strong focus is put on software quality to minimize bugs. Following actions and tools and Eclipse plug-ins are used in the development process: * javac compilation options: high level of warnings * Heavy unit testing through [[http://www.junit.org/|JUnit4.3.1]] framework... * ...completed with [[http://works.dgic.co.jp/djunit/|djUnit 0.8.2]] for code coverage of unit tests * [[http://pmd.sourceforge.net/|PMD]] source code Java scanning * [[http://findbugs.sourceforge.net/|FindBugs 1.2.0]] code analysis software