anchor.diff:  
   Sometimes, when you develop a custom plugin, a `java.lang.NoClassDefFoundError` or a `java.lang.ClassNotFoundException` exception may occur on starting Kill Bill. This is most probably because the class in question is not present on the classpath. 
   
  -For a plugin to work, any classes used by the plugin must be present on the classpath. So, the class needs to be present in the plugin jar itself or it must be imported from Kill Bill. For the import mechanism to work, there must be a matching export in Kill Bill. Refer to the <<Importing Additional Packages in Plugins>> section above for further details.
  +For a plugin to work, any classes used by the plugin must be present on the classpath. So, the class needs to be present in the *plugin jar* itself or it must be *imported* from Kill Bill. Refer to the <<Importing Additional Packages in Plugins>> section above for further details.
  
positive.code: 
  Sometimes, a plugin may require to use some additional packages from Kill Bill (other than those automatically imported as specified above). In such cases, you will need to explicitly *export* the package from Kill Bill and *import* it in the plugin as explained below.
  
  . All the packages exported by Kill Bill by default are specified 
  https://github.com/killbill/killbill-platform/blob/4e735e9c3367cee2272964f16d028795f55592d3/osgi/src/main/java/org/killbill/billing/osgi/config/OSGIConfig.java#L49[here]. Check whether the desired package is already present in this list.
  
  . If Kill Bill does not already export the package, add the following property in the Kill Bill configuration file: 
  [source,bash]
  
negative.code: 
  ==== Kill Bill OSGi Overview
  
  Before we dive into the details, let us understand at a high-level how the import-export mechanism works in case of the core Kill Bill system and its plugins. 
  
  * The Kill Bill core itself is packaged as an OSGi bundle (referred to as system bundle). It exports several packages. This is explained in the <<Packages exported by Kill Bill>> section. 
  
  * Packages exported by Kill Bill are automatically imported by a plugin. This is explained in the <<Packages Imported by Plugins by Default>> section. 
  
  * However, in some cases, a plugin may need to explicitly import packages exported by Kill Bill. This is explained in the <<Importing Additional Packages in Plugins>> section.
  
  
  ==== Packages exported by Kill Bill
  
  As explained earlier, the Kill Bill system bundle exports the packages which it desires to share with plugins. The packages exported by the Kill Bill system bundle are specified in the https://github.com/killbill/killbill-platform/blob/4e735e9c3367cee2272964f16d028795f55592d3/osgi/src/main/java/org/killbill/billing/osgi/config/OSGIConfig.java#L49[OSGIConfig.java]. Additionally, Kill Bill also offers a system property, `org.killbill.osgi.system.bundle.export.packages.extra`, to specify additional packages to be exported by the system bundle and that could in turn be imported by a plugin.
  
  ==== Packages Imported by Plugins by Default
  
  As explained earlier, Kill Bill plugins are packaged as OSGi bundles. The http://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html[`maven-bundle-plugin`] specified in the https://github.com/killbill/killbill-hello-world-java-plugin/blob/3aa938d19fdfba81c7c035b45c3f17cac74db177/pom.xml[`pom.xml`] is responsible for packaging a plugin as an OSGi bundle. Thus, the `maven-bundle-plugin` takes care of creating the jar with the correct OSGi headers (including adding the required packages to the `Import-Package` header). In addition, the https://github.com/killbill/killbill-oss-parent/blob/f3d9725cc7759a54eb6f978b3d3f763e1d170021/pom.xml[killbill-oss-parent pom] file (which is the parent of the plugin `pom.xml` file) also specifies the packages to be included in the `Import-Package` header.
  
  