diff options
author | Alexander Kurtakov | 2020-02-03 13:30:21 +0000 |
---|---|---|
committer | Alexander Kurtakov | 2020-02-03 14:49:12 +0000 |
commit | 1d0a356bdb6a1148f6a1332989a6ea82411c9fca (patch) | |
tree | 3cc9d61f87417a5aea9dae537f911f22e2cc1c98 | |
parent | 4e1581e76144ffca94363f57dd88c6587aa6b7f5 (diff) | |
download | rt.equinox.p2-1d0a356bdb6a1148f6a1332989a6ea82411c9fca.tar.gz rt.equinox.p2-1d0a356bdb6a1148f6a1332989a6ea82411c9fca.tar.xz rt.equinox.p2-1d0a356bdb6a1148f6a1332989a6ea82411c9fca.zip |
Bug 458486 - BrandingIron class should use "log" instead ofY20200204-0035I20200209-1800I20200208-1800I20200207-1800I20200206-1805I20200205-1800I20200205-0030I20200204-1800I20200203-1800
System.out.println for errors.
Use the log.
Change-Id: Id745904433a3560e7d3b92612a91ef276b6a3315
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
-rw-r--r-- | bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java | 117 |
1 files changed, 66 insertions, 51 deletions
diff --git a/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java b/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java index fe2d176d4..b1114b4c7 100644 --- a/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java +++ b/bundles/org.eclipse.equinox.p2.publisher.eclipse/src/org/eclipse/equinox/internal/p2/publisher/eclipse/BrandingIron.java @@ -16,7 +16,11 @@ package org.eclipse.equinox.internal.p2.publisher.eclipse; import java.io.*; import javax.xml.transform.TransformerException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.equinox.internal.p2.core.helpers.LogHelper; import org.eclipse.equinox.p2.metadata.Version; +import org.eclipse.pde.internal.publishing.Activator; import org.eclipse.pde.internal.publishing.Utils; import org.eclipse.pde.internal.swt.tools.IconExe; @@ -69,7 +73,7 @@ public class BrandingIron { icons = null; } } - //trim whitespace + // trim whitespace if (icons != null) { for (int i = 0; i < icons.length; i++) { icons[i] = icons[i].trim(); @@ -87,8 +91,9 @@ public class BrandingIron { File root = descriptor.getLocation(); - // if the root does not exists (happens in some packaging cases) or - // there is already a file with target name and we don't need to update its icons, don't do anything + // if the root does not exists (happens in some packaging cases) or + // there is already a file with target name and we don't need to update its + // icons, don't do anything String testName = os.equals("win32") ? name + ".exe" : name; //$NON-NLS-1$ //$NON-NLS-2$ if (!root.exists() || (!brandIcons && new File(root, testName).exists())) return; @@ -103,9 +108,10 @@ public class BrandingIron { } descriptor.setLocation(root); - if (os==null) + if (os == null) renameLauncher(descriptor); - else switch (os) { + else + switch (os) { case "win32": //$NON-NLS-1$ brandWindows(descriptor); break; @@ -127,7 +133,7 @@ public class BrandingIron { default: renameLauncher(descriptor); break; - } + } descriptor.setExecutableName(name, true); } @@ -145,8 +151,7 @@ public class BrandingIron { File icon = null; if (icons.length > 0) { for (String icon1 : icons) { - if (icon1.toLowerCase().endsWith(".xpm")) { - //$NON-NLS-1$ + if (icon1.toLowerCase().endsWith(".xpm")) { //$NON-NLS-1$ icon = new File(icon1); break; } @@ -181,11 +186,11 @@ public class BrandingIron { } private void brandMac(ExecutablesDescriptor descriptor) throws Exception { - //Initially the files are in: <root>/Eclipse.app/ - //and they must appear in <root>/MyAppName.app/ - //Because java does not support the rename of a folder, files are copied. + // Initially the files are in: <root>/Eclipse.app/ + // and they must appear in <root>/MyAppName.app/ + // Because java does not support the rename of a folder, files are copied. - //Initialize the target folders + // Initialize the target folders File root = descriptor.getLocation(); File target = root; @@ -202,15 +207,16 @@ public class BrandingIron { initialRoot = new File(root, "eclipse.app/Contents"); //$NON-NLS-1$ if (!initialRoot.exists()) throw new FileNotFoundException("cannot find launcher root (Eclipse.app or Launcher.app)"); //$NON-NLS-1$ - // use the canonical rep to avoid possible issues from case-insensitive file systems + // use the canonical rep to avoid possible issues from case-insensitive file + // systems initialRoot = initialRoot.getCanonicalFile(); copyMacLauncher(descriptor, initialRoot, target); String iconName = ""; //$NON-NLS-1$ if (brandIcons) { File icon = null; for (String icon1 : icons) { - if (icon1.toLowerCase().endsWith(".icns")) { - //$NON-NLS-1$ + if (icon1.toLowerCase().endsWith(".icns")) { //$NON-NLS-1$ + // $NON-NLS-1$ icon = new File(icon1); if (icon.exists()) { break; @@ -223,7 +229,7 @@ public class BrandingIron { try { // canonicalize to ensure case matches initialIcon = initialIcon.getCanonicalFile(); - } catch (IOException e) { /*ignore*/ + } catch (IOException e) { /* ignore */ } File targetIcon = new File(target, "Resources/" + iconName); //$NON-NLS-1$ @@ -246,8 +252,9 @@ public class BrandingIron { } /** - * Brand the splash.app Info.plist and link or copy the mac launcher. - * It is assumed that the mac launcher has been branded already. + * Brand the splash.app Info.plist and link or copy the mac launcher. It is + * assumed that the mac launcher has been branded already. + * * @param descriptor * @param initialRoot * @param target @@ -255,9 +262,10 @@ public class BrandingIron { */ private void brandMacSplash(ExecutablesDescriptor descriptor, File initialRoot, File target, String iconName) { String splashContents = "Resources/Splash.app/Contents"; //$NON-NLS-1$ - modifyInfoPListFile(descriptor, new File(initialRoot, splashContents), new File(target, splashContents), iconName); + modifyInfoPListFile(descriptor, new File(initialRoot, splashContents), new File(target, splashContents), + iconName); - //link the MacOS launcher for the splash app + // link the MacOS launcher for the splash app String splashMacOS = splashContents + "/MacOS"; //$NON-NLS-1$ File macOSDir = new File(target, "MacOS"); //$NON-NLS-1$ File splashMacOSDir = new File(target, splashMacOS); @@ -270,7 +278,7 @@ public class BrandingIron { String osName = System.getProperty("os.name"); //$NON-NLS-1$ if (osName != null && !osName.startsWith("Windows")) { //$NON-NLS-1$ try { - String[] command = new String[] {"ln", "-sf", "../../../MacOS/" + name, name}; //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ + String[] command = new String[] { "ln", "-sf", "../../../MacOS/" + name, name }; //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$ Process proc = Runtime.getRuntime().exec(command, null, splashMacOSDir); result = proc.waitFor(); } catch (IOException e) { @@ -281,16 +289,16 @@ public class BrandingIron { } if (result != 0) { - //ln failed, or we are on windows, just copy the executable instead + // ln failed, or we are on windows, just copy the executable instead try { Utils.copy(new File(macOSDir, name), targetLauncher); try { - Runtime.getRuntime().exec(new String[] {"chmod", "755", targetLauncher.getAbsolutePath()}); //$NON-NLS-1$ //$NON-NLS-2$ + Runtime.getRuntime().exec(new String[] { "chmod", "755", targetLauncher.getAbsolutePath() }); //$NON-NLS-1$ //$NON-NLS-2$ } catch (IOException e) { // ignore } } catch (IOException e) { - System.out.println("Could not copy macosx splash launcher"); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Could not copy macosx splash launcher", e)); //$NON-NLS-1$ } } @@ -308,7 +316,7 @@ public class BrandingIron { } private File findLauncher(File root) { - for (String launcherName : new String[] {"launcher", "eclipse"}) { //$NON-NLS-1$ //$NON-NLS-2$ + for (String launcherName : new String[] { "launcher", "eclipse" }) { //$NON-NLS-1$ //$NON-NLS-2$ File launcher = new File(root, launcherName); if (launcher.exists()) return launcher; @@ -323,7 +331,7 @@ public class BrandingIron { source = source.getCanonicalFile(); target = target.getCanonicalFile(); } catch (IOException e) { - System.out.println("Could not copy macosx resources."); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Could not copy macosx resources.", e)); //$NON-NLS-1$ return; } if (source.equals(target)) @@ -363,7 +371,7 @@ public class BrandingIron { System.arraycopy(icons, 0, args, 1, icons.length); IconExe.main(args); } else { - System.out.println("Could not find executable to brand"); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Could not find executable to brand", null)); //$NON-NLS-1$ } } File targetLauncher = new File(root, name + ".exe"); //$NON-NLS-1$ @@ -392,7 +400,7 @@ public class BrandingIron { if (!launcher.exists()) { launcher = eclipseLauncher; } else if (eclipseLauncher.exists() && !targetFile.equals(eclipseLauncher)) { - //we may actually have both if exporting from the mac + // we may actually have both if exporting from the mac eclipseLauncher.delete(); descriptor.removeFile(eclipseLauncher); } @@ -400,7 +408,7 @@ public class BrandingIron { try { Utils.copy(launcher, targetFile); } catch (IOException e) { - System.out.println("Could not copy macosx launcher"); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Could not copy macosx launcher", e)); //$NON-NLS-1$ return; } launcher.delete(); @@ -408,10 +416,11 @@ public class BrandingIron { descriptor.replace(launcher, targetFile); } try { - //Force the executable bit on the exe because it has been lost when copying the file - Runtime.getRuntime().exec(new String[] {"chmod", "755", targetFile.getAbsolutePath()}); //$NON-NLS-1$ //$NON-NLS-2$ + // Force the executable bit on the exe because it has been lost when copying the + // file + Runtime.getRuntime().exec(new String[] { "chmod", "755", targetFile.getAbsolutePath() }); //$NON-NLS-1$ //$NON-NLS-2$ } catch (IOException e) { - //ignore + // ignore } descriptor.setExecutableName(name, false); } @@ -427,17 +436,17 @@ public class BrandingIron { private void copyMacIni(ExecutablesDescriptor descriptor, File initialRoot, File target, String iconName) { String brandedIniName = "MacOS/" + name + ".ini"; //$NON-NLS-1$//$NON-NLS-2$ // 4 possibilities, in order of preference: - // rcp.app/Contents/MacOS/rcp.ini (targetFile) - // Eclipse.app/Contents/MacOS/rcp.ini (brandedIni) - // Eclipse.app/Contents/MacOS/eclipse.ini (ini) - // Eclipse.app/Contents/MacOS/Eclipse.ini (ini2) + // rcp.app/Contents/MacOS/rcp.ini (targetFile) + // Eclipse.app/Contents/MacOS/rcp.ini (brandedIni) + // Eclipse.app/Contents/MacOS/eclipse.ini (ini) + // Eclipse.app/Contents/MacOS/Eclipse.ini (ini2) File targetFile = getCanonicalFile(new File(target, brandedIniName)); File brandedIni = getCanonicalFile(new File(initialRoot, brandedIniName)); File ini = getCanonicalFile(new File(initialRoot, "MacOS/eclipse.ini")); //$NON-NLS-1$ File ini2 = getCanonicalFile(new File(initialRoot, "MacOS/Eclipse.ini")); //$NON-NLS-1$ if (targetFile.exists()) { - //an ini already exists at the target, use that + // an ini already exists at the target, use that if (brandedIni.exists() && !brandedIni.equals(targetFile)) { brandedIni.delete(); descriptor.removeFile(brandedIni); @@ -452,7 +461,7 @@ public class BrandingIron { } ini = targetFile; } else if (brandedIni.exists()) { - //take the one that is already branded + // take the one that is already branded if (ini.exists() && !ini.equals(brandedIni)) { ini.delete(); descriptor.removeFile(ini); @@ -466,7 +475,10 @@ public class BrandingIron { if (ini.exists()) { if (ini2.exists() && !ini2.equals(ini)) { // this should not happen really - System.out.printf("Found both %s and %s - discarding the latter", ini.getAbsolutePath(), ini2.getAbsolutePath()); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, + String.format("Found both %s and %s - discarding the latter", ini.getAbsolutePath(), //$NON-NLS-1$ + ini2.getAbsolutePath()), + null)); // $NON-NLS-1$ ini2.delete(); descriptor.removeFile(ini2); } @@ -480,7 +492,7 @@ public class BrandingIron { try { buffer = readFile(ini); } catch (IOException e) { - System.out.println("Impossible to brand ini file"); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Impossible to brand ini file", e)); //$NON-NLS-1$ return; } @@ -498,22 +510,23 @@ public class BrandingIron { ini.delete(); descriptor.replace(ini, targetFile); } - } catch (FileNotFoundException e) { - System.out.println("Impossible to brand ini file"); //$NON-NLS-1$ - return; } catch (IOException e) { - System.out.println("Impossible to brand ini file"); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, "Impossible to brand ini file", e)); //$NON-NLS-1$ return; } } - private void modifyInfoPListFile(ExecutablesDescriptor descriptor, File initialRoot, File targetRoot, String iconName) { + private void modifyInfoPListFile(ExecutablesDescriptor descriptor, File initialRoot, File targetRoot, + String iconName) { File infoPList = new File(initialRoot, "Info.plist"); //$NON-NLS-1$ InfoPListEditor infoPListEditor = null; try { infoPListEditor = InfoPListEditor.loadPListEditor(infoPList); } catch (IOException e) { - System.out.println("Impossible to create info.plist editor for " + infoPList.getAbsolutePath() + ". Caused by " + e.getMessage()); //$NON-NLS-1$ //$NON-NLS-2$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, + "Impossible to create info.plist editor for " + infoPList.getAbsolutePath() //$NON-NLS-1$ + + ". Caused by " + e.getMessage(), //$NON-NLS-1$ + e)); return; } @@ -528,7 +541,8 @@ public class BrandingIron { if (version != null) { // CFBundleShortVersionString is to be 3 segments only // http://developer.apple.com/library/mac/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-111349 - StringBuilder sv = new StringBuilder(version.getSegmentCount() > 0 ? version.getSegment(0).toString() : "0"); //$NON-NLS-1$ + StringBuilder sv = new StringBuilder( + version.getSegmentCount() > 0 ? version.getSegment(0).toString() : "0"); //$NON-NLS-1$ sv.append('.'); sv.append(version.getSegmentCount() > 1 ? version.getSegment(1).toString() : "0"); //$NON-NLS-1$ sv.append('.'); @@ -541,25 +555,26 @@ public class BrandingIron { infoPListEditor.setKey(InfoPListEditor.ICON_KEY, iconName); } - File target = new File(targetRoot, "Info.plist"); //$NON-NLS-1$; + File target = new File(targetRoot, "Info.plist"); //$NON-NLS-1$ ; try { target.getParentFile().mkdirs(); infoPListEditor.save(target); } catch (TransformerException e) { - System.out.println("Impossible to save info.plist file " + target.getAbsolutePath()); //$NON-NLS-1$ + LogHelper.log(new Status(IStatus.ERROR, Activator.ID, + "Impossible to save info.plist file " + target.getAbsolutePath(), e)); //$NON-NLS-1$ return; } try { if (!infoPList.getCanonicalFile().equals(target.getCanonicalFile())) infoPList.delete(); } catch (IOException e) { - //ignore + // ignore } descriptor.replace(infoPList, target); } private int scan(StringBuffer buf, int start, String targetName) { - return scan(buf, start, new String[] {targetName}); + return scan(buf, start, new String[] { targetName }); } private int scan(StringBuffer buf, int start, String[] targets) { |