< prev index next >

modules/fxpackager/src/main/java/com/oracle/tools/packager/StandardBundlerParam.java

Print this page




 647                     p -> "auto",
 648                     (s, p) -> s
 649             );
 650 
 651     @SuppressWarnings("unchecked")
 652     public static final StandardBundlerParam<List<String>> APP_CDS_CLASS_ROOTS =
 653             new StandardBundlerParam<>(
 654                     I18N.getString("param.com-app-cds-root.name"),
 655                     I18N.getString("param.com-app-cds-root.description"),
 656                     "commercial.AppCDS.classRoots",
 657                     (Class<List<String>>)((Object)List.class),
 658                     p -> Collections.singletonList(MAIN_CLASS.fetchFrom(p)),
 659                     (s, p) -> Arrays.asList(s.split("[ ,:]"))
 660             );
 661 
 662     public static void extractMainClassInfoFromAppResources(Map<String, ? super Object> params) {
 663         boolean hasMainClass = params.containsKey(MAIN_CLASS.getID());
 664         boolean hasMainJar = params.containsKey(MAIN_JAR.getID());
 665         boolean hasMainJarClassPath = params.containsKey(CLASSPATH.getID());
 666         boolean hasPreloader = params.containsKey(PRELOADER_CLASS.getID());
 667         boolean haMainModule = params.containsKey(JLinkBundlerHelper.MAIN_MODULE.getID());
 668 
 669         if (hasMainClass && hasMainJar && hasMainJarClassPath || haMainModule) {
 670             return;
 671         }

 672         // it's a pair.  The [0] is the srcdir [1] is the file relative to sourcedir
 673         List<String[]> filesToCheck = new ArrayList<>();
 674 
 675         if (hasMainJar) {
 676             RelativeFileSet rfs = MAIN_JAR.fetchFrom(params);
 677             for (String s : rfs.getIncludedFiles()) {
 678                 filesToCheck.add(new String[]{rfs.getBaseDirectory().toString(), s});
 679             }
 680         } else if (hasMainJarClassPath) {
 681             for (String s : CLASSPATH.fetchFrom(params).split("\\s+")) {
 682                 if (APP_RESOURCES.fetchFrom(params) != null) {
 683                     filesToCheck.add(new String[] {APP_RESOURCES.fetchFrom(params).getBaseDirectory().toString(), s});
 684                 }
 685             }
 686         } else {
 687             List<RelativeFileSet> rfsl = APP_RESOURCES_LIST.fetchFrom(params);
 688             if (rfsl == null || rfsl.isEmpty()) {
 689                 return;
 690             }
 691             for (RelativeFileSet rfs : rfsl) {


 751                             }
 752                             params.put(MAIN_JAR.getID(), new RelativeFileSet(new File(fnames[0]), new LinkedHashSet<>(Collections.singletonList(file))));
 753                         }
 754                         if (!hasMainJarClassPath) {
 755                             String cp = attrs.getValue(Attributes.Name.CLASS_PATH);
 756                             params.put(CLASSPATH.getID(), cp == null ? "" : cp);
 757                         }
 758                         break;
 759                     }
 760                 }
 761             } catch (IOException ignore) {
 762                 ignore.printStackTrace();
 763             }
 764         }
 765     }
 766 
 767     public static void validateMainClassInfoFromAppResources(Map<String, ? super Object> params) throws ConfigException {
 768         boolean hasMainClass = params.containsKey(MAIN_CLASS.getID());
 769         boolean hasMainJar = params.containsKey(MAIN_JAR.getID());
 770         boolean hasMainJarClassPath = params.containsKey(CLASSPATH.getID());
 771         boolean haMainModule = params.containsKey(JLinkBundlerHelper.MAIN_MODULE.getID());
 772 
 773         if (hasMainClass && hasMainJar && hasMainJarClassPath || haMainModule) {
 774             return;
 775         }
 776 
 777         extractMainClassInfoFromAppResources(params);
 778 
 779         if (!params.containsKey(MAIN_CLASS.getID())) {
 780             if (hasMainJar) {
 781                 throw new ConfigException(
 782                         MessageFormat.format(I18N.getString("error.no-main-class-with-main-jar"),
 783                                 MAIN_JAR.fetchFrom(params)),
 784                         MessageFormat.format(I18N.getString("error.no-main-class-with-main-jar.advice"),
 785                                 MAIN_JAR.fetchFrom(params)));
 786             } else if (hasMainJarClassPath) {
 787                 throw new ConfigException(
 788                         I18N.getString("error.no-main-class-with-classpath"),
 789                         I18N.getString("error.no-main-class-with-classpath.advice"));
 790             } else {
 791                 throw new ConfigException(
 792                         I18N.getString("error.no-main-class"),
 793                         I18N.getString("error.no-main-class.advice"));




 647                     p -> "auto",
 648                     (s, p) -> s
 649             );
 650 
 651     @SuppressWarnings("unchecked")
 652     public static final StandardBundlerParam<List<String>> APP_CDS_CLASS_ROOTS =
 653             new StandardBundlerParam<>(
 654                     I18N.getString("param.com-app-cds-root.name"),
 655                     I18N.getString("param.com-app-cds-root.description"),
 656                     "commercial.AppCDS.classRoots",
 657                     (Class<List<String>>)((Object)List.class),
 658                     p -> Collections.singletonList(MAIN_CLASS.fetchFrom(p)),
 659                     (s, p) -> Arrays.asList(s.split("[ ,:]"))
 660             );
 661 
 662     public static void extractMainClassInfoFromAppResources(Map<String, ? super Object> params) {
 663         boolean hasMainClass = params.containsKey(MAIN_CLASS.getID());
 664         boolean hasMainJar = params.containsKey(MAIN_JAR.getID());
 665         boolean hasMainJarClassPath = params.containsKey(CLASSPATH.getID());
 666         boolean hasPreloader = params.containsKey(PRELOADER_CLASS.getID());
 667         boolean hasModule = params.containsKey(JLinkBundlerHelper.MODULE.getID());
 668 
 669         if (hasMainClass && hasMainJar && hasMainJarClassPath || hasModule) {
 670             return;
 671         }
 672 
 673         // it's a pair.  The [0] is the srcdir [1] is the file relative to sourcedir
 674         List<String[]> filesToCheck = new ArrayList<>();
 675 
 676         if (hasMainJar) {
 677             RelativeFileSet rfs = MAIN_JAR.fetchFrom(params);
 678             for (String s : rfs.getIncludedFiles()) {
 679                 filesToCheck.add(new String[]{rfs.getBaseDirectory().toString(), s});
 680             }
 681         } else if (hasMainJarClassPath) {
 682             for (String s : CLASSPATH.fetchFrom(params).split("\\s+")) {
 683                 if (APP_RESOURCES.fetchFrom(params) != null) {
 684                     filesToCheck.add(new String[] {APP_RESOURCES.fetchFrom(params).getBaseDirectory().toString(), s});
 685                 }
 686             }
 687         } else {
 688             List<RelativeFileSet> rfsl = APP_RESOURCES_LIST.fetchFrom(params);
 689             if (rfsl == null || rfsl.isEmpty()) {
 690                 return;
 691             }
 692             for (RelativeFileSet rfs : rfsl) {


 752                             }
 753                             params.put(MAIN_JAR.getID(), new RelativeFileSet(new File(fnames[0]), new LinkedHashSet<>(Collections.singletonList(file))));
 754                         }
 755                         if (!hasMainJarClassPath) {
 756                             String cp = attrs.getValue(Attributes.Name.CLASS_PATH);
 757                             params.put(CLASSPATH.getID(), cp == null ? "" : cp);
 758                         }
 759                         break;
 760                     }
 761                 }
 762             } catch (IOException ignore) {
 763                 ignore.printStackTrace();
 764             }
 765         }
 766     }
 767 
 768     public static void validateMainClassInfoFromAppResources(Map<String, ? super Object> params) throws ConfigException {
 769         boolean hasMainClass = params.containsKey(MAIN_CLASS.getID());
 770         boolean hasMainJar = params.containsKey(MAIN_JAR.getID());
 771         boolean hasMainJarClassPath = params.containsKey(CLASSPATH.getID());
 772         boolean hasModule = params.containsKey(JLinkBundlerHelper.MODULE.getID());
 773 
 774         if (hasMainClass && hasMainJar && hasMainJarClassPath || hasModule) {
 775             return;
 776         }
 777 
 778         extractMainClassInfoFromAppResources(params);
 779 
 780         if (!params.containsKey(MAIN_CLASS.getID())) {
 781             if (hasMainJar) {
 782                 throw new ConfigException(
 783                         MessageFormat.format(I18N.getString("error.no-main-class-with-main-jar"),
 784                                 MAIN_JAR.fetchFrom(params)),
 785                         MessageFormat.format(I18N.getString("error.no-main-class-with-main-jar.advice"),
 786                                 MAIN_JAR.fetchFrom(params)));
 787             } else if (hasMainJarClassPath) {
 788                 throw new ConfigException(
 789                         I18N.getString("error.no-main-class-with-classpath"),
 790                         I18N.getString("error.no-main-class-with-classpath.advice"));
 791             } else {
 792                 throw new ConfigException(
 793                         I18N.getString("error.no-main-class"),
 794                         I18N.getString("error.no-main-class.advice"));


< prev index next >