This thesis is a summary of all activities performed during my graduation assignment at Philas, Rotterdam. Philas is a small company that is specializes in websites and website development. This thesis offers insights in the different parts of the assignment. The implementation of the assignment will also be discussed.
Philas uses a Content Management System for developing websites. This system is called dotCMS. In order to customize the websites for their clients, Philas uses plug-ins. These plug-ins use the dotCMS API and give the developed sites additional functionality. The dotCMS API makes it possible to use functions of dotCMS. This has many advantages, but also a significant disadvantage. When dotCMS releases a new version of the Content Management System, problems often occur due to changes in the dotCMS API. These changes to the dotCMS API cause some of Philias' custom developed plug-ins to break. Philas has over 60 custom plug-ins, so it would take too much time to test the functioning of all the plug-ins manually. Because of this problem, the idea originated to develop an automatic test environment that will test if the plug-ins deploy properly. This test environment will also check the functionality of the plug-ins through unit testing.
Before the project started, it was necessary to learn about dotCMS and the developing of plug-ins. This was done by reading the book "dotCMS From the Ground Up" by Michael Fienen. Developing a dotCMS plug-in in this case consisted of improving the CustomLogin Plugin. After learning about the dotCMS and how to develop plug-ins, further investigation and discovery into the assignment could start. In this process, the question was asked if it is useful to set up a test environment, and if a testing environment was useful, which test environment would be best suitable for Philas? After finishing the investigation it was concluded that a testing environment should be set up; Philas has so many plug-ins and dotCMS releases a new version of the software so often that it would be extremely useful to set up a test environment. Jenkins was chosen as automatic test environment, because Jenkins was found to offer more functionality than other similar test environments with the additional benift that it is free to use. The only costs for Philas would be the working hours.
After the investigation was concluded, the implementation of the project began. In the implementaion, the plug-ins are automatically deployed and unit tested by Jenkins. These tests start automatically when a newer version of the plug-ins is placed into source control, in this case, Subversion. The only thing what the user has to do is go to the webpage of Jenkins and watch the results of the tests.