@@ -110,40 +110,29 @@ public void execute() throws MojoExecutionException, MojoFailureException {
110110 return ;
111111 }
112112
113- ClassLoader origClzLoader = Thread .currentThread ().getContextClassLoader ();
114- ClassLoader clzLoader = createClassLoader (origClzLoader );
113+ Reader reader = new Reader (swaggerConfig == null ? new OpenAPI () : swaggerConfig .createSwaggerModel ());
115114
116- try {
117- // set the TCCL before everything else
118- Thread .currentThread ().setContextClassLoader (clzLoader );
119-
120- Reader reader = new Reader (swaggerConfig == null ? new OpenAPI () : swaggerConfig .createSwaggerModel ());
115+ JaxRSScanner reflectiveScanner = new JaxRSScanner (getLog (), createClassLoader (), resourcePackages , useResourcePackagesChildren );
121116
122- JaxRSScanner reflectiveScanner = new JaxRSScanner (getLog (), resourcePackages , useResourcePackagesChildren );
117+ Application application = resolveApplication (reflectiveScanner );
118+ reader .setApplication (application );
123119
124- Application application = resolveApplication (reflectiveScanner );
125- reader .setApplication (application );
120+ OpenAPI swagger = OpenAPISorter .sort (reader .read (reflectiveScanner .classes ()));
126121
127- OpenAPI swagger = OpenAPISorter .sort (reader .read (reflectiveScanner .classes ()));
128-
129- if (outputDirectory .mkdirs ()) {
130- getLog ().debug ("Created output directory " + outputDirectory );
131- }
122+ if (outputDirectory .mkdirs ()) {
123+ getLog ().debug ("Created output directory " + outputDirectory );
124+ }
132125
133- outputFormats .forEach (format -> {
134- try {
135- File outputFile = new File (outputDirectory , outputFilename + "." + format .name ().toLowerCase ());
136- format .write (swagger , outputFile , prettyPrint );
137- if (attachSwaggerArtifact ) {
138- projectHelper .attachArtifact (project , format .name ().toLowerCase (), "swagger" , outputFile );
139- }
140- } catch (IOException e ) {
141- throw new RuntimeException ("Unable write " + outputFilename + " document" , e );
126+ try {
127+ for (OutputFormat format : outputFormats ) {
128+ File outputFile = new File (outputDirectory , outputFilename + "." + format .name ().toLowerCase ());
129+ format .write (swagger , outputFile , prettyPrint );
130+ if (attachSwaggerArtifact ) {
131+ projectHelper .attachArtifact (project , format .name ().toLowerCase (), "swagger" , outputFile );
142132 }
143- });
144- } finally {
145- // reset the TCCL back to the original class loader
146- Thread .currentThread ().setContextClassLoader (origClzLoader );
133+ }
134+ } catch (IOException e ) {
135+ throw new RuntimeException ("Unable write " + outputFilename + " document" , e );
147136 }
148137 }
149138
@@ -164,15 +153,15 @@ private Application resolveApplication(JaxRSScanner reflectiveScanner) {
164153 return ClassUtils .createInstance (appClazz );
165154 }
166155
167- private URLClassLoader createClassLoader (ClassLoader parent ) {
156+ private URLClassLoader createClassLoader () {
168157 try {
169158 Collection <String > dependencies = getDependentClasspathElements ();
170159 URL [] urls = new URL [dependencies .size ()];
171160 int index = 0 ;
172161 for (String dependency : dependencies ) {
173162 urls [index ++] = Paths .get (dependency ).toUri ().toURL ();
174163 }
175- return new URLClassLoader (urls , parent );
164+ return new URLClassLoader (urls , Thread . currentThread (). getContextClassLoader () );
176165 } catch (MalformedURLException e ) {
177166 throw new RuntimeException ("Unable to create class loader with compiled classes" , e );
178167 } catch (DependencyResolutionRequiredException e ) {
0 commit comments