77
88import static java .util .stream .Collectors .joining ;
99import static org .jboss .modules .ResourceLoaderSpec .createResourceLoaderSpec ;
10- import static org .jboss .modules .ResourceLoaders .createJarResourceLoader ;
11- import static org .jboss .modules .ResourceLoaders . createPathResourceLoader ;
10+ import static org .jboss .modules .ResourceLoaders .* ;
11+ import static org .jboss .modules .filter . PathFilters . not ;
1212
1313import java .io .File ;
1414import java .io .IOException ;
2323import java .util .Set ;
2424import java .util .jar .JarFile ;
2525
26- import org .jboss .modules .DependencySpec ;
27- import org .jboss .modules .ModuleDependencySpecBuilder ;
28- import org .jboss .modules .ModuleFinder ;
29- import org .jboss .modules .ModuleSpec ;
30- import org .jboss .modules .PathUtils ;
31- import org .jboss .modules .ResourceLoaderSpec ;
26+ import org .jboss .modules .*;
3227import org .jboss .modules .filter .PathFilters ;
3328
3429import io .jooby .run .JoobyRun ;
@@ -73,8 +68,7 @@ private static Path joobyRunHook(Class loader) {
7368 }
7469 }
7570
76- public static ModuleSpec createModuleSpec (
77- String name , Set <Path > resources , Set <String > dependencies ) {
71+ public ModuleSpec createModuleSpec (String name , Set <Path > resources , Set <String > dependencies ) {
7872 ModuleSpec .Builder builder = newModule (name , resources );
7973
8074 // dependencies
@@ -90,7 +84,7 @@ public static ModuleSpec createModuleSpec(
9084 return builder .create ();
9185 }
9286
93- private static ModuleSpec .Builder newModule (String name , Set <Path > resources ) {
87+ private ModuleSpec .Builder newModule (String name , Set <Path > resources ) {
9488 try {
9589 ModuleSpec .Builder builder = ModuleSpec .build (name );
9690 // Add all JDK classes
@@ -102,8 +96,20 @@ private static ModuleSpec.Builder newModule(String name, Set<Path> resources) {
10296
10397 for (Path path : resources ) {
10498 if (Files .isDirectory (path )) {
105- builder .addResourceRoot (
106- ResourceLoaderSpec .createResourceLoaderSpec (createPathResourceLoader (path )));
99+ var resourceLoader = createPathResourceLoader (path );
100+ if (main .equals (name )) {
101+ resourceLoader =
102+ createFilteredResourceLoader (
103+ not (
104+ it ->
105+ // remove duplicated log configuration
106+ (it .startsWith ("logback" ) || it .startsWith ("log4j" ))
107+ && it .endsWith (".xml" )
108+ // remove duplicated configuration
109+ || (it .startsWith ("application" ) && it .endsWith (".conf" ))),
110+ resourceLoader );
111+ }
112+ builder .addResourceRoot (ResourceLoaderSpec .createResourceLoaderSpec (resourceLoader ));
107113 } else {
108114 builder .addResourceRoot (
109115 createResourceLoaderSpec (createJarResourceLoader (new JarFile (path .toFile ()))));
@@ -117,7 +123,7 @@ private static ModuleSpec.Builder newModule(String name, Set<Path> resources) {
117123
118124 @ Override
119125 public String toString () {
120- return "classes : "
126+ return "main : "
121127 + classes .stream ().map (Path ::toString ).collect (joining (File .pathSeparator ))
122128 + "\n resources: "
123129 + resources .stream ().map (Path ::toString ).collect (joining (File .pathSeparator ))
0 commit comments