Using maven-hpi-plugin 1.110, Jetty startup from mvn -f workflow-plugin/aggregator hpi:run is quite fast:
[INFO] Configuring Jetty for project: Workflow: Aggregator
[INFO] Logging to org.slf4j.impl.SimpleLogger(org.mortbay.log) via org.mortbay.log.Slf4jLog
[INFO] /space/src/jenkinsci/workflow-plugin/aggregator/target/work/webapp does not yet exist, will receive /home/jglick/.m2/repository/org/jenkins-ci/main/jenkins-war/1.609.1/jenkins-war-1.609.1.war
[INFO] Context path = /jenkins
[INFO] Tmp directory = /space/src/jenkinsci/workflow-plugin/aggregator/target/work
[INFO] Web defaults = jetty default
[INFO] Starting jetty 6.1.1 ...
[INFO] jetty-6.1.1
[INFO] Extract jar:file:/home/jglick/.m2/repository/org/jenkins-ci/main/jenkins-war/1.609.1/jenkins-war-1.609.1.war!/ to /space/src/jenkinsci/workflow-plugin/aggregator/target/work/webapp
Jenkins home directory: /space/src/jenkinsci/workflow-plugin/aggregator/work found at: System.getProperty("HUDSON_HOME")
[INFO] Started SelectChannelConnector @ 0.0.0.0:8080
[INFO] Started Jetty Server
[INFO] Console reloading is ENABLED. Hit ENTER on the console to restart the context.
Aug 20, 2015 2:22:09 PM jenkins.InitReactorRunner$1 onAttained
INFO: Started initialization
If I switch it to use 1.114-SNAPSHOT, it hangs in the middle:
[INFO] Configuring Jetty for project: Workflow: Aggregator
[INFO] /space/src/jenkinsci/workflow-plugin/aggregator/target/tmp/webapp already up to date with respect to /home/jglick/.m2/repository/org/jenkins-ci/main/jenkins-war/1.609.1/jenkins-war-1.609.1.war
[INFO] Context path = /jenkins
[INFO] Tmp directory = /space/src/jenkinsci/workflow-plugin/aggregator/target/tmp
[INFO] Web defaults = org/eclipse/jetty/webapp/webdefault.xml
[INFO] Web overrides = none
2015-08-20 14:18:18.832:INFO:oejs.Server:jetty-8.1.16.v20140903
2015-08-20 14:18:20.440:INFO:oejpw.PlusConfiguration:No Transaction manager found - if your webapp requires one, please configure one.
<<HANG for 43s>>
2015-08-20 14:19:03.998:WARN:oejpw.PlusDescriptorProcessor:No value for env-entry-name HUDSON_HOME
Jenkins home directory: /space/src/jenkinsci/workflow-plugin/aggregator/work found at: System.getProperty("JENKINS_HOME")
2015-08-20 14:19:04.416:WARN:oejsh.RequestLogHandler:!RequestLog
2015-08-20 14:19:04.434:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
[INFO] Started Jetty Server
[INFO] Console reloading is ENABLED. Hit ENTER on the console to restart the context.
Aug 20, 2015 2:19:04 PM jenkins.InitReactorRunner$1 onAttained
INFO: Started initialization
This makes interactive plugin development impractical, blocking a 1.114 release.
Thread dumps show all this time being spent in AnnotationConfiguration.parseWebInfLib, whatever that is for:
at java.util.jar.Attributes.read(Attributes.java:399)
at java.util.jar.Manifest.read(Manifest.java:199)
at java.util.jar.Manifest.<init>(Manifest.java:69)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:194)
at java.util.jar.JarFile.getManifest(JarFile.java:180)
at sun.net.www.protocol.jar.URLJarFile.isSuperMan(URLJarFile.java:174)
- locked <0x00000007a9efbd58> (a sun.net.www.protocol.jar.URLJarFile)
at sun.net.www.protocol.jar.URLJarFile.getManifest(URLJarFile.java:142)
at java.util.jar.JarFile.maybeInstantiateVerifier(JarFile.java:344)
at java.util.jar.JarFile.getInputStream(JarFile.java:445)
- locked <0x00000007a9efbd58> (a sun.net.www.protocol.jar.URLJarFile)
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:162)
at org.eclipse.jetty.util.resource.URLResource.getInputStream(URLResource.java:219)
- locked <0x00000007a9efb4c0> (a org.eclipse.jetty.util.resource.JarFileResource)
at org.eclipse.jetty.util.resource.JarResource.getInputStream(JarResource.java:120)
at org.eclipse.jetty.annotations.AnnotationParser$2.processEntry(AnnotationParser.java:857)
at org.eclipse.jetty.webapp.JarScanner.matched(JarScanner.java:161)
at org.eclipse.jetty.util.PatternMatcher.matchPatterns(PatternMatcher.java:100)
at org.eclipse.jetty.util.PatternMatcher.match(PatternMatcher.java:82)
at org.eclipse.jetty.webapp.JarScanner.scan(JarScanner.java:84)
at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:869)
at org.eclipse.jetty.annotations.AnnotationParser.parse(AnnotationParser.java:884)
at org.eclipse.jetty.annotations.AnnotationConfiguration.parseWebInfLib(AnnotationConfiguration.java:422)
at org.eclipse.jetty.annotations.AnnotationConfiguration.configure(AnnotationConfiguration.java:120)
at org.eclipse.jetty.webapp.WebAppContext.configure(WebAppContext.java:468)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1237)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494)
at org.mortbay.jetty.plugin.JettyWebAppContext.doStart(JettyWebAppContext.java:298)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
- locked <0x0000000707912d20> (a java.lang.Object)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:172)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
- locked <0x000000078217cc70> (a java.lang.Object)
at org.eclipse.jetty.server.handler.HandlerCollection.doStart(HandlerCollection.java:229)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
- locked <0x000000078217cd70> (a java.lang.Object)
at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95)
at org.eclipse.jetty.server.Server.doStart(Server.java:282)
at org.mortbay.jetty.plugin.JettyServer.doStart(JettyServer.java:65)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64)
- locked <0x0000000782008f48> (a java.lang.Object)
at org.jenkinsci.maven.plugins.hpi.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:550)
at org.jenkinsci.maven.plugins.hpi.AbstractJettyMojo.execute(AbstractJettyMojo.java:395)
at org.jenkinsci.maven.plugins.hpi.RunMojo.execute(RunMojo.java:338)
(later)
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:149)
at java.lang.StringCoding.decode(StringCoding.java:193)
at java.lang.String.<init>(String.java:414)
at java.util.jar.Manifest.read(Manifest.java:243)
at java.util.jar.Manifest.<init>(Manifest.java:69)
at java.util.jar.JarFile.getManifestFromReference(JarFile.java:194)
at ...
(later)
at sun.security.util.ManifestDigester.findSection(ManifestDigester.java:106)
at sun.security.util.ManifestDigester.<init>(ManifestDigester.java:127)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:289)
- locked <0x0000000798f020a8> (a [B)
at java.util.jar.JarVerifier.update(JarVerifier.java:228)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
at java.util.jar.JarFile.getInputStream(JarFile.java:450)
- locked <0x0000000798ec1390> (a sun.net.www.protocol.jar.URLJarFile)
at ...