private void createProfileBinarySigFile(final SignatureFileInfo binarySigFile, final ProfileInstance profile, final Path profileHomeDir) { if (binarySigFile != null) { profile.setSignatureFileVersion(binarySigFile.getVersion()); profile.setSignatureFileName(FileUtil.fileName(binarySigFile.getFile())); copySignatureFile(binarySigFile.getFile(), profileHomeDir); } }
private static SignatureFileInfo forSimpleVersionedFile(File file, SignatureType type) throws SignatureFileException { // parse the version from the filename String filename = FilenameUtils.getBaseName(file.getName()); try { int version = Integer.valueOf(StringUtils.substringAfterLast(filename, "-")); final SignatureFileInfo signatureFileInfo = new SignatureFileInfo(version, false, type); signatureFileInfo.setFile(file); return signatureFileInfo; } catch (NumberFormatException e) { String message = String.format("Invalid signature filename [%s]", file.getName()); throw new SignatureFileException(message, e, ErrorCode.INVALID_SIGNATURE_FILE); } }
/** * {@inheritDoc} */ @Override public void execute() throws CommandExecutionException { try { Map<SignatureType, SignatureFileInfo> sigFileInfos = signatureManager.getDefaultSignatures(); for (SignatureFileInfo info : sigFileInfos.values()) { printWriter.println(I18N.getResource(I18N.DEFAULT_SIGNATURE_VERSION, info.getType(), info.getVersion(), info.getFile().getFileName().toString())); } } catch (SignatureFileException e) { throw new CommandExecutionException(e); } }
/** * Shows the 'update available' YES_NO dialog. * @param parent the parent of the dialog * @param sigFileInfo signature file available * @return the dialog response */ static int showUpdateAvailableDialog(Frame parent, SignatureFileInfo sigFileInfo) { return JOptionPane.showConfirmDialog( parent, String.format("%s signature update v.%s is available. Do you want to download it?", sigFileInfo.getType(), sigFileInfo.getVersion()), SIGNATURE_UPDATE, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); }
/** * {@inheritDoc} */ @Override protected Map<SignatureType, SignatureFileInfo> doInBackground() throws SignatureManagerException { Map<SignatureType, SignatureFileInfo> downloaded = new HashMap<SignatureType, SignatureFileInfo>(); for (SignatureFileInfo update : updates) { if (!update.hasError()) { downloaded.put(update.getType(), signatureManager.downloadLatest(update.getType())); } } return downloaded; }
SignatureFileInfo latestUpdate = updateService.getLatestVersion(latestVersionForType); if (latestUpdate != null && latestUpdate.getVersion() > 0 && !signaturesForType.containsValue(latestUpdate)) { latestSigFiles.put(type, latestUpdate); latestSigFiles.put(type, new SignatureFileInfo(e));
/** * Executes this action. * @param parent the parent window */ public void execute(Window parent) { final Path f = Paths.get(fileName); try { final SignatureFileInfo info = signatureManager.install(type, f, useAsDefault); final String message = String.format("Signature file %s has been installed", info.getFile().getFileName().toString()); JOptionPane.showMessageDialog(parent, message, "Signature file installed", JOptionPane.INFORMATION_MESSAGE); } catch (final SignatureFileException e) { JOptionPane.showMessageDialog(parent, e.getMessage(), "Error installing signature file", JOptionPane.ERROR_MESSAGE); } }
private int getLatestVersionForType(SignatureType type, Map<String, SignatureFileInfo> signatures) { int result = 0; for (String key : signatures.keySet()) { SignatureFileInfo info = signatures.get(key); if (info.getVersion() > result) { result = info.getVersion(); } } return result; }
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (ROOT_ELEMENT.equals(qName)) { int version = Integer.valueOf(attributes.getValue("Version")); SignatureFileInfo info = new SignatureFileInfo(version, false, SignatureType.BINARY); throw new ValidSignatureFileException(info); } throw new SAXException( String.format("Invalid signature file - root element was not [%s]", ROOT_ELEMENT)); }
private static SignatureFileInfo forBinarySigFile(final Path file, final SignatureInfoParser parser) throws SignatureFileException { final SignatureFileInfo signatureFileInfo = parser.parse(file); signatureFileInfo.setFile(file); return signatureFileInfo; }
/** * @param newSignaureUpdateAction */ private List<SignatureFileInfo> promptForUpdate(final Collection<SignatureFileInfo> signatureFileInfos) { List<SignatureFileInfo> filesToUpdate = new ArrayList<SignatureFileInfo>(); for (SignatureFileInfo sigFileInfo : signatureFileInfos) { if (sigFileInfo.hasError()) { DialogUtils.showSignatureUpdateErrorDialog(this, sigFileInfo.getError()); } else { if (DialogUtils.showUpdateAvailableDialog(this, sigFileInfo) == JOptionPane.YES_OPTION) { filesToUpdate.add(sigFileInfo); } } } return filesToUpdate; }
/** * {@inheritDoc} */ @Override public void execute() throws CommandExecutionException { try { Map<SignatureType, SignatureFileInfo> signatureFileInfos = signatureManager.getLatestSignatureFiles(); if (signatureFileInfos.isEmpty()) { printWriter.println(I18N.getResource(I18N.CHECK_SIGNATURE_UPDATE_UNAVAILABLE)); } else { for (SignatureFileInfo sigFileInfo : signatureFileInfos.values()) { printWriter.println(I18N.getResource(I18N.CHECK_SIGNATURE_UPDATE_SUCCESS, sigFileInfo.getType(), sigFileInfo)); } } } catch (SignatureManagerException e) { throw new CommandExecutionException(I18N.getResource(I18N.CHECK_SIGNATURE_UPDATE_ERROR, e.getCause().getMessage(), e.getCauseType(), e.getCauseMessage()), e.getCause()); } }
/** * Shows the 'update available' YES_NO dialog. * @param parent the parent of the dialog * @param sigFileInfo signature file available * @return the dialog response */ static int showUpdateAvailableDialog(Frame parent, SignatureFileInfo sigFileInfo) { return JOptionPane.showConfirmDialog( parent, String.format("%s signature update v.%s is available. Do you want to download it?", sigFileInfo.getType(), sigFileInfo.getVersion()), SIGNATURE_UPDATE, JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); }
SignatureFileInfo latestUpdate = updateService.getLatestVersion(latestVersionForType); if (latestUpdate != null && latestUpdate.getVersion() > 0 && !signaturesForType.containsValue(latestUpdate)) { latestSigFiles.put(type, latestUpdate); latestSigFiles.put(type, new SignatureFileInfo(e));
/** * Executes this action. * @param parent the parent window */ public void execute(Window parent) { File f = new File(fileName); try { SignatureFileInfo info = signatureManager.install(type, f, useAsDefault); String message = String.format("Signature file %s has been installed", info.getFile().getName()); JOptionPane.showMessageDialog(parent, message, "Signature file installed", JOptionPane.INFORMATION_MESSAGE); } catch (SignatureFileException e) { JOptionPane.showMessageDialog(parent, e.getMessage(), "Error installing signature file", JOptionPane.ERROR_MESSAGE); } }
private int getLatestVersionForType(SignatureType type, Map<String, SignatureFileInfo> signatures) { int result = 0; for (String key : signatures.keySet()) { SignatureFileInfo info = signatures.get(key); if (info.getVersion() > result) { result = info.getVersion(); } } return result; }
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if (ROOT_ELEMENT.equals(qName)) { int version = Integer.valueOf(attributes.getValue("Version")); SignatureFileInfo info = new SignatureFileInfo(version, false, SignatureType.BINARY); throw new ValidSignatureFileException(info); } throw new SAXException( String.format("Invalid signature file - root element was not [%s]", ROOT_ELEMENT)); }
/** * {@inheritDoc} */ @Override protected Map<SignatureType, SignatureFileInfo> doInBackground() throws SignatureManagerException { Map<SignatureType, SignatureFileInfo> downloaded = new HashMap<SignatureType, SignatureFileInfo>(); for (SignatureFileInfo update : updates) { if (!update.hasError()) { downloaded.put(update.getType(), signatureManager.downloadLatest(update.getType())); } } return downloaded; }
private static SignatureFileInfo forBinarySigFile(File file, SignatureInfoParser parser) throws SignatureFileException { final SignatureFileInfo signatureFileInfo = parser.parse(file); signatureFileInfo.setFile(file); return signatureFileInfo; }
/** * @param signatureFileInfos */ private List<SignatureFileInfo> promptForUpdate(final Collection<SignatureFileInfo> signatureFileInfos) { List<SignatureFileInfo> filesToUpdate = new ArrayList<>(); for (SignatureFileInfo sigFileInfo : signatureFileInfos) { if (sigFileInfo.hasError()) { DialogUtils.showSignatureUpdateErrorDialog(this, sigFileInfo.getError()); } else { if (DialogUtils.showUpdateAvailableDialog(this, sigFileInfo) == JOptionPane.YES_OPTION) { filesToUpdate.add(sigFileInfo); } } } return filesToUpdate; }