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 2006/03/07 18:58:09 UTC
svn commit: r383944 - in /maven/continuum/branches/continuum-1.0.x:
continuum-api/src/main/java/org/apache/maven/continuum/configuration/
continuum-core/src/main/java/org/apache/maven/continuum/configuration/
continuum-core/src/main/java/org/apache/mav...
Author: evenisse
Date: Tue Mar 7 09:58:05 2006
New Revision: 383944
URL: http://svn.apache.org/viewcvs?rev=383944&view=rev
Log:
[CONTINUUM-322] Add the possibiliy to be notify after all build
[CONTINUUM-470] Don't ignore sendOn settings
Modified:
maven/continuum/branches/continuum-1.0.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java
maven/continuum/branches/continuum-1.0.x/continuum-model/src/main/java/org/apache/maven/continuum/project/ContinuumProjectState.java
maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java
maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java
maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java
maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java
maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/pom.xml
maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/src/conf/application.xml
Modified: maven/continuum/branches/continuum-1.0.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-api/src/main/java/org/apache/maven/continuum/configuration/ConfigurationService.java Tue Mar 7 09:58:05 2006
@@ -83,6 +83,8 @@
//
// ----------------------------------------------------------------------
+ boolean isLoaded();
+
void load()
throws ConfigurationLoadingException;
Modified: maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/configuration/DefaultConfigurationService.java Tue Mar 7 09:58:05 2006
@@ -50,14 +50,14 @@
private SystemConfiguration systemConf;
+ private boolean loaded = false;
+
// ----------------------------------------------------------------------
// Continuum specifics we'll refactor out later
// ----------------------------------------------------------------------
private Map jdks;
- private static final String LS = System.getProperty( "line.separator" );
-
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
@@ -136,7 +136,7 @@
public void setCompanyName( String companyName )
{
- systemConf.setCompanyName( companyName );
+ systemConf.setCompanyName( companyName );
}
public String getCompanyUrl()
@@ -221,6 +221,11 @@
// Load and Store
// ----------------------------------------------------------------------
+ public boolean isLoaded()
+ {
+ return loaded;
+ }
+
public void load()
throws ConfigurationLoadingException
{
@@ -234,6 +239,8 @@
systemConf = store.addSystemConfiguration( systemConf );
}
+
+ loaded = true;
}
catch ( ContinuumStoreException e )
{
Modified: maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/DefaultContinuumNotificationDispatcher.java Tue Mar 7 09:58:05 2006
@@ -16,8 +16,8 @@
* limitations under the License.
*/
-import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.configuration.ConfigurationException;
+import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.model.project.BuildResult;
import org.apache.maven.continuum.model.project.Project;
import org.apache.maven.continuum.model.project.ProjectNotifier;
@@ -126,7 +126,8 @@
if ( build.getEndTime() != 0 )
{
- context.put( CONTEXT_BUILD_OUTPUT, configurationService.getBuildOutput( build.getId(), project.getId() ) );
+ context.put( CONTEXT_BUILD_OUTPUT,
+ configurationService.getBuildOutput( build.getId(), project.getId() ) );
}
context.put( CONTEXT_UPDATE_SCM_RESULT, build.getScmResult() );
@@ -162,12 +163,14 @@
try
{
+ configuration.put( AbstractContinuumNotifier.PROJECT_NOTIFIER_KEY, projectNotifier );
+
Notifier notifier = notifierManager.getNotifier( notifierType );
- Set recipients = recipientSource.getRecipients( String.valueOf( projectNotifier.getId() ),
- messageId, configuration, context );
+ Set recipients = recipientSource.getRecipients( String.valueOf( projectNotifier.getId() ), messageId,
+ configuration, context );
- notifier.sendNotification( messageId, recipients, projectNotifier.getConfiguration(), context );
+ notifier.sendNotification( messageId, recipients, configuration, context );
}
catch ( NotificationException e )
{
Modified: maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-core/src/main/java/org/apache/maven/continuum/notification/mail/MailContinuumNotifier.java Tue Mar 7 09:58:05 2006
@@ -200,7 +200,7 @@
}
private void buildComplete( Project project, BuildResult build, String buildOutput, String source, Set recipients,
- Map configuration )
+ Map configuration )
throws NotificationException
{
// ----------------------------------------------------------------------
@@ -209,7 +209,7 @@
BuildResult previousBuild = getPreviousBuild( project, build );
- if ( !shouldNotify( build, previousBuild ) )
+ if ( !shouldNotify( build, previousBuild, configuration ) )
{
return;
}
@@ -267,8 +267,8 @@
context.put( "osName", osName );
- context.put( "javaVersion", System.getProperty( "java.version" ) + "("
- + System.getProperty( "java.vendor" ) + ")" );
+ context.put( "javaVersion",
+ System.getProperty( "java.version" ) + "(" + System.getProperty( "java.vendor" ) + ")" );
// ----------------------------------------------------------------------
// Generate
@@ -354,9 +354,8 @@
if ( fromMailbox == null )
{
getLogger()
- .warn(
- project.getName()
- + ": Project is missing nag email and global from mailbox is missing, not sending mail." );
+ .warn( project.getName() +
+ ": Project is missing nag email and global from mailbox is missing, not sending mail." );
return;
}
@@ -449,8 +448,8 @@
if ( currentBuild != null && build.getId() != currentBuild.getId() )
{
- throw new NotificationException( "INTERNAL ERROR: The current build wasn't the first in the build list. "
- + "Current build: '" + currentBuild.getId() + "', " + "first build: '" + build.getId() + "'." );
+ throw new NotificationException( "INTERNAL ERROR: The current build wasn't the first in the build list. " +
+ "Current build: '" + currentBuild.getId() + "', " + "first build: '" + build.getId() + "'." );
}
return (BuildResult) builds.get( builds.size() - 2 );
Modified: maven/continuum/branches/continuum-1.0.x/continuum-model/src/main/java/org/apache/maven/continuum/project/ContinuumProjectState.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-model/src/main/java/org/apache/maven/continuum/project/ContinuumProjectState.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-model/src/main/java/org/apache/maven/continuum/project/ContinuumProjectState.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-model/src/main/java/org/apache/maven/continuum/project/ContinuumProjectState.java Tue Mar 7 09:58:05 2006
@@ -63,6 +63,8 @@
public final static int UPDATING = 8;
+ public final static int WARNING = 9;
+
private String name;
// TODO: maybe move these to another class
Modified: maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-api/src/main/java/org/apache/maven/continuum/notification/AbstractContinuumNotifier.java Tue Mar 7 09:58:05 2006
@@ -21,25 +21,37 @@
import org.apache.maven.continuum.configuration.ConfigurationService;
import org.apache.maven.continuum.model.project.BuildResult;
import org.apache.maven.continuum.model.project.Project;
+import org.apache.maven.continuum.model.project.ProjectNotifier;
import org.apache.maven.continuum.project.ContinuumProjectState;
import org.codehaus.plexus.notification.notifier.AbstractNotifier;
+import java.util.Map;
+
public abstract class AbstractContinuumNotifier
extends AbstractNotifier
{
+ public static final String PROJECT_NOTIFIER_KEY = "projectNotifier";
+
+ /**
+ * @plexus.configuration
+ */
+ private boolean alwaysSend = false;
+
/**
* Returns url of the last build
*
* @param project The project
- * @param build The build
+ * @param build The build
*/
public String getReportUrl( Project project, BuildResult build, ConfigurationService configurationService )
throws ContinuumException
{
try
{
- //TODO it's bad to load always the conf when we want read a value
- configurationService.load();
+ if ( !configurationService.isLoaded() )
+ {
+ configurationService.load();
+ }
StringBuffer buf = new StringBuffer( configurationService.getUrl() );
@@ -62,15 +74,52 @@
}
}
+ /**
+ * Determine if message must be sent
+ *
+ * @param build The current build result
+ * @param previousBuild The previous build result
+ * @return True if a message must be sent
+ * @deprecated
+ */
public boolean shouldNotify( BuildResult build, BuildResult previousBuild )
{
+ return shouldNotify( build, previousBuild, null );
+ }
+
+ /**
+ * Determine if message must be sent
+ *
+ * @param build The current build result
+ * @param previousBuild The previous build result
+ * @param configuration The project notifier configuration
+ * @return True if a message must be sent
+ */
+ public boolean shouldNotify( BuildResult build, BuildResult previousBuild, Map configuration )
+ {
+ ProjectNotifier projectNotifier = new ProjectNotifier();
+
+ if ( configuration != null && configuration.get( PROJECT_NOTIFIER_KEY ) != null )
+ {
+ projectNotifier = (ProjectNotifier) configuration.get( PROJECT_NOTIFIER_KEY );
+ }
+
if ( build == null )
{
return false;
}
- // Always send if the project failed
- if ( build.getState() == ContinuumProjectState.FAILED || build.getState() == ContinuumProjectState.ERROR )
+ if ( alwaysSend )
+ {
+ return true;
+ }
+
+ if ( build.getState() == ContinuumProjectState.FAILED && projectNotifier.isSendOnFailure() )
+ {
+ return true;
+ }
+
+ if ( build.getState() == ContinuumProjectState.ERROR && projectNotifier.isSendOnError() )
{
return true;
}
@@ -82,11 +131,31 @@
}
// Send if the state has changed
- getLogger().info(
+ getLogger().debug(
"Current build state: " + build.getState() + ", previous build state: " + previousBuild.getState() );
if ( build.getState() != previousBuild.getState() )
{
+ if ( build.getState() == ContinuumProjectState.ERROR )
+ {
+ return projectNotifier.isSendOnError();
+ }
+
+ if ( build.getState() == ContinuumProjectState.FAILED )
+ {
+ return projectNotifier.isSendOnFailure();
+ }
+
+ if ( build.getState() == ContinuumProjectState.OK )
+ {
+ return projectNotifier.isSendOnSuccess();
+ }
+
+ if ( build.getState() == ContinuumProjectState.WARNING )
+ {
+ return projectNotifier.isSendOnWarning();
+ }
+
return true;
}
Modified: maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-irc/src/main/java/org/apache/maven/continuum/notification/irc/IrcContinuumNotifier.java Tue Mar 7 09:58:05 2006
@@ -106,7 +106,7 @@
BuildResult previousBuild = getPreviousBuild( project, build );
- if ( !shouldNotify( build, previousBuild ) )
+ if ( !shouldNotify( build, previousBuild, configuration ) )
{
return;
}
Modified: maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-jabber/src/main/java/org/apache/maven/continuum/notification/jabber/JabberContinuumNotifier.java Tue Mar 7 09:58:05 2006
@@ -185,7 +185,7 @@
BuildResult previousBuild = getPreviousBuild( project, build );
- if ( !shouldNotify( build, previousBuild ) )
+ if ( !shouldNotify( build, previousBuild, configuration ) )
{
return;
}
Modified: maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-notifiers/continuum-notifier-msn/src/main/java/org/apache/maven/continuum/notification/msn/MsnContinuumNotifier.java Tue Mar 7 09:58:05 2006
@@ -150,9 +150,9 @@
}
else
{
- getLogger().warn( "Unknown build state " + build.getState() + " for project " + project.getId() );
+ getLogger().warn( "Unknown build state " + state + " for project " + project.getId() );
- message = "ERROR: Unknown build state " + build.getState() + " for " + project.getName() + " project";
+ message = "ERROR: Unknown build state " + state + " for " + project.getName() + " project";
}
return message + " " + getReportUrl( project, build, configurationService );
@@ -169,7 +169,7 @@
BuildResult previousBuild = getPreviousBuild( project, build );
- if ( !shouldNotify( build, previousBuild ) )
+ if ( !shouldNotify( build, previousBuild, configuration ) )
{
return;
}
Modified: maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/pom.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/pom.xml?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/pom.xml (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/pom.xml Tue Mar 7 09:58:05 2006
@@ -98,8 +98,16 @@
<version>1.0-alpha-3</version>
<exclusions>
<exclusion>
- <artifactId>plexus-container-default</artifactId>
<groupId>plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
</exclusion>
</exclusions>
</dependency>
Modified: maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/src/conf/application.xml
URL: http://svn.apache.org/viewcvs/maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/src/conf/application.xml?rev=383944&r1=383943&r2=383944&view=diff
==============================================================================
--- maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/src/conf/application.xml (original)
+++ maven/continuum/branches/continuum-1.0.x/continuum-plexus-application/src/conf/application.xml Tue Mar 7 09:58:05 2006
@@ -95,6 +95,7 @@
<from-name>@mail.override.from.name@</from-name>
<timestamp-format>EEE, d MMM yyyy HH:mm:ss Z</timestamp-format>
<includeBuildResult>true</includeBuildResult>
+ <alwaysSend>false</alwaysSend>
</configuration>
</component>
@@ -144,6 +145,9 @@
<role>org.apache.maven.continuum.configuration.ConfigurationService</role>
</requirement>
</requirements>
+ <configuration>
+ <alwaysSend>false</alwaysSend>
+ </configuration>
</component>
<component>
@@ -169,13 +173,14 @@
<role>org.apache.maven.continuum.store.ContinuumStore</role>
</requirement>
</requirements>
- <!-- configuration>
- <from-address/>
+ <configuration>
+ <alwaysSend>false</alwaysSend>
+ <!-- from-address/>
<from-password/>
<host/>
<port/>
- <sslConnection>true</sslConnection>
- </configuration -->
+ <sslConnection>true</sslConnection -->
+ </configuration>
</component>
<component>
@@ -201,10 +206,11 @@
<role>org.apache.maven.continuum.store.ContinuumStore</role>
</requirement>
</requirements>
- <!-- configuration>
- <from-address/>
- <from-password/>
- </configuration -->
+ <configuration>
+ <alwaysSend>false</alwaysSend>
+ <!-- from-address/>
+ <from-password/ -->
+ </configuration>
</component>
<component>