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