You're right,developers include commiters (this is a very brief reference in 'MailContinuumNotifier.java' when I say ' // Developers constains committers.', all I see is not clear, so I will update comments in code) in the code this is handled correctly, but does not showed in any way in UI. A possible solution would be a 'select' where you could select 'developers / commiters', another option would be a comment on an info icon or improve documentation.
Do you have any suggestions for UI? 2009/8/22 Brett Porter <br...@apache.org> > Hi, > > I think this is very confusing... the developers/committers are checkboxes > meaning both can be ticked - but since the committers are a subset that no > longer means anything. It took me a while to figure out why the code was > skipping that bit. > > Do you think we can make this clearer from the UI / code comments in some > way? > > - Brett > > On 05/08/2009, at 5:13 AM, jmora...@apache.org wrote: > > Author: jmorales >> Date: Wed Aug 5 09:13:25 2009 >> New Revision: 801098 >> >> URL: http://svn.apache.org/viewvc?rev=801098&view=rev >> Log: >> [CONTINUUM-493] Allow to add all developpers address in a notifier without >> duplicate developpers addresses. >> >> Modified: >> >> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java >> >> continuum/trunk/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java >> >> continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java >> >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java >> >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java >> >> continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties >> >> continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierMail.jsp >> >> Modified: >> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java >> URL: >> http://svn.apache.org/viewvc/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java?rev=801098&r1=801097&r2=801098&view=diff >> >> ============================================================================== >> --- >> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java >> (original) >> +++ >> continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java >> Wed Aug 5 09:13:25 2009 >> @@ -720,10 +720,32 @@ >> >> } >> >> - String committerField = (String) >> notifier.getConfiguration().get( COMMITTER_FIELD ); >> - if ( StringUtils.isNotEmpty( committerField ) && >> context.getBuildResult() != null ) >> + if (context.getBuildResult() != null) >> { >> - if ( Boolean.parseBoolean( committerField ) ) >> + String committerField = (String) >> notifier.getConfiguration().get(COMMITTER_FIELD); >> + String developerField = (String) >> notifier.getConfiguration().get(DEVELOPER_FIELD); >> + // Developers constains committers. >> + if (StringUtils.isNotEmpty(developerField) && >> Boolean.parseBoolean(developerField)) >> + { >> + List<ProjectDeveloper> developers = >> project.getDevelopers(); >> + if (developers == null || >> developers.isEmpty()) >> + { >> + log.warn("No developers have been >> configured...notifcation email will not be sent"); >> + return; >> + } >> + Map<String, String> developerToEmailMap = >> mapDevelopersToRecipients(developers); >> + for (String email : >> developerToEmailMap.values()) >> + { >> + if >> (!listRecipents.contains(email.trim())) >> + { >> + InternetAddress to = new >> InternetAddress(email.trim()); >> + log.info("Recipient: To '" + to >> + "'."); >> + message.addRecipient( >> Message.RecipientType.TO, to); >> + listRecipents.add(email.trim()); >> + } >> + } >> + } >> + else if >> (StringUtils.isNotEmpty(committerField) && >> Boolean.parseBoolean(committerField)) >> { >> ScmResult scmResult = >> context.getBuildResult().getScmResult(); >> if ( scmResult != null && >> scmResult.getChanges() != null && >> >> Modified: >> continuum/trunk/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java >> URL: >> http://svn.apache.org/viewvc/continuum/trunk/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java?rev=801098&r1=801097&r2=801098&view=diff >> >> ============================================================================== >> --- >> continuum/trunk/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java >> (original) >> +++ >> continuum/trunk/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java >> Wed Aug 5 09:13:25 2009 >> @@ -49,6 +49,8 @@ >> >> public static final String COMMITTER_FIELD = "committers"; >> >> + public static final String DEVELOPER_FIELD = "developers"; >> + >> private static final Logger log = LoggerFactory.getLogger( >> AbstractContinuumNotifier.class ); >> >> @Resource >> >> Modified: >> continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java >> URL: >> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java?rev=801098&r1=801097&r2=801098&view=diff >> >> ============================================================================== >> --- >> continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java >> (original) >> +++ >> continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java >> Wed Aug 5 09:13:25 2009 >> @@ -62,6 +62,15 @@ >> } >> } >> } >> + if >> (StringUtils.isNotEmpty(configuration.get(AbstractContinuumNotifier.DEVELOPER_FIELD))) >> { >> + if >> (Boolean.parseBoolean(configuration.get(AbstractContinuumNotifier.DEVELOPER_FIELD))) >> { >> + if ("unknown".equals(recipent)) { >> + recipent = "project developers"; >> + } else { >> + recipent += ", " + "project developers"; >> + } >> + } >> + } >> } >> if ( "irc".equals( notifier.getType() ) ) >> { >> >> Modified: >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java >> URL: >> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java?rev=801098&r1=801097&r2=801098&view=diff >> >> ============================================================================== >> --- >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java >> (original) >> +++ >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailGroupNotifierEditAction.java >> Wed Aug 5 09:13:25 2009 >> @@ -43,6 +43,8 @@ >> >> private boolean committers; >> >> + private boolean developers; >> + >> protected void initConfiguration( Map<String, String> configuration ) >> { >> if ( StringUtils.isNotEmpty( configuration.get( >> AbstractContinuumNotifier.ADDRESS_FIELD ) ) ) >> @@ -54,6 +56,11 @@ >> { >> committers = Boolean.parseBoolean( configuration.get( >> AbstractContinuumNotifier.COMMITTER_FIELD ) ); >> } >> + >> + if >> (StringUtils.isNotEmpty(configuration.get(AbstractContinuumNotifier.DEVELOPER_FIELD))) >> + { >> + developers = >> Boolean.parseBoolean(configuration.get(AbstractContinuumNotifier.DEVELOPER_FIELD)); >> + } >> } >> >> protected void setNotifierConfiguration( ProjectNotifier notifier ) >> @@ -67,6 +74,8 @@ >> >> configuration.put( AbstractContinuumNotifier.COMMITTER_FIELD, >> String.valueOf( committers ) ); >> >> + configuration.put(AbstractContinuumNotifier.DEVELOPER_FIELD, >> String.valueOf(developers)); >> + >> notifier.setConfiguration( configuration ); >> } >> >> @@ -89,4 +98,14 @@ >> { >> this.committers = committers; >> } >> + >> + public boolean isDevelopers() >> + { >> + return developers; >> + } >> + >> + public void setDevelopers(boolean developers) >> + { >> + this.developers = developers; >> + } >> } >> >> Modified: >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java >> URL: >> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java?rev=801098&r1=801097&r2=801098&view=diff >> >> ============================================================================== >> --- >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java >> (original) >> +++ >> continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/MailProjectNotifierEditAction.java >> Wed Aug 5 09:13:25 2009 >> @@ -43,6 +43,8 @@ >> >> private boolean committers; >> >> + private boolean developers; >> + >> protected void initConfiguration( Map<String, String> configuration ) >> { >> if ( StringUtils.isNotEmpty( configuration.get( >> AbstractContinuumNotifier.ADDRESS_FIELD ) ) ) >> @@ -54,6 +56,11 @@ >> { >> committers = Boolean.parseBoolean( configuration.get( >> AbstractContinuumNotifier.COMMITTER_FIELD ) ); >> } >> + >> + if >> (StringUtils.isNotEmpty(configuration.get(AbstractContinuumNotifier.DEVELOPER_FIELD))) >> + { >> + developers = >> Boolean.parseBoolean(configuration.get(AbstractContinuumNotifier.DEVELOPER_FIELD)); >> + } >> } >> >> protected void setNotifierConfiguration( ProjectNotifier notifier ) >> @@ -67,6 +74,8 @@ >> >> configuration.put( AbstractContinuumNotifier.COMMITTER_FIELD, >> String.valueOf( committers ) ); >> >> + configuration.put(AbstractContinuumNotifier.DEVELOPER_FIELD, >> String.valueOf(developers)); >> + >> notifier.setConfiguration( configuration ); >> } >> >> @@ -89,4 +98,14 @@ >> { >> this.committers = committers; >> } >> + >> + public boolean isDevelopers() >> + { >> + return developers; >> + } >> + >> + public void setDevelopers(boolean developers) >> + { >> + this.developers = developers; >> + } >> } >> >> Modified: >> continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties >> URL: >> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=801098&r1=801097&r2=801098&view=diff >> >> ============================================================================== >> --- >> continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties >> (original) >> +++ >> continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties >> Wed Aug 5 09:13:25 2009 >> @@ -501,6 +501,7 @@ >> notifier.type.label = Type >> notifier.mail.recipient.address.label = Mail Recipient Address >> notifier.mail.recipient.committers.label = Send a mail to latest >> committers >> +notifier.mail.recipient.developers.label = Send a mail to project >> developers >> notifier.irc.host.label = IRC Host >> notifier.irc.port.label = IRC port >> notifier.irc.channel.label = IRC channel >> >> Modified: >> continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierMail.jsp >> URL: >> http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierMail.jsp?rev=801098&r1=801097&r2=801098&view=diff >> >> ============================================================================== >> --- >> continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierMail.jsp >> (original) >> +++ >> continuum/trunk/continuum-webapp/src/main/webapp/WEB-INF/jsp/notifier/notifierMail.jsp >> Wed Aug 5 09:13:25 2009 >> @@ -57,6 +57,7 @@ >> <tbody> >> <s:textfield >> label="%{getText('notifier.mail.recipient.address.label')}" name="address" >> /> >> <s:checkbox >> label="%{getText('notifier.mail.recipient.committers.label')}" >> name="committers" value="committers" fieldValue="true"/> >> + <s:checkbox >> label="%{getText('notifier.mail.recipient.developers.label')}" >> name="developers" value="developers" fieldValue="true"/> >> <s:checkbox >> label="%{getText('notifier.event.sendOnSuccess')}" name="sendOnSuccess" >> value="sendOnSuccess" fieldValue="true"/> >> <s:checkbox >> label="%{getText('notifier.event.sendOnFailure')}" name="sendOnFailure" >> value="sendOnFailure" fieldValue="true"/> >> <s:checkbox >> label="%{getText('notifier.event.sendOnError')}" name="sendOnError" >> value="sendOnError" fieldValue="true"/> >> >> >> > -- -------- Jose