You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@continuum.apache.org by ev...@apache.org on 2005/12/30 11:55:12 UTC
svn commit: r360066 - in /maven/continuum/trunk:
continuum-api/src/main/java/org/apache/maven/continuum/
continuum-core/src/main/java/org/apache/maven/continuum/
continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/
continuum-webapp/src...
Author: evenisse
Date: Fri Dec 30 02:54:57 2005
New Revision: 360066
URL: http://svn.apache.org/viewcvs?rev=360066&view=rev
Log:
Add mail notifier modification screens
Added:
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractNotifierEditAction.java (with props)
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/MailNotifierEditAction.java (with props)
Removed:
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/NotifierEditAction.java
Modified:
maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddNotifierAction.java
maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteNotifierAction.java
maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/components.xml
maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
maven/continuum/trunk/continuum-webapp/src/main/webapp/notifierMail.jsp
maven/continuum/trunk/continuum-webapp/src/main/webapp/projectView.jsp
Modified: maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java (original)
+++ maven/continuum/trunk/continuum-api/src/main/java/org/apache/maven/continuum/Continuum.java Fri Dec 30 02:54:57 2005
@@ -148,6 +148,12 @@
void updateNotifier( int projectId, int notifierId, Map configuration )
throws ContinuumException;
+ void updateNotifier( int projectId, ProjectNotifier notifier )
+ throws ContinuumException;
+
+ void addNotifier( int projectId, ProjectNotifier notifier )
+ throws ContinuumException;
+
void addNotifier( int projectId, String notifierType, Map configuration )
throws ContinuumException;
Modified: maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java (original)
+++ maven/continuum/trunk/continuum-core/src/main/java/org/apache/maven/continuum/DefaultContinuum.java Fri Dec 30 02:54:57 2005
@@ -817,6 +817,21 @@
return notifier;
}
+ public void updateNotifier( int projectId, ProjectNotifier notifier )
+ throws ContinuumException
+ {
+ Project project = getProjectWithAllDetails( projectId );
+
+ ProjectNotifier notif = getNotifier( projectId, notifier.getId() );
+
+ // I remove notifier then add it instead of update it due to a ClassCastException in jpox
+ project.removeNotifier( notif );
+
+ updateProject( project );
+
+ addNotifier( projectId, notifier );
+ }
+
public void updateNotifier( int projectId, int notifierId, Map configuration )
throws ContinuumException
{
@@ -863,6 +878,32 @@
return notifierProperties;
}
+ public void addNotifier( int projectId, ProjectNotifier notifier )
+ throws ContinuumException
+ {
+ ProjectNotifier notif = new ProjectNotifier();
+
+ notif.setSendOnSuccess( notifier.isSendOnSuccess() );
+
+ notif.setSendOnFailure( notifier.isSendOnFailure() );
+
+ notif.setSendOnError( notifier.isSendOnError() );
+
+ notif.setSendOnWarning( notifier.isSendOnWarning() );
+
+ notif.setConfiguration( notifier.getConfiguration() );
+
+ notif.setType( notifier.getType() );
+
+ notifier.setFrom( ProjectNotifier.FROM_USER );
+
+ Project project = getProjectWithAllDetails( projectId );
+
+ project.addNotifier( notif );
+
+ updateProject( project );
+ }
+
public void addNotifier( int projectId, String notifierType, Map configuration )
throws ContinuumException
{
@@ -894,13 +935,7 @@
notifier.setConfiguration( notifierProperties );
- notifier.setFrom( ProjectNotifier.FROM_USER );
-
- Project project = getProjectWithAllDetails( projectId );
-
- project.addNotifier( notifier );
-
- updateProject( project );
+ addNotifier( projectId, notifier );
}
public void removeNotifier( int projectId, int notifierId )
Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractNotifierEditAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractNotifierEditAction.java?rev=360066&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractNotifierEditAction.java (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractNotifierEditAction.java Fri Dec 30 02:54:57 2005
@@ -0,0 +1,199 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.maven.continuum.Continuum;
+import org.apache.maven.continuum.ContinuumException;
+import org.apache.maven.continuum.model.project.ProjectNotifier;
+
+import com.opensymphony.xwork.ActionSupport;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public abstract class AbstractNotifierEditAction
+ extends ActionSupport
+{
+ private Continuum continuum;
+
+ private ProjectNotifier notifier;
+
+ private int projectId;
+
+ private int notifierId;
+
+ private boolean sendOnSuccess;
+
+ private boolean sendOnFailure;
+
+ private boolean sendOnError;
+
+ private boolean sendOnWarning;
+
+ public String execute()
+ {
+ try
+ {
+ boolean isNew = false;
+
+ notifier = getNotifier();
+
+ if ( notifier == null || notifierId == 0 )
+ {
+ notifier = new ProjectNotifier();
+
+ isNew = true;
+ }
+
+ notifier.setSendOnSuccess( sendOnSuccess );
+
+ notifier.setSendOnFailure( sendOnFailure );
+
+ notifier.setSendOnError( sendOnError );
+
+ notifier.setSendOnWarning( sendOnWarning );
+
+ setNotifierConfiguration( notifier );
+
+ if ( !isNew )
+ {
+ continuum.updateNotifier( projectId, notifier );
+ }
+ else
+ {
+ continuum.addNotifier( projectId, notifier );
+ }
+ }
+ catch ( ContinuumException e )
+ {
+ addActionMessage( "Can't update notifier (id=" + notifierId + ") for project " + projectId + " : " + e.getMessage() );
+
+ e.printStackTrace();
+
+ return ERROR;
+ }
+
+ return SUCCESS;
+ }
+
+ public String doDefault()
+ {
+ try
+ {
+ notifier = getNotifier();
+
+ if ( notifier == null )
+ {
+ notifier = new ProjectNotifier();
+ }
+ }
+ catch ( ContinuumException e )
+ {
+ addActionMessage( "Can't get notifier informations (id=" + notifierId + ") for project " + projectId + " : " + e.getMessage() );
+
+ e.printStackTrace();
+
+ return ERROR;
+ }
+
+ sendOnSuccess = notifier.isSendOnSuccess();
+
+ sendOnFailure = notifier.isSendOnFailure();
+
+ sendOnError =notifier.isSendOnError();
+
+ sendOnWarning = notifier.isSendOnWarning();
+
+ initConfiguration( notifier.getConfiguration() );
+
+ return INPUT;
+ }
+
+ protected abstract void initConfiguration( Map configuration );
+
+ protected abstract void setNotifierConfiguration( ProjectNotifier notifier );
+
+ private ProjectNotifier getNotifier()
+ throws ContinuumException
+ {
+ return continuum.getNotifier( projectId, notifierId );
+ }
+
+ public int getProjectId()
+ {
+ return projectId;
+ }
+
+ public void setProjectId( int projectId )
+ {
+ this.projectId = projectId;
+ }
+
+ public int getNotifierId()
+ {
+ return notifierId;
+ }
+
+ public void setNotifierId( int notifierId )
+ {
+ this.notifierId = notifierId;
+ }
+
+ public boolean isSendOnSuccess()
+ {
+ return sendOnSuccess;
+ }
+
+ public void setSendOnSuccess( boolean sendOnSuccess )
+ {
+ this.sendOnSuccess = sendOnSuccess;
+ }
+
+ public boolean isSendOnFailure()
+ {
+ return sendOnFailure;
+ }
+
+ public void setSendOnFailure( boolean sendOnFailure )
+ {
+ this.sendOnFailure = sendOnFailure;
+ }
+
+ public boolean isSendOnError()
+ {
+ return sendOnError;
+ }
+
+ public void setSendOnError( boolean sendOnError )
+ {
+ this.sendOnError = sendOnError;
+ }
+
+ public boolean isSendOnWarning()
+ {
+ return sendOnWarning;
+ }
+
+ public void setSendOnWarning( boolean sendOnWarning )
+ {
+ this.sendOnWarning = sendOnWarning;
+ }
+}
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractNotifierEditAction.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AbstractNotifierEditAction.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddNotifierAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddNotifierAction.java?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddNotifierAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/AddNotifierAction.java Fri Dec 30 02:54:57 2005
@@ -43,4 +43,14 @@
{
this.notifierType = notifierType;
}
+
+ public int getProjectId()
+ {
+ return projectId;
+ }
+
+ public void setProjectId( int projectId )
+ {
+ this.projectId = projectId;
+ }
}
Modified: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteNotifierAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteNotifierAction.java?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteNotifierAction.java (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/DeleteNotifierAction.java Fri Dec 30 02:54:57 2005
@@ -40,9 +40,7 @@
{
try
{
- System.out.println( "DeleteNotifier" + projectId + " - " + notifierId);
continuum.removeNotifier( projectId, notifierId );
- System.out.println( "DeleteNotifier2");
}
catch ( ContinuumException e )
{
Added: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/MailNotifierEditAction.java
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/MailNotifierEditAction.java?rev=360066&view=auto
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/MailNotifierEditAction.java (added)
+++ maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/MailNotifierEditAction.java Fri Dec 30 02:54:57 2005
@@ -0,0 +1,56 @@
+package org.apache.maven.continuum.web.action;
+
+/*
+ * Copyright 2004-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.
+ */
+
+import org.apache.maven.continuum.model.project.ProjectNotifier;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:evenisse@apache.org">Emmanuel Venisse</a>
+ * @version $Id$
+ */
+public class MailNotifierEditAction
+ extends AbstractNotifierEditAction
+{
+ private String address;
+
+ protected void initConfiguration( Map configuration )
+ {
+ address = (String) configuration.get( "address" );
+ }
+
+ protected void setNotifierConfiguration( ProjectNotifier notifier )
+ {
+ HashMap configuration = new HashMap();
+
+ configuration.put( "address", address );
+
+ notifier.setConfiguration( configuration );
+ }
+
+ public String getAddress()
+ {
+ return address;
+ }
+
+ public void setAddress( String address )
+ {
+ this.address = address;
+ }
+}
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/MailNotifierEditAction.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/continuum/trunk/continuum-webapp/src/main/java/org/apache/maven/continuum/web/action/MailNotifierEditAction.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/components.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/components.xml?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/components.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/META-INF/plexus/components.xml Fri Dec 30 02:54:57 2005
@@ -172,6 +172,17 @@
<implementation>org.apache.maven.continuum.web.action.AddNotifierAction</implementation>
<instantiation-strategy>per-lookup</instantiation-strategy>
</component>
+ <component>
+ <role>com.opensymphony.xwork.Action</role>
+ <role-hint>mailNotifierEdit</role-hint>
+ <implementation>org.apache.maven.continuum.web.action.MailNotifierEditAction</implementation>
+ <instantiation-strategy>per-lookup</instantiation-strategy>
+ <requirements>
+ <requirement>
+ <role>org.apache.maven.continuum.Continuum</role>
+ </requirement>
+ </requirements>
+ </component>
<!--
| Components
Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/localization/Continuum.properties Fri Dec 30 02:54:57 2005
@@ -214,4 +214,8 @@
notifier.page.title = Continuum - Add/Edit {0} Notifier
notifier.section.title = Add/Edit {0} Notifier
notifier.type.label = Type
-
+notifier.mail.recipient.label = Mail Recipient Address
+notifier.event.sendOnSuccess = Send on Success
+notifier.event.sendOnFailure = Send on Failure
+notifier.event.sendOnError = Send on Error
+notifier.event.sendOnWarning = Send on Warning
Modified: maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/resources/xwork.xml Fri Dec 30 02:54:57 2005
@@ -120,5 +120,11 @@
<result name="msn_input">notifierMsn.jsp</result>
<result name="jabber_input">notifierJabber.jsp</result>
</action>
+
+ <action name="mailNotifierEdit"
+ class="mailNotifierEdit">
+ <result name="input">notifierMail.jsp</result>
+ <result name="success" type="chain">projectView</result>
+ </action>
</package>
</xwork>
Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/notifierMail.jsp
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/webapp/notifierMail.jsp?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/notifierMail.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/notifierMail.jsp Fri Dec 30 02:54:57 2005
@@ -17,7 +17,16 @@
</h3>
<div class="axial">
- Mail
+ <ww:form action="mailNotifierEdit.action" method="post">
+ <ww:hidden name="notifierId"/>
+ <ww:hidden name="projectId"/>
+ <ww:textfield label="%{getText('notifier.mail.recipient.label')}" name="address"/>
+ <ww:checkbox label="%{getText('notifier.event.sendOnSuccess')}" name="sendOnSuccess" fieldValue="true"/>
+ <ww:checkbox label="%{getText('notifier.event.sendOnFailure')}" name="sendOnFailure" fieldValue="true"/>
+ <ww:checkbox label="%{getText('notifier.event.sendOnError')}" name="sendOnError" fieldValue="true"/>
+ <ww:checkbox label="%{getText('notifier.event.sendOnWarning')}" name="sendOnWarning" fieldValue="true"/>
+ <ww:submit value="%{getText('save')}"/>
+ </ww:form>
</div>
</div>
</body>
Modified: maven/continuum/trunk/continuum-webapp/src/main/webapp/projectView.jsp
URL: http://svn.apache.org/viewcvs/maven/continuum/trunk/continuum-webapp/src/main/webapp/projectView.jsp?rev=360066&r1=360065&r2=360066&view=diff
==============================================================================
--- maven/continuum/trunk/continuum-webapp/src/main/webapp/projectView.jsp (original)
+++ maven/continuum/trunk/continuum-webapp/src/main/webapp/projectView.jsp Fri Dec 30 02:54:57 2005
@@ -87,7 +87,7 @@
<ec:column property="from" title="projectView.notifier.from" cell="org.apache.maven.continuum.web.view.projectview.NotifierFromCell"/>
<ec:column property="actions" title=" ">
<c:if test="${!pageScope.notifier.fromProject}">
- <a href="${pageContext.request.contextPath}/NotifierEdit!default.action?projectId=<ww:property value="project.id"/>¬ifierId=${pageScope.notifier.id}"><ww:text name="edit"/></a>
+ <a href="${pageContext.request.contextPath}/${pageScope.notifier.type}NotifierEdit!default.action?projectId=<ww:property value="project.id"/>¬ifierId=${pageScope.notifier.id}"><ww:text name="edit"/></a>
<a href="${pageContext.request.contextPath}/deleteNotifier!default.action?projectId=<ww:property value="project.id"/>¬ifierId=${pageScope.notifier.id}¬ifierType=${pageScope.notifier.type}"><ww:text name="delete"/></a>
</c:if>