[[Extending_WildFly]] = Extending WildFly WildFly code development team; :revnumber: {version} :revdate: {localdate} :toc: macro :toclevels: 2 :toc-title: Extending WildFly :doctype: book :icons: font :source-highlighter: coderay :wildflyVersion: 12 :leveloffset: +1 ifndef::ebook-format[:leveloffset: 1] In this document we provide an example of how to extend the kernel functionality of WildFly via an extension and the subsystem it installs. The WildFly kernel is very simple and lightweight; most of the capabilities people associate with an application server are provided via extensions and their subsystems. The WildFly distribution includes many extensions and subsystems; the webserver integration is via a subsystem; the transaction manager integration is via a subsystem, the EJB container integration is via a subsystem, etc. This document is divided into two main sections. The link:Extending_WildFly{outfilesuffix}#Example_subsystem[first] is focused on learning by doing. This section will walk you through the steps needed to create your own subsystem, and will touch on most of the concepts discussed elsewhere in this guide. The link:Extending_WildFly{outfilesuffix}#Key_Interfaces_and_Classes_Relevant_to_Extension_Developers[second] focuses on a conceptual overview of the key interfaces and classes described in the example. Readers should feel free to start with the second section if that better fits their learning style. Jumping back and forth between the sections is also a good strategy. ifdef::basebackend-html[toc::[]] :numbered: [[target-audience]] = Target Audience [[prerequisites]] == Prerequisites You should know how to download, install and run WildFly. If not please consult the link:Getting_Started_Guide.html[Getting Started Guide]. You should also be familiar with the management concepts from the link:Admin_Guide{outfilesuffix}[Admin Guide], particularly the link:Admin_Guide{outfilesuffix}#Core_management_concepts[Core management concepts] section and you need Java development experience to follow the example in this guide. [[examples-in-this]] == Examples in this guide Most of the examples in this guide are being expressed as excerpts of the XML configuration files or by using a representation of the de-typed management model. include::_extending-wildfly/Example_subsystem.adoc[] include::_extending-wildfly/Working_with_WildFly_Capabilities.adoc[] include::_extending-wildfly/Domain_Mode_Subsystem_Transformers.adoc[] include::_extending-wildfly/Key_Interfaces_and_Classes_Relevant_to_Extension_Developers.adoc[] include::_extending-wildfly/WildFly_JNDI_Implementation.adoc[] include::_extending-wildfly/CLI_extensibility_for_layered_products.adoc[]