@@ -34,18 +34,19 @@ public static Input fromClassNamesAndJaxrsApplication(List<String> classNames, L
3434 final ClassLoader originalContextClassLoader = Thread .currentThread ().getContextClassLoader ();
3535 try {
3636 Thread .currentThread ().setContextClassLoader (classLoader );
37+ final ClasspathScanner classpathScanner = new ClasspathScanner ();
3738 final List <SourceType <Type >> types = new ArrayList <>();
3839 if (classNames != null ) {
3940 types .addAll (fromClassNames (classNames ).getSourceTypes ());
4041 }
4142 if (classNamePatterns != null ) {
42- types .addAll (fromClassNamePatterns (scanClasspath (), classNamePatterns ).getSourceTypes ());
43+ types .addAll (fromClassNamePatterns (classpathScanner . scanClasspath (), classNamePatterns ).getSourceTypes ());
4344 }
4445 if (jaxrsApplicationClassName != null ) {
4546 types .addAll (JaxrsApplicationScanner .scanJaxrsApplication (jaxrsApplicationClassName , isClassNameExcluded ));
4647 }
4748 if (automaticJaxrsApplication ) {
48- types .addAll (JaxrsApplicationScanner .scanJaxrsApplication (scanClasspath (), isClassNameExcluded ));
49+ types .addAll (JaxrsApplicationScanner .scanJaxrsApplication (classpathScanner . scanClasspath (), isClassNameExcluded ));
4950 }
5051 if (types .isEmpty ()) {
5152 final String errorMessage = "No input classes found." ;
@@ -58,21 +59,25 @@ public static Input fromClassNamesAndJaxrsApplication(List<String> classNames, L
5859 }
5960 }
6061
61- private static FastClasspathScanner scanClasspath () {
62- if (fastClasspathScanner == null ) {
63- System .out .println ("Scanning classpath" );
64- final Date scanStart = new Date ();
65- final FastClasspathScanner scanner = new FastClasspathScanner ().scan ();
66- final int count = scanner .getNamesOfAllClasses ().size ();
67- final Date scanEnd = new Date ();
68- final double timeInSeconds = (scanEnd .getTime () - scanStart .getTime ()) / 1000.0 ;
69- System .out .println (String .format ("Scanning finished in %.2f seconds. Total number of classes: %d." , timeInSeconds , count ));
70- fastClasspathScanner = scanner ;
62+ private static class ClasspathScanner {
63+
64+ private FastClasspathScanner fastClasspathScanner = null ;
65+
66+ public FastClasspathScanner scanClasspath () {
67+ if (fastClasspathScanner == null ) {
68+ System .out .println ("Scanning classpath" );
69+ final Date scanStart = new Date ();
70+ final FastClasspathScanner scanner = new FastClasspathScanner ().scan ();
71+ final int count = scanner .getNamesOfAllClasses ().size ();
72+ final Date scanEnd = new Date ();
73+ final double timeInSeconds = (scanEnd .getTime () - scanStart .getTime ()) / 1000.0 ;
74+ System .out .println (String .format ("Scanning finished in %.2f seconds. Total number of classes: %d." , timeInSeconds , count ));
75+ fastClasspathScanner = scanner ;
76+ }
77+ return fastClasspathScanner ;
7178 }
72- return fastClasspathScanner ;
73- }
7479
75- private static FastClasspathScanner fastClasspathScanner = null ;
80+ }
7681
7782 private static Input fromClassNamePatterns (FastClasspathScanner scanner , List <String > classNamePatterns ) {
7883 final List <String > allClassNames = new ArrayList <>();
0 commit comments