Its something with the extjs-5.1.0.jar  if you eliminate that as a
dependency, then the startup / scan is near instantaneous.
Wonder if that's a bad jar file?
Or if java's java.util.jar.JarFile has issues with the the extjs-5.1.0.jar?

Out of curiosity, why are you including an 81MB jar file full of
META-INF/resources/ provided javascript examples in the classpath of your
WAR?
Its not like anything can make use of that as it is.

What I haven't tested is the new servlet 3.1 META-INF/resources/ logic.
That requires us to unpack the JAR files in WEB-INF/lib that have
META-INF/resources/ into a temporary directory.

Using command line ...

$ jar -xf extjs-5.1.0.jar

that takes 3 minutes on my machine. (way way too long)
I'm suspicious of that file now.

OK, how about you unpack that jar into your src/main/webapp (stripping the
META-INF/resources/ prefixes) during your build instead.
The dependency plugin might be able to handle that (during the
generate-resources phase).
Tho the stripping of the prefix might need a secondary step with the
assembly plugin (or careful manipulation of the maven-resources-plugin
configuration, or <resources> entries)

That will give you the same end result, but without the negative impact of
how META-INF/resources/ works during startup


--
Joakim Erdfelt <[email protected]>
webtide.com <http://www.webtide.com/> - intalio.com/jetty
Expert advice, services and support from from the Jetty & CometD experts
eclipse.org/jetty - cometd.org

On Thu, Apr 16, 2015 at 3:14 PM, Joakim Erdfelt <[email protected]> wrote:

