553 public static final StandardBundlerParam<String> FA_DESCRIPTION = 554 new StandardBundlerParam<>( 555 I18N.getString("param.fa-description.name"), 556 I18N.getString("param.fa-description.description"), 557 "fileAssociation.description", 558 String.class, 559 params -> APP_NAME.fetchFrom(params) + " File", 560 null 561 ); 562 563 public static final StandardBundlerParam<File> FA_ICON = 564 new StandardBundlerParam<>( 565 I18N.getString("param.fa-icon.name"), 566 I18N.getString("param.fa-icon.description"), 567 "fileAssociation.icon", 568 File.class, 569 ICON::fetchFrom, 570 (s, p) -> new File(s) 571 ); 572 573 public static void extractMainClassInfoFromAppResources(Map<String, ? super Object> params) { 574 boolean hasMainClass = params.containsKey(MAIN_CLASS.getID()); 575 boolean hasMainJar = params.containsKey(MAIN_JAR.getID()); 576 boolean hasMainJarClassPath = params.containsKey(CLASSPATH.getID()); 577 boolean hasPreloader = params.containsKey(PRELOADER_CLASS.getID()); 578 579 if (hasMainClass && hasMainJar && hasMainJarClassPath) { 580 return; 581 } 582 // it's a pair. The [0] is the srcdir [1] is the file relative to sourcedir 583 List<String[]> filesToCheck = new ArrayList<>(); 584 585 if (hasMainJar) { 586 RelativeFileSet rfs = MAIN_JAR.fetchFrom(params); 587 for (String s : rfs.getIncludedFiles()) { 588 filesToCheck.add(new String[]{rfs.getBaseDirectory().toString(), s}); 589 } 590 } else if (hasMainJarClassPath) { 591 for (String s : CLASSPATH.fetchFrom(params).split("\\s+")) { 592 filesToCheck.add(new String[] {APP_RESOURCES.fetchFrom(params).getBaseDirectory().toString(), s}); | 553 public static final StandardBundlerParam<String> FA_DESCRIPTION = 554 new StandardBundlerParam<>( 555 I18N.getString("param.fa-description.name"), 556 I18N.getString("param.fa-description.description"), 557 "fileAssociation.description", 558 String.class, 559 params -> APP_NAME.fetchFrom(params) + " File", 560 null 561 ); 562 563 public static final StandardBundlerParam<File> FA_ICON = 564 new StandardBundlerParam<>( 565 I18N.getString("param.fa-icon.name"), 566 I18N.getString("param.fa-icon.description"), 567 "fileAssociation.icon", 568 File.class, 569 ICON::fetchFrom, 570 (s, p) -> new File(s) 571 ); 572 573 public static final StandardBundlerParam<Boolean> UNLOCK_COMMERCIAL_FEATURES = 574 new StandardBundlerParam<>( 575 I18N.getString("param.commercial-features.name"), 576 I18N.getString("param.commercial-features.description"), 577 "commercialFeatures", 578 Boolean.class, 579 p -> false, 580 (s, p) -> Boolean.parseBoolean(s) 581 ); 582 583 public static final StandardBundlerParam<Boolean> ENABLE_APP_CDS = 584 new StandardBundlerParam<>( 585 I18N.getString("param.com-app-cds.name"), 586 I18N.getString("param.com-app-cds.description"), 587 "commercial.AppCDS", 588 Boolean.class, 589 p -> false, 590 (s, p) -> Boolean.parseBoolean(s) 591 ); 592 593 @SuppressWarnings("unchecked") 594 public static final StandardBundlerParam<List<String>> APP_CDS_CLASS_ROOTS = 595 new StandardBundlerParam<>( 596 I18N.getString("param.com-app-cds-root.name"), 597 I18N.getString("param.com-app-cds-root.description"), 598 "commercial.AppCDS.classRoots", 599 (Class<List<String>>)((Object)List.class), 600 p -> Arrays.asList(MAIN_CLASS.fetchFrom(p)), 601 (s, p) -> Arrays.asList(s.split("[ ,:]")) 602 ); 603 604 public static void extractMainClassInfoFromAppResources(Map<String, ? super Object> params) { 605 boolean hasMainClass = params.containsKey(MAIN_CLASS.getID()); 606 boolean hasMainJar = params.containsKey(MAIN_JAR.getID()); 607 boolean hasMainJarClassPath = params.containsKey(CLASSPATH.getID()); 608 boolean hasPreloader = params.containsKey(PRELOADER_CLASS.getID()); 609 610 if (hasMainClass && hasMainJar && hasMainJarClassPath) { 611 return; 612 } 613 // it's a pair. The [0] is the srcdir [1] is the file relative to sourcedir 614 List<String[]> filesToCheck = new ArrayList<>(); 615 616 if (hasMainJar) { 617 RelativeFileSet rfs = MAIN_JAR.fetchFrom(params); 618 for (String s : rfs.getIncludedFiles()) { 619 filesToCheck.add(new String[]{rfs.getBaseDirectory().toString(), s}); 620 } 621 } else if (hasMainJarClassPath) { 622 for (String s : CLASSPATH.fetchFrom(params).split("\\s+")) { 623 filesToCheck.add(new String[] {APP_RESOURCES.fetchFrom(params).getBaseDirectory().toString(), s}); |