1 package org.apache.continuum.web.util;
2
3 import org.apache.commons.lang.StringEscapeUtils;
4 import org.apache.maven.continuum.model.project.ProjectNotifier;
5 import org.apache.maven.continuum.notification.AbstractContinuumNotifier;
6 import org.codehaus.plexus.util.StringUtils;
7
8 import java.util.Map;
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 public final class GenerateRecipentNotifier
34 {
35 private GenerateRecipentNotifier()
36 {
37
38 }
39
40 @SuppressWarnings( "unchecked" )
41 public static String generate( ProjectNotifier notifier )
42 {
43 Map<String, String> configuration = notifier.getConfiguration();
44 String recipent = "unknown";
45 if ( ( "mail".equals( notifier.getType() ) ) || ( "msn".equals( notifier.getType() ) ) ||
46 ( "jabber".equals( notifier.getType() ) ) )
47 {
48 if ( StringUtils.isNotEmpty( configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD ) ) )
49 {
50 recipent = configuration.get( AbstractContinuumNotifier.ADDRESS_FIELD );
51 }
52 if ( StringUtils.isNotEmpty( configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
53 {
54 if ( Boolean.parseBoolean( configuration.get( AbstractContinuumNotifier.COMMITTER_FIELD ) ) )
55 {
56 if ( "unknown".equals( recipent ) )
57 {
58 recipent = "latest committers";
59 }
60 else
61 {
62 recipent += ", " + "latest committers";
63 }
64 }
65 }
66 if ( StringUtils.isNotEmpty( configuration.get( AbstractContinuumNotifier.DEVELOPER_FIELD ) ) )
67 {
68 if ( Boolean.parseBoolean( configuration.get( AbstractContinuumNotifier.DEVELOPER_FIELD ) ) )
69 {
70 if ( "unknown".equals( recipent ) )
71 {
72 recipent = "project developers";
73 }
74 else
75 {
76 recipent += ", " + "project developers";
77 }
78 }
79 }
80 }
81 if ( "irc".equals( notifier.getType() ) )
82 {
83 recipent = configuration.get( "host" );
84 if ( configuration.get( "port" ) != null )
85 {
86 recipent = recipent + ":" + configuration.get( "port" );
87 }
88 recipent = recipent + ":" + configuration.get( "channel" );
89 }
90 if ( "wagon".equals( notifier.getType() ) )
91 {
92 recipent = configuration.get( "url" );
93 }
94
95 return StringEscapeUtils.escapeXml( recipent );
96 }
97 }