src/share/classes/sun/tools/jar/Main.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/classes/sun/tools/jar/Main.java	Tue Jan  8 02:20:37 2013
--- new/src/share/classes/sun/tools/jar/Main.java	Tue Jan  8 02:20:36 2013

*** 45,55 **** --- 45,55 ---- */ public class Main { String program; PrintStream out, err; ! String fname, mname, ename, pname; String zname = ""; String[] files; String rootjar = null; // An entryName(path)->File map generated during "expand", it helps to
*** 182,191 **** --- 182,194 ---- return false; } if (ename != null) { addMainClass(manifest, ename); } + if (pname != null) { + addProfileName(manifest, pname); + } } OutputStream out; if (fname != null) { out = new FileOutputStream(fname); } else {
*** 359,368 **** --- 362,374 ---- iflag = true; break; case 'e': ename = args[count++]; break; + case 'p': + pname = args[count++]; + break; default: error(formatMsg("error.illegal.option", String.valueOf(flags.charAt(i)))); usageError(); return false;
*** 408,418 **** --- 414,424 ---- } else if (cflag && (mname == null)) { error(getMsg("error.bad.cflag")); usageError(); return false; } else if (uflag) { ! if ((mname != null) || (ename != null) || (pname != null)) { /* just want to update the manifest */ return true; } else { error(getMsg("error.bad.uflag")); usageError();
*** 542,552 **** --- 548,558 ---- if ((jarIndex != null && equalsIgnoreCase(name, INDEX_NAME)) || (Mflag && isManifestEntry)) { continue; } else if (isManifestEntry && ((newManifest != null) || ! (ename != null) || (pname != null))) { foundManifest = true; if (newManifest != null) { // Don't read from the newManifest InputStream, as we // might need it below, and we can't re-read the same data // twice.
*** 596,606 **** --- 602,612 ---- Manifest m = new Manifest(newManifest); updateOk = !isAmbiguousMainClass(m); if (updateOk) { updateManifest(m, zos); } ! } else if (ename != null || pname != null) { updateManifest(new Manifest(), zos); } } zis.close(); zos.close();
*** 629,638 **** --- 635,647 ---- addVersion(m); addCreatedBy(m); if (ename != null) { addMainClass(m, ename); } + if (pname != null) { + addProfileName(m, pname); + } ZipEntry e = new ZipEntry(MANIFEST_NAME); e.setTime(System.currentTimeMillis()); if (flag0) { crc32Manifest(e, m); }
*** 685,694 **** --- 694,710 ---- // overrides any existing Main-Class attribute global.put(Attributes.Name.MAIN_CLASS, mainApp); } + private void addProfileName(Manifest m, String profile) { + Attributes global = m.getMainAttributes(); + + // overrides any existing Profile attribute + global.put(Attributes.Name.PROFILE, profile); + } + private boolean isAmbiguousMainClass(Manifest m) { if (ename != null) { Attributes global = m.getMainAttributes(); if ((global.get(Attributes.Name.MAIN_CLASS) != null)) { error(getMsg("error.bad.eflag"));

src/share/classes/sun/tools/jar/Main.java
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File