2222import java .net .URLClassLoader ;
2323import java .nio .file .Path ;
2424import java .util .Arrays ;
25+ import java .util .HashSet ;
2526import java .util .List ;
2627import java .util .Set ;
2728import java .util .stream .Collectors ;
@@ -228,10 +229,13 @@ public void reflector_frontendScannerConfigExclusions_getsFilteredIsolatedClassL
228229 scanner .addExclude (new FrontendScannerConfig .ArtifactMatcher (
229230 "com.example.addon" , null ));
230231
231- Set <String > expectedArtifacts = Set .of (PROJECT_TARGET_FOLDER ,
232- "com.vaadin-vaadin-core-1.0.jar" ,
233- "com.vaadin-flow-server-1.0.jar" , "org.test-alpha-1.0.jar" ,
234- "org.test-beta-1.0.jar" );
232+ Set <String > expectedArtifacts = new HashSet <>(
233+ Set .of (PROJECT_TARGET_FOLDER , "com.vaadin-vaadin-core-1.0.jar" ,
234+ "com.vaadin-flow-server-1.0.jar" ,
235+ "org.test-alpha-1.0.jar" , "org.test-beta-1.0.jar" ));
236+ // FrontendScannerConfig without includes also accept
237+ // getDefaultVaadinDependencies:
238+ expectedArtifacts .addAll (getDefaultVaadinDependencies ());
235239 assertThatIsolatedClassLoaderHasFilteredScanUrls (scanner ,
236240 expectedArtifacts );
237241 }
@@ -302,13 +306,16 @@ public void reflector_disabledFrontendScannerConfig_getsFullIsolatedClassLoader(
302306 "com.example.addon" , null ));
303307 scanner .setEnabled (false );
304308
305- Set <String > expectedArtifacts = Set .of (PROJECT_TARGET_FOLDER ,
306- "com.vaadin-vaadin-core-1.0.jar" ,
307- "com.vaadin-flow-server-1.0.jar" ,
308- "org.springframework.boot-spring-boot-1.0.jar" ,
309- "com.example.addon-alpha-1.0.jar" ,
310- "com.example.addon-beta-1.0.jar" , "org.test-alpha-1.0.jar" ,
311- "org.test-beta-1.0.jar" );
309+ Set <String > expectedArtifacts = new HashSet <>(
310+ Set .of (PROJECT_TARGET_FOLDER , "com.vaadin-vaadin-core-1.0.jar" ,
311+ "com.vaadin-flow-server-1.0.jar" ,
312+ "org.springframework.boot-spring-boot-1.0.jar" ,
313+ "com.example.addon-alpha-1.0.jar" ,
314+ "com.example.addon-beta-1.0.jar" ,
315+ "org.test-alpha-1.0.jar" , "org.test-beta-1.0.jar" ));
316+ // disabled FrontendScannerConfig includes also accept
317+ // getDefaultVaadinDependencies:
318+ expectedArtifacts .addAll (getDefaultVaadinDependencies ());
312319 assertThatIsolatedClassLoaderHasFilteredScanUrls (scanner ,
313320 expectedArtifacts );
314321 }
@@ -319,27 +326,46 @@ public void reflector_excludeTargetFolder_targetFolderExcluded()
319326 FrontendScannerConfig scanner = new FrontendScannerConfig ();
320327 scanner .setIncludeOutputDirectory (false );
321328
322- Set <String > expectedArtifacts = Set .of ("com.vaadin-vaadin-core-1.0.jar" ,
323- "com.vaadin-flow-server-1.0.jar" ,
324- "org.springframework.boot-spring-boot-1.0.jar" ,
325- "com.example.addon-alpha-1.0.jar" ,
326- "com.example.addon-beta-1.0.jar" , "org.test-alpha-1.0.jar" ,
327- "org.test-beta-1.0.jar" );
329+ Set <String > expectedArtifacts = new HashSet <>(
330+ Set .of ("com.vaadin-vaadin-core-1.0.jar" ,
331+ "com.vaadin-flow-server-1.0.jar" ,
332+ "org.springframework.boot-spring-boot-1.0.jar" ,
333+ "com.example.addon-alpha-1.0.jar" ,
334+ "com.example.addon-beta-1.0.jar" ,
335+ "org.test-alpha-1.0.jar" , "org.test-beta-1.0.jar" ));
336+ // FrontendScannerConfig without includes/excludes also accept
337+ // getDefaultVaadinDependencies:
338+ expectedArtifacts .addAll (getDefaultVaadinDependencies ());
328339 assertThatIsolatedClassLoaderHasFilteredScanUrls (scanner ,
329340 expectedArtifacts );
330341 }
331342
343+ private Set <String > getDefaultVaadinDependencies () {
344+ return Set .of ("com.vaadin-open-1.0.jar" ,
345+ "com.vaadin-license-checker-1.0.jar" ,
346+ "com.vaadin-vaadin-dev-1.0.jar" ,
347+ "com.vaadin-vaadin-dev-server-1.0.jar" ,
348+ "com.vaadin-vaadin-dev-bundle-1.0.jar" ,
349+ "com.vaadin-copilot-1.0.jar" ,
350+ "com.vaadin-flow-archive-extractor-1.0.jar" ,
351+ "com.vaadin-ui-tests-1.0.jar" ,
352+ "com.vaadin.external-gentyref-1.0.jar" ,
353+ "com.vaadin.external.atmosphere-atmosphere-runtime-1.0.jar" );
354+ }
355+
332356 private void assertThatIsolatedClassLoaderHasFilteredScanUrls (
333357 FrontendScannerConfig scannerConfig , Set <String > expectedScanURLs )
334358 throws Exception {
335359 String outputDirectory = PROJECT_TARGET_FOLDER ;
336360
361+ Set <String > defaultVaadinDependencies = getDefaultVaadinDependencies ();
362+
337363 MavenProject project = new MavenProject ();
338364 project .setGroupId ("com.vaadin.test" );
339365 project .setArtifactId ("reflector-tests" );
340366 project .setBuild (new Build ());
341367 project .getBuild ().setOutputDirectory (outputDirectory );
342- project .setArtifacts (Set .of (
368+ project .setArtifacts (new HashSet <>( Set .of (
343369 createArtifact ("com.vaadin" , "vaadin-core" , "1.0" , "compile" ,
344370 true ),
345371 createArtifact ("com.vaadin" , "flow-server" , "1.0" , "compile" ,
@@ -351,9 +377,17 @@ private void assertThatIsolatedClassLoaderHasFilteredScanUrls(
351377 createArtifact ("com.example.addon" , "beta" , "1.0" , "compile" ,
352378 true ),
353379 createArtifact ("org.test" , "alpha" , "1.0" , "compile" , true ),
354- createArtifact ("org.test" , "beta" , "1.0" , "compile" , true )
355-
356- ));
380+ createArtifact ("org.test" , "beta" , "1.0" , "compile" , true ))));
381+ for (String vaadinDep : defaultVaadinDependencies ) {
382+ // create Artifact from String like
383+ // "com.vaadin.external-gentyref-1.0.jar"
384+ project .getArtifacts ()
385+ .add (createArtifact (
386+ vaadinDep .substring (0 , vaadinDep .indexOf ("-" )),
387+ vaadinDep .substring (vaadinDep .indexOf ("-" ) + 1 ,
388+ vaadinDep .length () - "-1.0.jar" .length ()),
389+ "1.0" , "compile" , true ));
390+ }
357391
358392 MojoExecution mojoExecution = new MojoExecution (new MojoDescriptor ());
359393 PluginDescriptor pluginDescriptor = new PluginDescriptor ();
@@ -380,7 +414,7 @@ private void assertThatIsolatedClassLoaderHasFilteredScanUrls(
380414 // Ensure the classloader references all dependencies
381415 Set <String > urlSet = Arrays .stream (isolatedClassLoader .getURLs ())
382416 .map (URL ::toExternalForm ).collect (Collectors .toSet ());
383- Assert .assertEquals (9 , urlSet .size ());
417+ Assert .assertEquals (19 , urlSet .size ());
384418 Assert .assertTrue (urlSet .contains (toURLExternalForm (outputDirectory )));
385419 Assert .assertTrue (urlSet
386420 .contains (toURLExternalForm ("com.vaadin-vaadin-core-1.0.jar" )));
@@ -396,6 +430,9 @@ private void assertThatIsolatedClassLoaderHasFilteredScanUrls(
396430 urlSet .contains (toURLExternalForm ("org.test-beta-1.0.jar" )));
397431 Assert .assertTrue (urlSet .contains (
398432 toURLExternalForm ("com.example.plugin-plugin-dep-1.0.jar" )));
433+ for (String url : defaultVaadinDependencies ) {
434+ Assert .assertTrue (urlSet .contains (toURLExternalForm (url )));
435+ }
399436
400437 // Verify scan URLs
401438 urlSet = Arrays .stream (isolatedClassLoader .getUrlsToScan ())
@@ -405,6 +442,15 @@ private void assertThatIsolatedClassLoaderHasFilteredScanUrls(
405442 Assert .assertTrue ("Scan URL missing in Reflector: " + expectedUrl ,
406443 urlSet .contains (toURLExternalForm (expectedUrl )));
407444 }
445+ // verify default excluded URLs are indeed excluded
446+ for (String expectedExcludedUrl : defaultVaadinDependencies ) {
447+ if (expectedScanURLs .contains (expectedExcludedUrl )) {
448+ continue ; // already checked as included
449+ }
450+ Assert .assertFalse (
451+ "Unexpected scan URL in Reflector: " + expectedExcludedUrl ,
452+ urlSet .contains (toURLExternalForm (expectedExcludedUrl )));
453+ }
408454
409455 }
410456
0 commit comments