> The scanning can be improved.
> Here's my results (with debug logging turned on)
>
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
> in 74ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/apache/taglibs/taglibs-standard-impl/1.2.1/taglibs-standard-impl-1.2.1.jar
> in 92ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/Code/git/jetty-slow-startup/target/classes/ in 29ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.4.5/jackson-annotations-2.4.5.jar
> in 66ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/javax/servlet/jstl/1.2/jstl-1.2.jar in
> 188ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
> in 13ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.4.5/jackson-databind-2.4.5.jar
> in 384ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.4.5/jackson-core-2.4.5.jar
> in 92ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/security/spring-security-taglibs/3.2.7.RELEASE/spring-security-taglibs-3.2.7.RELEASE.jar
> in 20ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/security/spring-security-acl/3.2.7.RELEASE/spring-security-acl-3.2.7.RELEASE.jar
> in 68ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-jdbc/4.1.6.RELEASE/spring-jdbc-4.1.6.RELEASE.jar
> in 205ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-tx/4.1.6.RELEASE/spring-tx-4.1.6.RELEASE.jar
> in 147ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/security/spring-security-core/3.2.7.RELEASE/spring-security-core-3.2.7.RELEASE.jar
> in 223ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-aop/4.1.6.RELEASE/spring-aop-4.1.6.RELEASE.jar
> in 131ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-beans/4.1.6.RELEASE/spring-beans-4.1.6.RELEASE.jar
> in 272ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-expression/4.1.6.RELEASE/spring-expression-4.1.6.RELEASE.jar
> in 99ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/security/spring-security-web/3.2.7.RELEASE/spring-security-web-3.2.7.RELEASE.jar
> in 149ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
> in 4ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/security/spring-security-config/3.2.7.RELEASE/spring-security-config-3.2.7.RELEASE.jar
> in 140ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-webmvc/4.1.6.RELEASE/spring-webmvc-4.1.6.RELEASE.jar
> in 211ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-web/4.1.6.RELEASE/spring-web-4.1.6.RELEASE.jar
> in 180ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-context/4.1.6.RELEASE/spring-context-4.1.6.RELEASE.jar
> in 243ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/springframework/spring-core/4.1.6.RELEASE/spring-core-4.1.6.RELEASE.jar
> in 188ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned
> file:/Users/joakim/.m2/repository/org/webjars/extjs/5.1.0/extjs-5.1.0.jar
> in 1981ms
> 2015-04-16 15:05:11.418:DBUG:oeja.AnnotationConfiguration:main: Scanned 2
> container path jars, 21 WEB-INF/lib jars, 1 WEB-INF/classes dirs in 2321ms
> for context 
> o.e.j.m.p.JettyWebAppContext@57fbc06f{/backend,[file:/Users/joakim/Code/git/jetty-slow-startup/src/main/webapp/,
> jar:file:/Users/joakim/.m2/repository/org/webjars/extjs/5.1.0/extjs-5.1.0.jar!/META-INF/resources],STARTING}{file:/Users/joakim/Code/git/jetty-slow-startup/src/main/webapp/}
>
> This is on OSX, using Java 8u31.
> The extjs-5.1.0.jar only took a scant 2 seconds to scan.
> The scan ignored most (if not all) of that jar's contents anyway (no
> *.class files).
> Overall, the scan took 2321ms
>
> The startup, on the other hand, took longer.   About 4 minutes.
> The problem is likely somewhere else.  Not sure yet.
> I haven't turned on the logging for the spring bytecode scanning yet to
> know if that's where the time is going.
> This environment has a mix of logging infrastructure (commons logging,
> java.util.logging, jetty logging, log4j, slf4j, and logkit), setting it up
> takes a bit of time (using slf4j to capture it all and route down to a
> single logging impl).
>
>
> --
> Joakim Erdfelt <[email protected]>
> webtide.com <http://www.webtide.com/> - intalio.com/jetty
> Expert advice, services and support from from the Jetty & CometD experts
> eclipse.org/jetty - cometd.org
>
> On Thu, Apr 16, 2015 at 2:27 PM, Jesse McConnell <
> [email protected]> wrote:
>
>> I just wanted to chime in and say that this behavior is not something
>> that Jetty is arbitrarily doing, it is mandated by the servlet
>> specification.
>> --
>> jesse mcconnell
>> [email protected]
>>
>>
>> On Thu, Apr 16, 2015 at 3:33 PM, Petar Tahchiev <[email protected]>
>> wrote:
>> > Guys I have created a github repository that demonstrates the problem:
>> >
>> > https://github.com/paranoiabla/jetty-slow-startup
>> >
>> > Just run mvn clean install or mvn jetty:run and you see it hangs.
>> >
>> > I'd really appreciate some help here.
>> >
>> > 2015-04-16 22:48 GMT+03:00 Petar Tahchiev <[email protected]>:
>> >>
>> >> Hello all,
>> >>
>> >> I just found out what's happening - I have spring-web jar in my
>> classpath,
>> >> which has a non empty @HandlesTypes annotation so the annotation
>> scanning is
>> >> happening. My parent pom also includes ext-js webjar:
>> >>
>> >>         <!-- Javascript -->
>> >>         <dependency>
>> >>             <groupId>org.webjars</groupId>
>> >>             <artifactId>extjs</artifactId>
>> >>             <version>${extjs.webjars.version}</version>
>> >>         </dependency>
>> >>
>> >>
>> >> which (believe it or not) is almost 85MB. If I exclude this dependency
>> >> from the pom.xml then jetty starts again for 8 seconds. If I leave it
>> in the
>> >> pom.xml then jetty starts for more than 15 minutes.
>> >>
>> >> Please let me know how can I exclude the extjs webjar from annotation
>> >> scanning.
>> >>
>> >> Thanks
>> >>
>> >> 2015-04-16 15:16 GMT+03:00 Jan Bartel <[email protected]>:
>> >>>
>> >>> If any of your libs contain a servletcontainerinitializer that has a
>> non
>> >>> empty HandlesTypes annotation on it then scanning will be done any
>> way.
>> >>> Enable debug for org.eclipse.jetty.annotations and you'll see which
>> one it
>> >>> is.
>> >>>
>> >>> Jan
>> >>>
>> >>> On 16/04/2015 8:39 am, "Petar Tahchiev" <[email protected]>
>> wrote:
>> >>>>
>> >>>> Hi there,
>> >>>>
>> >>>> I tried adding metadata-complete="true" and also
>> >>>>
>> >>>>     <Call name="setAttribute">
>> >>>>
>> >>>> <Arg>org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern</Arg>
>> >>>>         <Arg></Arg>
>> >>>>     </Call>
>> >>>>
>> >>>> to my jetty-env.xml but had no effect - the same amount of time :(
>> >>>>
>> >>>> 2015-04-16 1:35 GMT+03:00 Simone Bordet <[email protected]>:
>> >>>>>
>> >>>>> Hi,
>> >>>>>
>> >>>>> On Wed, Apr 15, 2015 at 9:57 PM, Petar Tahchiev <
>> [email protected]>
>> >>>>> wrote:
>> >>>>> > Hi,
>> >>>>> >
>> >>>>> > I tried 9.2.10.v20150310 and it takes more than 10 minutes!!!!
>> With
>> >>>>> > Java7
>> >>>>> > and version 9.1.3.v20140225 it takes 8 seconds! I also think it's
>> >>>>> > annotation
>> >>>>> > scanning. Here's the threaddump:
>> >>>>>
>> >>>>> So it is annotation scanning.
>> >>>>> Do you need it ?
>> >>>>>
>> >>>>> What's the value for "metadata-complete" attribute in your web.xml ?
>> >>>>>
>> >>>>> Read also:
>> >>>>>
>> https://www.eclipse.org/jetty/documentation/current/using-annotations.html
>> >>>>>
>> >>>>> --
>> >>>>> Simone Bordet
>> >>>>> ----
>> >>>>> http://cometd.org
>> >>>>> http://webtide.com
>> >>>>> http://intalio.com
>> >>>>> Developer advice, training, services and support
>> >>>>> from the Jetty & CometD experts.
>> >>>>> Intalio, the modern way to build business applications.
>> >>>>> _______________________________________________
>> >>>>> jetty-dev mailing list
>> >>>>> [email protected]
>> >>>>> To change your delivery options, retrieve your password, or
>> unsubscribe
>> >>>>> from this list, visit
>> >>>>> https://dev.eclipse.org/mailman/listinfo/jetty-dev
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Regards, Petar!
>> >>>> Karlovo, Bulgaria.
>> >>>> ---
>> >>>> Public PGP Key at:
>> >>>>
>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>> >>>> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>> >>>>
>> >>>> _______________________________________________
>> >>>> jetty-dev mailing list
>> >>>> [email protected]
>> >>>> To change your delivery options, retrieve your password, or
>> unsubscribe
>> >>>> from this list, visit
>> >>>> https://dev.eclipse.org/mailman/listinfo/jetty-dev
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> jetty-dev mailing list
>> >>> [email protected]
>> >>> To change your delivery options, retrieve your password, or
>> unsubscribe
>> >>> from this list, visit
>> >>> https://dev.eclipse.org/mailman/listinfo/jetty-dev
>> >>
>> >>
>> >>
>> >>
>> >> --
>> >> Regards, Petar!
>> >> Karlovo, Bulgaria.
>> >> ---
>> >> Public PGP Key at:
>> >>
>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>> >> Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>> >
>> >
>> >
>> >
>> > --
>> > Regards, Petar!
>> > Karlovo, Bulgaria.
>> > ---
>> > Public PGP Key at:
>> >
>> https://keyserver1.pgp.com/vkd/DownloadKey.event?keyid=0x19658550C3110611
>> > Key Fingerprint: A369 A7EE 61BC 93A3 CDFF  55A5 1965 8550 C311 0611
>> >
>> > _______________________________________________
>> > jetty-dev mailing list
>> > [email protected]
>> > To change your delivery options, retrieve your password, or unsubscribe
>> from
>> > this list, visit
>> > https://dev.eclipse.org/mailman/listinfo/jetty-dev
>> _______________________________________________
>> jetty-dev mailing list
>> [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/jetty-dev
>>
>
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to