private static URL getURL(String version) { StringBuilder url = new StringBuilder(); url.append("https://releases.hashicorp.com/vault/").append(version).append("/vault_").append(version).append("_"); if (SystemUtils.IS_OS_MAC) { url.append("darwin_"); } else if (SystemUtils.IS_OS_LINUX) { url.append("linux_"); } else if (SystemUtils.IS_OS_WINDOWS) { url.append("windows_"); } else { throw new IllegalStateException("Unsupported operating system"); } if (ArchUtils.getProcessor().is64Bit()) { url.append("amd64.zip"); } else { url.append("386.zip"); } System.out.println("Downloading " + url.toString()); try { return new URL(url.toString()); } catch (Exception e) { throw new RuntimeException(e); } }
public void reportError(Exception e) { Validate.notNull(e, "Called NekoooGuilds.reportError() with null argument."); // TODO: Log4j? StringBuilder s = new StringBuilder("\n!!! ERROR REPORT !!! -- REPORT START -- Copy from here ---\n"); s.append("\nAn error occured while ").append(state.name().toLowerCase()).append(" NekoooGuilds.\n\n"); StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw)); s.append("Server implementation: ").append(serverType.name()).append(" (version ").append(bridge.getApiVersion()).append(")\n"); s.append("Plugin version: ").append(bridge.getPluginVersion()).append("\n"); File propsfile = new File("addon.prop"); s.append("JVM: ").append(System.getProperty("java.vendor")).append(" ").append(System.getProperty("java.version")).append("\n"); s.append("Operating System: ").append(System.getProperty("os.name")).append(" ").append(System.getProperty("os.version")).append("\n"); s.append("Architecture: ").append(ArchUtils.getProcessor()).append("\n"); s.append("PropertyLoader: ").append(Boolean.toString(propsfile.exists() && propsfile.isFile())).append("\n"); s.append("\nStacktrace:\n").append(sw.toString()).append("\n"); s.append("!!! ERROR REPORT !!! -- REPORT END -- Copy to there ---"); System.out.println(s); try { File nr = new File("ng-reports"); if (!nr.exists()) { nr.mkdir(); } else { if (!nr.isDirectory()) { nr.delete(); nr.mkdir(); } } Date now = new Date(); SimpleDateFormat ft = new SimpleDateFormat("ddMMyyyy-hhmmssSS"); File report = new File(nr, "report-" + ft.format(now) + ".log.gz"); FileOutputStream o = new FileOutputStream(report); try { Writer writer = new OutputStreamWriter(new GZIPOutputStream(o), "UTF-8"); try { writer.write(s.toString()); } finally { writer.close(); } } finally { o.close(); log.info("Report saved to: " + report.getPath()); } } catch (Exception eee) { log.severe("Error saving error report!"); } }
private void setupWindow() { setTitle("JRE Update Available"); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setResizable(false); setIconImages(ModManager.ICONS); JPanel updatePanel = new JPanel(); updatePanel.setLayout(new BoxLayout(updatePanel, BoxLayout.Y_AXIS)); introLabel = new JLabel(); introLabel.setText("<html>An update for Mod Manager's Java Runtime is available.</html>"); String bitnessUpgrade = ""; boolean x86 = ArchUtils.getProcessor().is32Bit(); if (x86 && ResourceUtils.is64BitWindows()) { bitnessUpgrade = "<br>This will upgrade Mod Manager from 32-bit java to 64-bit java."; } if (!x86 && !ModManager.isUsingBundledJRE()) { bitnessUpgrade = "<br>This will switch Mod Manager from using your system JRE to a bundled version."; } versionsLabel = new JLabel("<html>Local Version: " + System.getProperty("java.version") + "<br>" + "Latest Version: " + version + bitnessUpgrade + "</html>"); String release_notes = (String) updateInfo.get("jre_latest_release_notes"); changelogLabel = new JLabel("<html><div style=\"width:270px;\">" + release_notes + "</div></html>"); updateButton = new JButton("Install Update"); updateButton.addActionListener(this); notNowButton = new JButton("Not now"); notNowButton.addActionListener(this); downloadProgress = new JProgressBar(); downloadProgress.setStringPainted(true); downloadProgress.setIndeterminate(true); downloadProgress.setEnabled(false); sizeLabel = new JLabel(" "); //space or it won't pack properly sizeLabel.setAlignmentX(Component.LEFT_ALIGNMENT); //Panel setup JPanel versionPanel = new JPanel(); versionPanel.setLayout(new BoxLayout(versionPanel, BoxLayout.Y_AXIS)); versionPanel.add(versionsLabel); versionPanel.setBorder(new TitledBorder(new EtchedBorder(), "Update Information")); JPanel changeLogPanel = new JPanel(); changeLogPanel.setLayout(new BoxLayout(changeLogPanel, BoxLayout.Y_AXIS)); changeLogPanel.setBorder(new TitledBorder(new EtchedBorder(), "Changelog")); updatePanel.add(introLabel); updatePanel.add(versionPanel); changeLogPanel.add(changelogLabel); updatePanel.add(changeLogPanel); updatePanel.setBorder(new EmptyBorder(5, 5, 5, 5)); JPanel actionPanel = new JPanel(); actionPanel.setLayout(new BoxLayout(actionPanel, BoxLayout.X_AXIS)); actionPanel.add(updateButton); actionPanel.add(Box.createHorizontalGlue()); actionPanel.setBorder(new TitledBorder(new EtchedBorder(), "Actions")); actionPanel.setAlignmentX(Component.LEFT_ALIGNMENT); updatePanel.add(actionPanel); downloadPanel = new JPanel(); downloadPanel.setLayout(new BoxLayout(downloadPanel, BoxLayout.Y_AXIS)); downloadPanel.add(downloadProgress); downloadPanel.add(sizeLabel); downloadPanel.setBorder(new TitledBorder(new EtchedBorder(), "Download Progress")); downloadPanel.setVisible(false); updatePanel.add(downloadPanel); actionPanel.setAlignmentX(Component.LEFT_ALIGNMENT); downloadPanel.setAlignmentX(Component.LEFT_ALIGNMENT); versionPanel.setAlignmentX(Component.LEFT_ALIGNMENT); changeLogPanel.setAlignmentX(Component.LEFT_ALIGNMENT); updatePanel.setAlignmentX(Component.LEFT_ALIGNMENT); getContentPane().add(updatePanel); pack(); setLocationRelativeTo(ModManagerWindow.ACTIVE_WINDOW); }
private void checkForJREUpdates(JSONObject latest_object) { if (!ResourceUtils.is64BitWindows()) { return; } if (latest_object == null) { return; } String latestjavaexehash = (String) latest_object.get("jre_latest_version"); if (ModManager.isUsingBundledJRE() || ResourceUtils.is64BitWindows() && ArchUtils.getProcessor().is32Bit()) { //32-bit JVM on 64-bit windows - should check //Is using the bundled x64 JRE - should check boolean hashMismatch = false; File f = new File(ModManager.getBundledJREPath() + "bin\\java.exe"); if (f.exists()) { //get hash String bundledHash = ""; try { bundledHash = MD5Checksum.getMD5Checksum(f.getAbsolutePath()); } catch (Exception e) { ModManager.debugLogger.writeErrorWithException("Unable to hash java.exe. Due to the significance of this issue, we are not going to attempt a JRE update.", e); return; } if (!bundledHash.equals(latestjavaexehash)) { hashMismatch = true; ModManager.debugLogger.writeMessage("Bundled JRE hash does not match server - likely out of date."); } } else { //doesn't exist - failed hash check hashMismatch = true; ModManager.debugLogger.writeMessage("Bundled JRE does not exist, but we should be using one."); } if (hashMismatch) { new UpdateJREAvailableWindow(latest_object); } else { ModManager.debugLogger.writeMessage("No JRE upgrade recommended"); } } }