1 package org.apache.maven.model.converter.plugins;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.model.converter.ProjectConverterException;
23 import org.apache.maven.shared.utils.StringUtils;
24 import org.codehaus.plexus.util.xml.Xpp3Dom;
25
26 import java.util.Iterator;
27 import java.util.Properties;
28
29
30
31
32
33
34
35
36 public class PCCSite
37 extends AbstractPluginConfigurationConverter
38 {
39
40
41
42 public String getArtifactId()
43 {
44 return "maven-site-plugin";
45 }
46
47 public String getType()
48 {
49 return TYPE_BUILD_PLUGIN;
50 }
51
52 protected void buildConfiguration( Xpp3Dom configuration, org.apache.maven.model.v3_0_0.Model v3Model,
53 Properties projectProperties )
54 throws ProjectConverterException
55 {
56 Xpp3Dom xdocExcludes = getXdocExcludes( configuration );
57
58
59 appendValue( xdocExcludes, "navigation.xml" );
60
61
62 if ( hasChangesReport( v3Model ) )
63 {
64 appendValue( xdocExcludes, "changes.xml" );
65 }
66 }
67
68 private void appendValue( Xpp3Dom xdoc, String value )
69 {
70 String currentValue = xdoc.getValue();
71 if ( StringUtils.isEmpty( currentValue ) )
72 {
73 xdoc.setValue( value );
74 }
75 else
76 {
77 xdoc.setValue( currentValue + "," + value );
78 }
79 }
80
81 private Xpp3Dom getXdocExcludes( Xpp3Dom configuration )
82 {
83 Xpp3Dom moduleExcludes = configuration.getChild( "moduleExcludes" );
84 if ( moduleExcludes == null )
85 {
86 moduleExcludes = new Xpp3Dom( "moduleExcludes" );
87 configuration.addChild( moduleExcludes );
88 }
89
90 Xpp3Dom xdoc = moduleExcludes.getChild( "xdoc" );
91 if ( xdoc == null )
92 {
93 xdoc = new Xpp3Dom( "xdoc" );
94 moduleExcludes.addChild( xdoc );
95 }
96 return xdoc;
97 }
98
99 private boolean hasChangesReport( org.apache.maven.model.v3_0_0.Model v3Model )
100 {
101 boolean hasChangesReport = false;
102
103 if ( v3Model.getReports() != null && !v3Model.getReports().isEmpty() )
104 {
105 Iterator iterator = v3Model.getReports().iterator();
106 while ( iterator.hasNext() )
107 {
108 String report = (String) iterator.next();
109 if ( "maven-changes-plugin".equals( report ) )
110 {
111 hasChangesReport = true;
112 }
113 }
114 }
115
116 return hasChangesReport;
117 }
118 }