This project has retired. For details please refer to its
Attic page.
UsersManagementStaxWriter xref
1
2
3
4
5
6 package org.apache.archiva.redback.users.jdo.io.stax;
7
8
9
10
11
12 import java.io.IOException;
13 import java.io.OutputStream;
14 import java.io.StringWriter;
15 import java.io.Writer;
16 import java.text.DateFormat;
17 import java.util.Iterator;
18 import java.util.Locale;
19 import java.util.jar.Manifest;
20 import javax.xml.stream.*;
21 import org.apache.archiva.redback.users.jdo.JdoUser;
22 import org.apache.archiva.redback.users.jdo.UserDatabase;
23
24
25
26
27
28
29 public class UsersManagementStaxWriter
30 {
31
32
33
34
35
36
37
38
39 private int curId;
40
41
42
43
44 private java.util.Map idMap;
45
46
47
48
49
50
51 public UsersManagementStaxWriter()
52 {
53 idMap = new java.util.HashMap();
54 }
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 public void write( Writer writer, UserDatabase userDatabase )
70 throws java.io.IOException, XMLStreamException
71 {
72 XMLOutputFactory factory = XMLOutputFactory.newInstance();
73 boolean supportWindowsLineEndings = false;
74 if ( factory.isPropertySupported( "com.ctc.wstx.outputEscapeCr" ) )
75 {
76 factory.setProperty( "com.ctc.wstx.outputEscapeCr", Boolean.FALSE );
77 supportWindowsLineEndings = true;
78 }
79 if ( factory.isPropertySupported( "org.codehaus.stax2.automaticEmptyElements" ) )
80 {
81 factory.setProperty( "org.codehaus.stax2.automaticEmptyElements", Boolean.FALSE );
82 }
83 IndentingXMLStreamWriter serializer = new IndentingXMLStreamWriter( factory.createXMLStreamWriter( writer ) );
84 if ( supportWindowsLineEndings )
85 {
86 serializer.setNewLine( serializer.getLineSeparator() );
87 }
88 serializer.writeStartDocument( userDatabase.getModelEncoding(), "1.0" );
89 writeUserDatabase( userDatabase, "userDatabase", serializer );
90 serializer.writeEndDocument();
91 }
92
93
94
95
96
97
98
99
100
101 public void write( OutputStream stream, UserDatabase userDatabase )
102 throws java.io.IOException, XMLStreamException
103 {
104 XMLOutputFactory factory = XMLOutputFactory.newInstance();
105 boolean supportWindowsLineEndings = false;
106 if ( factory.isPropertySupported( "com.ctc.wstx.outputEscapeCr" ) )
107 {
108 factory.setProperty( "com.ctc.wstx.outputEscapeCr", Boolean.FALSE );
109 supportWindowsLineEndings = true;
110 }
111 if ( factory.isPropertySupported( "org.codehaus.stax2.automaticEmptyElements" ) )
112 {
113 factory.setProperty( "org.codehaus.stax2.automaticEmptyElements", Boolean.FALSE );
114 }
115 IndentingXMLStreamWriter serializer = new IndentingXMLStreamWriter( factory.createXMLStreamWriter( stream, userDatabase.getModelEncoding() ) );
116 if ( supportWindowsLineEndings )
117 {
118 serializer.setNewLine( serializer.getLineSeparator() );
119 }
120 serializer.writeStartDocument( userDatabase.getModelEncoding(), "1.0" );
121 writeUserDatabase( userDatabase, "userDatabase", serializer );
122 serializer.writeEndDocument();
123 }
124
125
126
127
128
129
130
131
132
133
134 private void writeJdoUser( JdoUser jdoUser, String tagName, XMLStreamWriter serializer )
135 throws java.io.IOException, XMLStreamException
136 {
137 if ( jdoUser != null )
138 {
139 serializer.writeStartElement( tagName );
140 if ( jdoUser.getUsername() != null )
141 {
142 serializer.writeStartElement( "username" );
143 serializer.writeCharacters( jdoUser.getUsername() );
144 serializer.writeEndElement();
145 }
146 if ( jdoUser.getPassword() != null )
147 {
148 serializer.writeStartElement( "password" );
149 serializer.writeCharacters( jdoUser.getPassword() );
150 serializer.writeEndElement();
151 }
152 if ( jdoUser.getEncodedPassword() != null )
153 {
154 serializer.writeStartElement( "encodedPassword" );
155 serializer.writeCharacters( jdoUser.getEncodedPassword() );
156 serializer.writeEndElement();
157 }
158 if ( jdoUser.getFullName() != null )
159 {
160 serializer.writeStartElement( "fullName" );
161 serializer.writeCharacters( jdoUser.getFullName() );
162 serializer.writeEndElement();
163 }
164 if ( jdoUser.getEmail() != null )
165 {
166 serializer.writeStartElement( "email" );
167 serializer.writeCharacters( jdoUser.getEmail() );
168 serializer.writeEndElement();
169 }
170 if ( jdoUser.getLastPasswordChange() != null )
171 {
172 serializer.writeStartElement( "lastPasswordChange" );
173 serializer.writeCharacters( String.valueOf( jdoUser.getLastPasswordChange().getTime() ) );
174 serializer.writeEndElement();
175 }
176 if ( jdoUser.getLastLoginDate() != null )
177 {
178 serializer.writeStartElement( "lastLoginDate" );
179 serializer.writeCharacters( String.valueOf( jdoUser.getLastLoginDate().getTime() ) );
180 serializer.writeEndElement();
181 }
182 if ( jdoUser.getCountFailedLoginAttempts() != 0 )
183 {
184 serializer.writeStartElement( "countFailedLoginAttempts" );
185 serializer.writeCharacters( String.valueOf( jdoUser.getCountFailedLoginAttempts() ) );
186 serializer.writeEndElement();
187 }
188 if ( jdoUser.isLocked() != false )
189 {
190 serializer.writeStartElement( "locked" );
191 serializer.writeCharacters( String.valueOf( jdoUser.isLocked() ) );
192 serializer.writeEndElement();
193 }
194 if ( jdoUser.isPermanent() != false )
195 {
196 serializer.writeStartElement( "permanent" );
197 serializer.writeCharacters( String.valueOf( jdoUser.isPermanent() ) );
198 serializer.writeEndElement();
199 }
200 if ( jdoUser.isValidated() != false )
201 {
202 serializer.writeStartElement( "validated" );
203 serializer.writeCharacters( String.valueOf( jdoUser.isValidated() ) );
204 serializer.writeEndElement();
205 }
206 if ( jdoUser.isPasswordChangeRequired() != false )
207 {
208 serializer.writeStartElement( "passwordChangeRequired" );
209 serializer.writeCharacters( String.valueOf( jdoUser.isPasswordChangeRequired() ) );
210 serializer.writeEndElement();
211 }
212 if ( ( jdoUser.getPreviousEncodedPasswords() != null ) && ( jdoUser.getPreviousEncodedPasswords().size() > 0 ) )
213 {
214 serializer.writeStartElement( "previousEncodedPasswords" );
215 for ( Iterator iter = jdoUser.getPreviousEncodedPasswords().iterator(); iter.hasNext(); )
216 {
217 String previousEncodedPassword = (String) iter.next();
218 serializer.writeStartElement( "previousEncodedPassword" );
219 serializer.writeCharacters( previousEncodedPassword );
220 serializer.writeEndElement();
221 }
222 serializer.writeEndElement();
223 }
224 if ( jdoUser.getAccountCreationDate() != null )
225 {
226 serializer.writeStartElement( "accountCreationDate" );
227 serializer.writeCharacters( String.valueOf( jdoUser.getAccountCreationDate().getTime() ) );
228 serializer.writeEndElement();
229 }
230 serializer.writeEndElement();
231 }
232 }
233
234
235
236
237
238
239
240
241
242
243 private void writeUserDatabase( UserDatabase userDatabase, String tagName, XMLStreamWriter serializer )
244 throws java.io.IOException, XMLStreamException
245 {
246 if ( userDatabase != null )
247 {
248 serializer.writeStartElement( tagName );
249 if ( ( userDatabase.getUsers() != null ) && ( userDatabase.getUsers().size() > 0 ) )
250 {
251 serializer.writeStartElement( "users" );
252 for ( Iterator iter = userDatabase.getUsers().iterator(); iter.hasNext(); )
253 {
254 JdoUser o = (JdoUser) iter.next();
255 writeJdoUser( o, "user", serializer );
256 }
257 serializer.writeEndElement();
258 }
259 serializer.writeEndElement();
260 }
261 }
262
263 }