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