@@ -82,6 +82,30 @@ public boolean equals( Object o )
82
82
}
83
83
}
84
84
85
+ @ Test
86
+ public void testInvalidModuleNames ()
87
+ {
88
+ assertFalse ( MavenArchiver .isValidModuleName ( "" ) );
89
+ assertFalse ( MavenArchiver .isValidModuleName ( "." ) );
90
+ assertFalse ( MavenArchiver .isValidModuleName ( "dash-is-invalid" ) );
91
+ assertFalse ( MavenArchiver .isValidModuleName ( "plus+is+invalid" ) );
92
+ assertFalse ( MavenArchiver .isValidModuleName ( "colon:is:invalid" ) );
93
+ assertFalse ( MavenArchiver .isValidModuleName ( "new.class" ) );
94
+ assertFalse ( MavenArchiver .isValidModuleName ( "123.at.start.is.invalid" ) );
95
+ assertFalse ( MavenArchiver .isValidModuleName ( "digit.at.123start.is.invalid" ) );
96
+ }
97
+
98
+ @ Test
99
+ public void testValidModuleNames ()
100
+ {
101
+ assertTrue ( MavenArchiver .isValidModuleName ( "a" ) );
102
+ assertTrue ( MavenArchiver .isValidModuleName ( "a.b" ) );
103
+ assertTrue ( MavenArchiver .isValidModuleName ( "a_b" ) );
104
+ assertTrue ( MavenArchiver .isValidModuleName ( "trailing0.digits123.are456.ok789" ) );
105
+ assertTrue ( MavenArchiver .isValidModuleName ( "UTF8.chars.are.okay.äëïöüẍ" ) );
106
+ assertTrue ( MavenArchiver .isValidModuleName ( "ℤ€ℕ" ) );
107
+ }
108
+
85
109
@ Test
86
110
public void testGetManifestExtensionList ()
87
111
throws Exception
@@ -500,6 +524,7 @@ public void testManifestEntries()
500
524
Map <String , String > manifestEntries = new HashMap <String , String >();
501
525
manifestEntries .put ( "foo" , "bar" );
502
526
manifestEntries .put ( "first-name" , "olivier" );
527
+ manifestEntries .put ( "Automatic-Module-Name" , "org.apache.maven.archiver" );
503
528
manifestEntries .put ( "keyWithEmptyValue" , null );
504
529
config .setManifestEntries ( manifestEntries );
505
530
@@ -532,6 +557,7 @@ public void testManifestEntries()
532
557
533
558
assertEquals ( "bar" , manifest .get ( new Attributes .Name ( "foo" ) ) );
534
559
assertEquals ( "olivier" , manifest .get ( new Attributes .Name ( "first-name" ) ) );
560
+ assertEquals ( "org.apache.maven.archiver" , manifest .getValue ( "Automatic-Module-Name" ) );
535
561
536
562
assertEquals ( System .getProperty ( "java.version" ), manifest .get ( new Attributes .Name ( "Build-Jdk" ) ) );
537
563
assertEquals ( System .getProperty ( "user.name" ), manifest .get ( new Attributes .Name ( "Built-By" ) ) );
@@ -544,6 +570,33 @@ public void testManifestEntries()
544
570
assertEquals ( "value" , manifest .get ( new Attributes .Name ( "key" ) ) );
545
571
}
546
572
573
+ @ Test
574
+ public void testManifestWithInvalidAutomaticModuleNameThrowsOnCreateArchive ()
575
+ throws Exception
576
+ {
577
+ File jarFile = new File ( "target/test/dummy.jar" );
578
+ JarArchiver jarArchiver = getCleanJarArchiver ( jarFile );
579
+
580
+ MavenArchiver archiver = getMavenArchiver ( jarArchiver );
581
+
582
+ MavenSession session = getDummySession ();
583
+ MavenProject project = getDummyProject ();
584
+ MavenArchiveConfiguration config = new MavenArchiveConfiguration ();
585
+
586
+ Map <String , String > manifestEntries = new HashMap <String , String >();
587
+ manifestEntries .put ( "Automatic-Module-Name" , "123.in-valid.new.name" );
588
+ config .setManifestEntries ( manifestEntries );
589
+
590
+ try
591
+ {
592
+ archiver .createArchive ( session , project , config );
593
+ }
594
+ catch ( ManifestException e )
595
+ {
596
+ assertEquals ( "Invalid automatic module name: '123.in-valid.new.name'" , e .getMessage () );
597
+ }
598
+ }
599
+
547
600
@ Test
548
601
public void testCreatedByManifestEntryWithoutMavenVersion ()
549
602
throws Exception
0 commit comments