title: Deploying Jenkins Sectioned View Plugin extension
body: <p>I want to create new view for Sectioned View Plugin for Jenkins. How should I deploy my extension? I was trying to deploy it as new plugin in .jpi file but it didn't work. Where should I put my class/jar/jpi (I don't know which is right) file?</p>
  
  <p>UPD: I tried to put jar to \jenkins\plugin\sectioned-view\WEB-INF\lib directory and it works but I doubt it's a right way to deploy that extension</p>
  
  <p>UPD2: When I try to deploy extension as a new plugin I get these exception on startup:</p>
  
  <pre><code>WARNING: Failed to load &lt;packageName&gt;.&lt;mainExtensionClassName&gt;$DescriptorImpl
  java.lang.InstantiationException:&lt;jenkinsDirectory&gt;\plugins\installedapplicationssection\WEB-INF\lib\classes.jar might need to be rebuilt: java.lang.ClassNotFoundException: &lt;packageName&gt;.&lt;mainExtensionClassName&gt;$DescriptorImpl
  at net.java.sezpoz.IndexItem.element(IndexItem.java:144)
  at hudson.ExtensionFinder$Sezpoz._find(ExtensionFinder.java:628)
  at hudson.ExtensionFinder$Sezpoz.find(ExtensionFinder.java:617)
  at hudson.ExtensionFinder._find(ExtensionFinder.java:151)
  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:316)
  at hudson.ExtensionList.load(ExtensionList.java:295)
  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:248)
  at hudson.ExtensionList.iterator(ExtensionList.java:138)
  at hudson.ClassicPluginStrategy.findComponents(ClassicPluginStrategy.java:309)
  at hudson.ExtensionList.load(ExtensionList.java:295)
  at hudson.ExtensionList.ensureLoaded(ExtensionList.java:248)
  at hudson.ExtensionList.get(ExtensionList.java:153)
  at hudson.PluginManager$PluginUpdateMonitor.getInstance(PluginManager.java:1109)
  at hudson.maven.PluginImpl.init(PluginImpl.java:54)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
  at java.lang.reflect.Method.invoke(Unknown Source)
  at hudson.init.InitializerFinder.invoke(InitializerFinder.java:120)
  at hudson.init.InitializerFinder$TaskImpl.run(InitializerFinder.java:184)
  at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:259)
  at jenkins.model.Jenkins$7.runTask(Jenkins.java:906)
  at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:187)
  at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:94)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  at java.lang.Thread.run(Unknown Source)
  Caused by: java.lang.ClassNotFoundException: &lt;packageName&gt;.&lt;mainExtensionClassName&gt;$DescriptorImpl
  at hudson.PluginManager$UberClassLoader.findClass(PluginManager.java:985)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at java.lang.ClassLoader.loadClass(Unknown Source)
  at net.java.sezpoz.IndexItem.element(IndexItem.java:134)
  </code></pre>
  
  <p>But I already have this in my class:
      @Extension
      public static final class DescriptorImpl extends SectionedViewSectionDescriptor {</p>
  
  <pre><code>    @Override
      public String getDisplayName() {
          return "My Section";
      }
  }
  </code></pre>