@ -1,5 +1,5 @@
/ *
* Copyright 2012 - 202 1 the original author or authors .
* Copyright 2012 - 202 2 the original author or authors .
*
* Licensed under the Apache License , Version 2.0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -103,6 +103,66 @@ class BootJarTests extends AbstractBootArchiveTests<BootJar> {
}
}
@Test
void metaInfEntryIsPackagedInTheRootOfTheArchive ( ) throws IOException {
getTask ( ) . getMainClass ( ) . set ( "com.example.Main" ) ;
File classpathDirectory = new File ( this . temp , "classes" ) ;
File metaInfEntry = new File ( classpathDirectory , "META-INF/test" ) ;
metaInfEntry . getParentFile ( ) . mkdirs ( ) ;
metaInfEntry . createNewFile ( ) ;
File applicationClass = new File ( classpathDirectory , "com/example/Application.class" ) ;
applicationClass . getParentFile ( ) . mkdirs ( ) ;
applicationClass . createNewFile ( ) ;
getTask ( ) . classpath ( classpathDirectory ) ;
executeTask ( ) ;
try ( JarFile jarFile = new JarFile ( getTask ( ) . getArchiveFile ( ) . get ( ) . getAsFile ( ) ) ) {
assertThat ( jarFile . getEntry ( "BOOT-INF/classes/com/example/Application.class" ) ) . isNotNull ( ) ;
assertThat ( jarFile . getEntry ( "com/example/Application.class" ) ) . isNull ( ) ;
assertThat ( jarFile . getEntry ( "BOOT-INF/classes/META-INF/test" ) ) . isNull ( ) ;
assertThat ( jarFile . getEntry ( "META-INF/test" ) ) . isNotNull ( ) ;
}
}
@Test
void aopXmlIsPackagedBeneathClassesDirectory ( ) throws IOException {
getTask ( ) . getMainClass ( ) . set ( "com.example.Main" ) ;
File classpathDirectory = new File ( this . temp , "classes" ) ;
File aopXml = new File ( classpathDirectory , "META-INF/aop.xml" ) ;
aopXml . getParentFile ( ) . mkdirs ( ) ;
aopXml . createNewFile ( ) ;
File applicationClass = new File ( classpathDirectory , "com/example/Application.class" ) ;
applicationClass . getParentFile ( ) . mkdirs ( ) ;
applicationClass . createNewFile ( ) ;
getTask ( ) . classpath ( classpathDirectory ) ;
executeTask ( ) ;
try ( JarFile jarFile = new JarFile ( getTask ( ) . getArchiveFile ( ) . get ( ) . getAsFile ( ) ) ) {
assertThat ( jarFile . getEntry ( "BOOT-INF/classes/com/example/Application.class" ) ) . isNotNull ( ) ;
assertThat ( jarFile . getEntry ( "com/example/Application.class" ) ) . isNull ( ) ;
assertThat ( jarFile . getEntry ( "BOOT-INF/classes/META-INF/aop.xml" ) ) . isNotNull ( ) ;
assertThat ( jarFile . getEntry ( "META-INF/aop.xml" ) ) . isNull ( ) ;
}
}
@Test
void kotlinModuleIsPackagedBeneathClassesDirectory ( ) throws IOException {
getTask ( ) . getMainClass ( ) . set ( "com.example.Main" ) ;
File classpathDirectory = new File ( this . temp , "classes" ) ;
File kotlinModule = new File ( classpathDirectory , "META-INF/example.kotlin_module" ) ;
kotlinModule . getParentFile ( ) . mkdirs ( ) ;
kotlinModule . createNewFile ( ) ;
File applicationClass = new File ( classpathDirectory , "com/example/Application.class" ) ;
applicationClass . getParentFile ( ) . mkdirs ( ) ;
applicationClass . createNewFile ( ) ;
getTask ( ) . classpath ( classpathDirectory ) ;
executeTask ( ) ;
try ( JarFile jarFile = new JarFile ( getTask ( ) . getArchiveFile ( ) . get ( ) . getAsFile ( ) ) ) {
assertThat ( jarFile . getEntry ( "BOOT-INF/classes/com/example/Application.class" ) ) . isNotNull ( ) ;
assertThat ( jarFile . getEntry ( "com/example/Application.class" ) ) . isNull ( ) ;
assertThat ( jarFile . getEntry ( "BOOT-INF/classes/META-INF/example.kotlin_module" ) ) . isNotNull ( ) ;
assertThat ( jarFile . getEntry ( "META-INF/example.kotlin_module" ) ) . isNull ( ) ;
}
}
private File createPopulatedJar ( ) throws IOException {
addContent ( ) ;
executeTask ( ) ;