1
2
3
4
5 package org.apache.maven.plugin.registry.io.xpp3;
6
7
8
9
10
11 import java.io.Writer;
12 import java.text.DateFormat;
13 import java.util.Iterator;
14 import java.util.Locale;
15 import org.apache.maven.plugin.registry.Plugin;
16 import org.apache.maven.plugin.registry.PluginRegistry;
17 import org.apache.maven.plugin.registry.TrackableBase;
18 import org.codehaus.plexus.util.xml.pull.MXSerializer;
19 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
20
21
22
23
24
25
26 public class PluginRegistryXpp3Writer {
27
28
29
30
31
32
33
34
35
36 private String NAMESPACE;
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public void write( Writer writer, PluginRegistry pluginRegistry )
51 throws java.io.IOException
52 {
53 XmlSerializer serializer = new MXSerializer();
54 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
55 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
56 serializer.setOutput( writer );
57 serializer.startDocument( pluginRegistry.getModelEncoding(), null );
58 writePluginRegistry( pluginRegistry, "pluginRegistry", serializer );
59 serializer.endDocument();
60 }
61
62
63
64
65
66
67
68
69
70 private void writePlugin( Plugin plugin, String tagName, XmlSerializer serializer )
71 throws java.io.IOException
72 {
73 if ( plugin != null )
74 {
75 serializer.startTag( NAMESPACE, tagName );
76 if ( plugin.getGroupId() != null )
77 {
78 serializer.startTag( NAMESPACE, "groupId" ).text( plugin.getGroupId() ).endTag( NAMESPACE, "groupId" );
79 }
80 if ( plugin.getArtifactId() != null )
81 {
82 serializer.startTag( NAMESPACE, "artifactId" ).text( plugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
83 }
84 if ( plugin.getLastChecked() != null )
85 {
86 serializer.startTag( NAMESPACE, "lastChecked" ).text( plugin.getLastChecked() ).endTag( NAMESPACE, "lastChecked" );
87 }
88 if ( plugin.getUseVersion() != null )
89 {
90 serializer.startTag( NAMESPACE, "useVersion" ).text( plugin.getUseVersion() ).endTag( NAMESPACE, "useVersion" );
91 }
92 if ( plugin.getRejectedVersions() != null && plugin.getRejectedVersions().size() > 0 )
93 {
94 serializer.startTag( NAMESPACE, "rejectedVersions" );
95 for ( Iterator iter = plugin.getRejectedVersions().iterator(); iter.hasNext(); )
96 {
97 String rejectedVersion = (String) iter.next();
98 serializer.startTag( NAMESPACE, "rejectedVersion" ).text( rejectedVersion ).endTag( NAMESPACE, "rejectedVersion" );
99 }
100 serializer.endTag( NAMESPACE, "rejectedVersions" );
101 }
102 serializer.endTag( NAMESPACE, tagName );
103 }
104 }
105
106
107
108
109
110
111
112
113
114 private void writePluginRegistry( PluginRegistry pluginRegistry, String tagName, XmlSerializer serializer )
115 throws java.io.IOException
116 {
117 if ( pluginRegistry != null )
118 {
119 serializer.startTag( NAMESPACE, tagName );
120 if ( pluginRegistry.getUpdateInterval() != null && !pluginRegistry.getUpdateInterval().equals( "never" ) )
121 {
122 serializer.startTag( NAMESPACE, "updateInterval" ).text( pluginRegistry.getUpdateInterval() ).endTag( NAMESPACE, "updateInterval" );
123 }
124 if ( pluginRegistry.getAutoUpdate() != null )
125 {
126 serializer.startTag( NAMESPACE, "autoUpdate" ).text( pluginRegistry.getAutoUpdate() ).endTag( NAMESPACE, "autoUpdate" );
127 }
128 if ( pluginRegistry.getCheckLatest() != null )
129 {
130 serializer.startTag( NAMESPACE, "checkLatest" ).text( pluginRegistry.getCheckLatest() ).endTag( NAMESPACE, "checkLatest" );
131 }
132 if ( pluginRegistry.getPlugins() != null && pluginRegistry.getPlugins().size() > 0 )
133 {
134 serializer.startTag( NAMESPACE, "plugins" );
135 for ( Iterator iter = pluginRegistry.getPlugins().iterator(); iter.hasNext(); )
136 {
137 Plugin o = (Plugin) iter.next();
138 writePlugin( o, "plugin", serializer );
139 }
140 serializer.endTag( NAMESPACE, "plugins" );
141 }
142 serializer.endTag( NAMESPACE, tagName );
143 }
144 }
145
146
147
148
149
150
151
152
153
154 private void writeTrackableBase( TrackableBase trackableBase, String tagName, XmlSerializer serializer )
155 throws java.io.IOException
156 {
157 if ( trackableBase != null )
158 {
159 serializer.startTag( NAMESPACE, tagName );
160 serializer.endTag( NAMESPACE, tagName );
161 }
162 }
163
164
165 }