Book Image

Extending Jenkins

By : Donald Simpson
Book Image

Extending Jenkins

By: Donald Simpson

Overview of this book

Jenkins CI is the leading open source continuous integration server. It is written in Java and has a wealth of plugins to support the building and testing of virtually any project. Jenkins supports multiple Software Configuration Management tools such as Git, Subversion, and Mercurial. This book explores and explains the many extension points and customizations that Jenkins offers its users, and teaches you how to develop your own Jenkins extensions and plugins. First, you will learn how to adapt Jenkins and leverage its abilities to empower DevOps, Continuous Integration, Continuous Deployment, and Agile projects. Next, you will find out how to reduce the cost of modern software development, increase the quality of deliveries, and thereby reduce the time to market. We will also teach you how to create your own custom plugins using Extension points. Finally, we will show you how to combine everything you learned over the course of the book into one real-world scenario.
Table of Contents (16 chapters)
Extending Jenkins
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

Abstraction and interfaces


Extension points make use of both abstraction and interfaces to permit and encourage reuse of functionality.

In the following diagram, Deposit Money declares an extension point called Transfer to savings. If we consider this to be an existing piece of code, and for the sake of this example, if we want to create a new Savings Account object, we can extend the functionality already provided by Deposit Money and use this to implement a new feature called Savings Account, which extends Deposit Money. This means that it will use most of the Deposit Money functionality, and it will also offer additional functionality of its own.

In another example, we are extending the existing Open Account code to Add Joint Account Holder. This uses many of the Open Account methods, but also declares some methods that are specific to a second applicant. The following diagram shows the relations:

In cases where we have more than one application, we can extend Open Account to create a new...