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

Interfaces


Interfaces in Java are the mechanisms used to provide and declare a contract that defines how to interact with and reuse an existing software. The main idea behind this approach is that it removes the requirement of knowing how things are done internally; you only need to know what the required input parameters should be and what to expect by calling an interface. Exactly what the internal workings of the code are and how the processing is done are not really important, and as long as you adhere to the declared contract, everything should be ok.

Another major benefit of this "design by contract" approach is that it reduces the impact of code and process updates on external users. For example, if you call an add interface on a class called calculator that takes two numbers and returns the result, you (as a consumer of this service) do not need to know or care how the addition is done—internally, the class could be simply adding the two Java integers together, or perhaps the input...