You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ct...@apache.org on 2009/03/20 17:25:46 UTC
svn commit: r756580 - in /continuum/trunk/continuum-webapp/src/main:
java/org/apache/continuum/web/util/
java/org/apache/maven/continuum/web/action/
java/org/apache/maven/continuum/web/action/component/
java/org/apache/maven/continuum/web/action/notifi...
Author: ctan
Date: Fri Mar 20 16:25:46 2009
New Revision: 756580
URL: http://svn.apache.org/viewvc?rev=756580&view=rev
Log:
[CONTINUUM-2134] display "latest committers" as recipient instead of empty string for 'send to latest committers' notification
Submitted By: Jose Morales Martinez
Slight modification: move GenerateRecipientNotifier to org.apache.continuum.web.util package
Added:
continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/
continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java (with props)
Modified:
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java
continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java
continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
continuum/trunk/continuum-webapp/src/main/resources/struts.xml
Added: 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=756580&view=auto
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java (added)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java Fri Mar 20 16:25:46 2009
@@ -0,0 +1,81 @@
+package org.apache.continuum.web.util;
+
+import java.util.Map;
+
+import org.apache.maven.continuum.model.project.ProjectNotifier;
+import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
+import org.codehaus.plexus.util.StringUtils;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/**
+ * @author José Morales MartÃnez
+ * @version $Id$
+ */
+public final class GenerateRecipentNotifier
+{
+ private GenerateRecipentNotifier()
+ {
+
+ }
+
+ @SuppressWarnings( "unchecked" )
+ public static String generate( ProjectNotifier notifier )
+ {
+ Map configuration = notifier.getConfiguration();
+ String recipent = "unknown";
+ if ( ( "mail".equals( notifier.getType() ) ) || ( "msn".equals( notifier.getType() ) )
+ || ( "jabber".equals( notifier.getType() ) ) )
+ {
+ if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD ) ) )
+ {
+ recipent = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
+ }
+ if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
+ {
+ if ( Boolean.parseBoolean( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
+ {
+ if ( "unknown".equals( recipent ) )
+ {
+ recipent = "latest committers";
+ }
+ else
+ {
+ recipent += ", " + "latest committers";
+ }
+ }
+ }
+ }
+ if ( "irc".equals( notifier.getType() ) )
+ {
+ recipent = (String) configuration.get( "host" );
+ if ( configuration.get( "port" ) != null )
+ {
+ recipent = recipent + ":" + (String) configuration.get( "port" );
+ }
+ recipent = recipent + ":" + (String) configuration.get( "channel" );
+ }
+ if ( "wagon".equals( notifier.getType() ) )
+ {
+ recipent = (String) configuration.get( "url" );
+ }
+ return recipent;
+ }
+}
Propchange: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: continuum/trunk/continuum-webapp/src/main/java/org/apache/continuum/web/util/GenerateRecipentNotifier.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java?rev=756580&r1=756579&r2=756580&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddProjectAction.java Fri Mar 20 16:25:46 2009
@@ -19,7 +19,11 @@
* under the License.
*/
-import com.opensymphony.xwork2.Validateable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
import org.apache.maven.continuum.Continuum;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.builddefinition.BuildDefinitionServiceException;
@@ -34,11 +38,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
/**
* @author Nick Gonzalez
* @version $Id$
@@ -46,7 +45,6 @@
*/
public class AddProjectAction
extends ContinuumActionSupport
- implements Validateable
{
private Logger logger = LoggerFactory.getLogger( this.getClass() );
@@ -91,49 +89,24 @@
public void validate()
{
- boolean projectNameAlreadyExist = false;
-
clearErrorsAndMessages();
-
try
{
- if ( ( projectName.trim().length() > 0 ) && ( projectVersion.trim().length() > 0 ) &&
- ( projectScmUrl.trim().length() > 0 ) )
+ if ( !( projectName.trim().length() > 0 ) )
{
- Iterator<Project> projects = getContinuum().getProjects().iterator();
- while ( projects.hasNext() )
- {
- Project project = projects.next();
- // CONTINUUM-1445
- if ( StringUtils.equalsIgnoreCase( project.getName(), projectName.trim() ) &&
- StringUtils.equalsIgnoreCase( project.getVersion(), projectVersion.trim() ) &&
- StringUtils.equalsIgnoreCase( project.getScmUrl(), projectScmUrl.trim() ) )
- {
- projectNameAlreadyExist = true;
- break;
- }
- }
- if ( projectNameAlreadyExist )
- {
- addActionError( getText( "projectName.already.exist.error" ) );
- this.input();
- }
+ addActionError( getText( "addProject.name.required" ) );
}
- else
+ if ( !( projectVersion.trim().length() > 0 ) )
+ {
+ addActionError( getText( "addProject.version.required" ) );
+ }
+ if ( !( projectScmUrl.trim().length() > 0 ) )
+ {
+ addActionError( getText( "addProject.scmUrl.required" ) );
+ }
+ if ( hasActionErrors() )
{
- if ( !( projectName.trim().length() > 0 ) )
- {
- addActionError( getText( "addProject.name.required" ) );
- }
- if ( !( projectVersion.trim().length() > 0 ) )
- {
- addActionError( getText( "addProject.version.required" ) );
- }
- if ( !( projectScmUrl.trim().length() > 0 ) )
- {
- addActionError( getText( "addProject.scmUrl.required" ) );
- }
- this.input();
+ input();
}
}
catch ( ContinuumException e )
@@ -168,18 +141,33 @@
return REQUIRES_AUTHORIZATION;
}
+ String projectNameTrim = projectName.trim();
+ String versionTrim = projectVersion.trim();
+ String scmTrim = projectScmUrl.trim();
+ for ( Project project : getContinuum().getProjects() )
+ {
+ // CONTINUUM-1445
+ if ( StringUtils.equalsIgnoreCase( project.getName(), projectNameTrim )
+ && StringUtils.equalsIgnoreCase( project.getVersion(), versionTrim )
+ && StringUtils.equalsIgnoreCase( project.getScmUrl(), scmTrim ) )
+ {
+ addActionError( getText( "projectName.already.exist.error" ) );
+ return INPUT;
+ }
+ }
+
Project project = new Project();
- project.setName( projectName.trim() );
+ project.setName( projectNameTrim );
if ( projectDescription != null )
{
project.setDescription( projectDescription.trim() );
}
- project.setVersion( projectVersion.trim() );
+ project.setVersion( versionTrim );
- project.setScmUrl( projectScmUrl.trim() );
+ project.setScmUrl( scmTrim );
project.setScmUsername( projectScmUsername );
@@ -243,7 +231,7 @@
}
this.profiles = profileService.getAllProfiles();
buildDefinitionTemplates = getContinuum().getBuildDefinitionService().getAllBuildDefinitionTemplate();
- return SUCCESS;
+ return INPUT;
}
private void initializeProjectGroupName()
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java?rev=756580&r1=756579&r2=756580&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/component/NotifierSummaryAction.java Fri Mar 20 16:25:46 2009
@@ -22,23 +22,21 @@
* under the License.
*/
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.continuum.web.util.GenerateRecipentNotifier;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
import org.apache.maven.continuum.web.action.ContinuumActionSupport;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
import org.apache.maven.continuum.web.model.NotifierSummary;
-import org.codehaus.plexus.util.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
/**
* Component Action that prepares and provides Project Group Notifier and
* Project Notifier summaries.
@@ -247,50 +245,7 @@
ns.setFromProject( false );
}
- // Source the recipient
- Map configuration = notifier.getConfiguration();
-
- String recipient = "unknown";
-
- if ( ( "mail".equals( notifier.getType() ) ) || ( "msn".equals( notifier.getType() ) ) ||
- ( "jabber".equals( notifier.getType() ) ) )
- {
- if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD ) ) )
- {
- recipient = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
- }
- if ( StringUtils.isNotEmpty( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
- {
- if ( Boolean.parseBoolean( (String) configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
- {
- if ( "unknown".equals( recipient ) )
- {
- recipient = "latest committers";
- }
- else
- {
- recipient += ", " + "latest committers";
- }
- }
- }
- }
-
- if ( "irc".equals( notifier.getType() ) )
- {
- recipient = (String) configuration.get( "host" );
-
- if ( configuration.get( "port" ) != null )
- {
- recipient = recipient + ":" + (String) configuration.get( "port" );
- }
-
- recipient = recipient + ":" + (String) configuration.get( "channel" );
- }
-
- if ( "wagon".equals( notifier.getType() ) )
- {
- recipient = (String) configuration.get( "url" );
- }
+ String recipient = GenerateRecipentNotifier.generate( notifier );
ns.setRecipient( recipient );
@@ -338,7 +293,7 @@
return ns;
}
- // property accessors
+ // property accessors
/**
* @return the projectGroupId
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java?rev=756580&r1=756579&r2=756580&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteGroupNotifierAction.java Fri Mar 20 16:25:46 2009
@@ -19,16 +19,14 @@
* under the License.
*/
+import org.apache.continuum.web.util.GenerateRecipentNotifier;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
import org.apache.maven.continuum.web.action.ContinuumActionSupport;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
import org.codehaus.plexus.util.StringUtils;
-import java.util.Map;
-
/**
* Action to delete a {@link ProjectNotifier} instance from a
* specified {@link ProjectGroup}.
@@ -84,27 +82,9 @@
ProjectNotifier notifier = getContinuum().getGroupNotifier( projectGroupId, notifierId );
- Map configuration = notifier.getConfiguration();
-
notifierType = notifier.getType();
- if ( ( "mail".equals( notifierType ) ) || ( "msn".equals( notifierType ) ) ||
- ( "jabber".equals( notifierType ) ) )
- {
- recipient = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
- }
-
- if ( "irc".equals( notifierType ) )
- {
- recipient = (String) configuration.get( "host" );
-
- if ( configuration.get( "port" ) != null )
- {
- recipient = recipient + ":" + (String) configuration.get( "port" );
- }
-
- recipient = recipient + ":" + (String) configuration.get( "channel" );
- }
+ recipient = GenerateRecipentNotifier.generate( notifier );
return "delete";
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java?rev=756580&r1=756579&r2=756580&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/notifier/DeleteProjectNotifierAction.java Fri Mar 20 16:25:46 2009
@@ -19,17 +19,15 @@
* under the License.
*/
+import org.apache.continuum.web.util.GenerateRecipentNotifier;
import org.apache.maven.continuum.ContinuumException;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectGroup;
import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
import org.apache.maven.continuum.web.action.ContinuumActionSupport;
import org.apache.maven.continuum.web.exception.AuthorizationRequiredException;
import org.codehaus.plexus.util.StringUtils;
-import java.util.Map;
-
/**
* Action that deletes a {@link ProjectNotifier} from a specified {@link Project}.
*
@@ -95,27 +93,9 @@
ProjectNotifier notifier = getContinuum().getNotifier( projectId, notifierId );
- Map configuration = notifier.getConfiguration();
-
notifierType = notifier.getType();
- if ( ( "mail".equals( notifierType ) ) || ( "msn".equals( notifierType ) ) ||
- ( "jabber".equals( notifierType ) ) )
- {
- recipient = (String) configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
- }
-
- if ( "irc".equals( notifierType ) )
- {
- recipient = (String) configuration.get( "host" );
-
- if ( configuration.get( "port" ) != null )
- {
- recipient = recipient + ":" + (String) configuration.get( "port" );
- }
-
- recipient = recipient + ":" + (String) configuration.get( "channel" );
- }
+ recipient = GenerateRecipentNotifier.generate( notifier );
return "delete";
}
Modified: continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java?rev=756580&r1=756579&r2=756580&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java (original)
+++ continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/view/projectview/NotifierRecipientCell.java Fri Mar 20 16:25:46 2009
@@ -19,8 +19,8 @@
* under the License.
*/
+import org.apache.continuum.web.util.GenerateRecipentNotifier;
import org.apache.maven.continuum.model.project.ProjectNotifier;
-import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
import org.extremecomponents.table.bean.Column;
import org.extremecomponents.table.cell.DisplayCell;
import org.extremecomponents.table.core.TableModel;
@@ -40,37 +40,8 @@
{
ProjectNotifier notifier = (ProjectNotifier) tableModel.getCurrentRowBean();
- if ( "irc".equals( notifier.getType() ) )
- {
- String address = "";
+ String recipient = GenerateRecipentNotifier.generate( notifier );
- if ( notifier.getConfiguration().get( "host" ) != null )
- {
- address += notifier.getConfiguration().get( "host" ) + ":";
- }
-
- if ( notifier.getConfiguration().get( "port" ) != null )
- {
- address += notifier.getConfiguration().get( "port" ) + ":";
- }
-
- if ( notifier.getConfiguration().get( "channel" ) != null )
- {
- address += notifier.getConfiguration().get( "channel" );
- }
-
- return address;
- }
- else
- {
- if ( "wagon".equals( notifier.getType() ) )
- {
- return notifier.getConfiguration().get( "url" ).toString();
- }
-
- String address = (String) notifier.getConfiguration().get( AbstractContinuumNotifier.ADDRESS_FIELD );
-
- return address == null ? "" : address;
- }
+ return recipient;
}
}
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=756580&r1=756579&r2=756580&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Fri Mar 20 16:25:46 2009
@@ -778,6 +778,7 @@
installation.ant.type.label = ANT
installation.automaticProfile.label=Create a Build Environment with the Installation name
installation.name.duplicate = Installation name already exists.
+installation.varName.required = You must define an environment variable
# ----------------------------------------------------------------------
# Page: Installations Type Choice
Modified: continuum/trunk/continuum-webapp/src/main/resources/struts.xml
URL: http://svn.apache.org/viewvc/continuum/trunk/continuum-webapp/src/main/resources/struts.xml?rev=756580&r1=756579&r2=756580&view=diff
==============================================================================
--- continuum/trunk/continuum-webapp/src/main/resources/struts.xml (original)
+++ continuum/trunk/continuum-webapp/src/main/resources/struts.xml Fri Mar 20 16:25:46 2009
@@ -196,7 +196,7 @@
<action name="addMavenOneProject" class="addMavenOneProject">
<interceptor-ref name="configuredContinuumStack"/>
- <interceptor-ref name="execAndWait"/>
+ <interceptor-ref name="execAndWait"/>
<result name="wait">/WEB-INF/jsp/navigations/wait.jsp</result>
<result name="input">/WEB-INF/jsp/addMavenOneProject.jsp</result>
<result name="success" type="chain">groupSummary</result>
@@ -207,19 +207,19 @@
</action>
<action name="addProjectInput" class="addProject" method="input">
- <result name="success">/WEB-INF/jsp/addProject.jsp</result>
+ <result name="input">/WEB-INF/jsp/addProject.jsp</result>
</action>
<action name="addProject" class="addProject" method="add">
<interceptor-ref name="configuredContinuumStack"/>
- <interceptor-ref name="execAndWait"/>
+ <interceptor-ref name="execAndWait"/>
<result name="wait">/WEB-INF/jsp/navigations/wait.jsp</result>
- <result name="input">/WEB-INF/jsp/addProject.jsp</result>
+ <result name="input" type="chain">addProjectInput</result>
<result name="success" type="chain">groupSummary</result>
<result name="projectGroupSummary" type="redirect-action">
<param name="actionName">projectGroupSummary</param>
<param name="projectGroupId">${projectGroupId}</param>
- </result>
+ </result>
</action>
<action name="deleteProject" class="deleteProject">