@Override public void handleContextRefreshedEvent(ContextRefreshedEvent event) { if (!sender.isEnabled()) { return; } Set<String> addresses = sender.getAllSystemUsers(true); sender.sendBlind(addresses, "Server started"); }
protected void sendBlind(Set<String> addresses, String subject) { sendBlind(addresses, subject, getDefaultBody()); }
protected Set<String> getAllSystemUsers(boolean newTx) { Set<String> addresses = new HashSet<String>(); if (newTx) { loadFromAction(addresses); } else { loadFromQuery(addresses); } return addresses; }
protected void sendBlind(Set<String> addresses, String subject, String body) { if (!isEnabled()) { // Printing warning since the enabled mail check should happen // as early as possible to prevent wasting resources. log.warn("sendBlind called when mail is disabled."); return; } if (addresses == null || addresses.isEmpty()) { log.debug("No emails found."); return; } for (String address : addresses) { try { // TODO: send in background thread getMailUtil().sendEmail(address, getSubjectPrefix() + subject, body, false /* not html */, null, null); } catch (Exception e) { log.error("Failed to send email: {} ", address, e); } } }
private void loadFromQuery(Set<String> addresses) { for (Object[] o : getQueryService().projection( "select e.email from Experimenter e " + "join e.groupExperimenterMap m " + "join m.parent g where g.id = :id", new Parameters().addId(getRoles().getSystemGroupId()))) { if (o != null && o.length >= 1 && o[0] != null) { String email = o[0].toString(); if (!email.isEmpty()) { addresses.add(email); } } } }
protected String getUserEmail(String user) { Experimenter e = getQueryService().findByString(Experimenter.class, "omeName", user); if (e == null) { return null; } return e.getEmail(); }