Merge lp:~toxn/groundhog/trunk-fr into lp:~juanjux/groundhog/trunk
- trunk-fr
- Merge into trunk
Status: | Needs review |
---|---|
Proposed branch: | lp:~toxn/groundhog/trunk-fr |
Merge into: | lp:~juanjux/groundhog/trunk |
Diff against target: | 233642 lines |
To merge this branch: | bzr merge lp:~toxn/groundhog/trunk-fr |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
juanjux | Approve | ||
Review via email: mp+88046@code.launchpad.net |
This proposal supersedes a proposal from 2012-01-10.
Commit message
Description of the change
Translated to french (including string arrays)
Translation is approx 50% validated (work in progress)
Moved 2 hard coded strings to resource ("New Post" menu item and "Search Matching Groups")
Changed Apache Harmony's default TrustManager to Sun's one (that's really a compiling comodity as I didn't want to install the whole HDK, feel free not to merge that).
juanjux (juanjux) wrote : Posted in a previous version of this proposal | # |
juanjux (juanjux) wrote : Posted in a previous version of this proposal | # |
Looks good
Toxico Nimbus (toxn) wrote : | # |
Le mercredi 11 janvier 2012 12:10:32, vous avez écrit :
> Review: Approve
Glad you like it !
Unmerged revisions
- 66. By Toxico Nimbus
-
Resolved some merging conflicts.
- 65. By Toxico Nimbus
-
100% translated to french (including string arrays) approx 50% verified
moved 2 hard-coded string to ressources
switched default TrustManager to sun's to avoid use of apache harmony.
Preview Diff
1 | === modified file 'GroundhogReader/.classpath' |
2 | --- GroundhogReader/.classpath 2010-11-04 00:50:46 +0000 |
3 | +++ GroundhogReader/.classpath 2012-01-10 12:37:24 +0000 |
4 | @@ -8,6 +8,7 @@ |
5 | <classpathentry kind="src" path="gen"/> |
6 | <classpathentry exported="true" kind="lib" path="libs/apache-mime4j-0.6.jar" sourcepath="/home/juanjux/reader/GroundhogReader/apache-mime4j-0.6"/> |
7 | <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/API 7 extra libraries"/> |
8 | - <classpathentry kind="lib" path="/home/juanjux/reader/GroundhogReader/libs/shared-bouncycastle-reduced-0.9.12.jar"/> |
9 | - <classpathentry kind="output" path="bin"/> |
10 | + <classpathentry kind="lib" path="libs/shared-bouncycastle-reduced-0.9.12.jar"/> |
11 | + <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> |
12 | + <classpathentry kind="output" path="bin/classes"/> |
13 | </classpath> |
14 | |
15 | === modified file 'GroundhogReader/AndroidManifest.xml' |
16 | --- GroundhogReader/AndroidManifest.xml 2010-11-04 00:50:46 +0000 |
17 | +++ GroundhogReader/AndroidManifest.xml 2012-01-10 12:37:24 +0000 |
18 | @@ -1,125 +1,145 @@ |
19 | <?xml version="1.0" encoding="utf-8"?> |
20 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
21 | - package="com.almarsoft.GroundhogReader" |
22 | - android:versionName="1.20.1 (SSL connection supported, thanks Nick Booker)" android:versionCode="62" |
23 | - android:installLocation="auto" |
24 | - > |
25 | - |
26 | - <uses-sdk android:minSdkVersion="4"/> |
27 | - |
28 | - <supports-screens |
29 | - android:smallScreens="true" |
30 | - android:normalScreens="true" |
31 | - android:largeScreens="true" |
32 | - android:anyDensity="true" |
33 | - /> |
34 | - |
35 | - <uses-permission android:name="android.permission.INTERNET" /> |
36 | + android:installLocation="auto" |
37 | + package="com.almarsoft.GroundhogReader" |
38 | + android:versionCode="65" |
39 | + android:versionName="1.20.4" > |
40 | + |
41 | + <uses-sdk android:minSdkVersion="4" /> |
42 | + |
43 | + <supports-screens |
44 | + android:anyDensity="true" |
45 | + android:largeScreens="true" |
46 | + android:normalScreens="true" |
47 | + android:smallScreens="true" /> |
48 | + |
49 | + <uses-permission android:name="android.permission.INTERNET" /> |
50 | <uses-permission android:name="android.permission.WAKE_LOCK" /> |
51 | <uses-permission android:name="android.permission.VIBRATE" /> |
52 | <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> |
53 | <uses-permission android:name="android.permission.STORAGE" /> |
54 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
55 | - |
56 | - <application android:icon="@drawable/icon" |
57 | - android:label="@string/app_name" |
58 | - android:theme="@android:style/Theme.Light.NoTitleBar" |
59 | - android:name=".lib.GroundhogApplication"> |
60 | - |
61 | - <receiver android:name=".GroupsCheckAlarmReceiver" android:process=":remote" /> |
62 | - |
63 | - <receiver android:name=".BootReceiver"> |
64 | - <intent-filter> |
65 | - <action android:name="android.intent.action.BOOT_COMPLETED" /> |
66 | - <category android:name="android.intent.category.DEFAULT" /> |
67 | - </intent-filter> |
68 | - </receiver> |
69 | - |
70 | - <activity android:name=".GroupListActivity" android:label="Groundhog Newsreader" android:configChanges="keyboardHidden|orientation"> |
71 | - <intent-filter> |
72 | - <action android:name="android.intent.action.MAIN" /> |
73 | + |
74 | + <application |
75 | + android:icon="@drawable/icon" |
76 | + android:label="@string/app_name" |
77 | + android:name=".lib.GroundhogApplication" |
78 | + android:theme="@android:style/Theme.Light.NoTitleBar" > |
79 | + <receiver |
80 | + android:name=".GroupsCheckAlarmReceiver" |
81 | + android:process=":remote" /> |
82 | + <receiver android:name=".BootReceiver" > |
83 | + <intent-filter > |
84 | + <action android:name="android.intent.action.BOOT_COMPLETED" /> |
85 | + |
86 | + <category android:name="android.intent.category.DEFAULT" /> |
87 | + </intent-filter> |
88 | + </receiver> |
89 | + |
90 | + <activity |
91 | + android:configChanges="keyboardHidden|orientation" |
92 | + android:label="Groundhog Newsreader" |
93 | + android:name=".GroupListActivity" > |
94 | + <intent-filter > |
95 | + <action android:name="android.intent.action.MAIN" /> |
96 | + |
97 | <category android:name="android.intent.category.LAUNCHER" /> |
98 | </intent-filter> |
99 | </activity> |
100 | - |
101 | - <activity android:name=".MessageListActivity" |
102 | - android:label="Message List" |
103 | - android:configChanges="keyboardHidden|orientation"> |
104 | - <intent-filter> |
105 | - <action android:name="android.intent.action.MAIN" /> |
106 | - <category android:name="android.intent.category.DEFAULT" /> |
107 | - </intent-filter> |
108 | - </activity> |
109 | - |
110 | - |
111 | - <activity android:name=".MessageActivity" |
112 | - android:label="Read Message" |
113 | - android:configChanges="keyboardHidden|orientation"> |
114 | - <intent-filter> |
115 | - <action android:name="android.intent.action.MAIN" /> |
116 | - <category android:name="android.intent.category.DEFAULT" /> |
117 | - </intent-filter> |
118 | - </activity> |
119 | - |
120 | - |
121 | - <activity android:name=".OptionsActivity" |
122 | - android:label="Settings" |
123 | - android:theme="@android:style/Theme.Black"> |
124 | - <intent-filter> |
125 | - <action android:name="android.intent.action.MAIN" /> |
126 | - <category android:name="android.intent.category.DEFAULT" /> |
127 | - </intent-filter> |
128 | - </activity> |
129 | - |
130 | - <activity android:name=".CharsetActivity" android:label="Posting Charset"> |
131 | - <intent-filter> |
132 | - <action android:name="android.intent.action.MAIN" /> |
133 | - <category android:name="android.intent.category.DEFAULT" /> |
134 | - </intent-filter> |
135 | - </activity> |
136 | - |
137 | - <activity android:name=".ReadCharsetActivity" android:label="Posting Charset"> |
138 | - <intent-filter> |
139 | - <action android:name="android.intent.action.MAIN" /> |
140 | - <category android:name="android.intent.category.DEFAULT" /> |
141 | - </intent-filter> |
142 | - </activity> |
143 | - |
144 | - <activity android:name=".SubscribeActivity" android:configChanges="keyboardHidden|orientation"> |
145 | - |
146 | - <intent-filter> |
147 | - <action android:name="android.intent.action.MAIN" /> |
148 | - <category android:name="android.intent.category.DEFAULT" /> |
149 | - |
150 | - </intent-filter> |
151 | - </activity> |
152 | - |
153 | - <activity android:name=".ComposeActivity" android:label="Compose Message" android:configChanges="keyboardHidden|orientation"> |
154 | - <intent-filter> |
155 | - <action android:name="android.intent.action.MAIN" /> |
156 | - <category android:name="android.intent.category.DEFAULT" /> |
157 | - </intent-filter> |
158 | - </activity> |
159 | - |
160 | - <activity android:name=".BannedActivity" android:label="Unban"> |
161 | - <intent-filter> |
162 | - <action android:name="android.intent.action.MAIN" /> |
163 | - <category android:name="android.intent.category.DEFAULT" /> |
164 | - </intent-filter> |
165 | - </activity> |
166 | - |
167 | - <activity android:name=".QuotingActivity" android:label="Select lines to quote"> |
168 | - <intent-filter> |
169 | - <action android:name="android.intent.action.MAIN" /> |
170 | - <category android:name="android.intent.category.DEFAULT" /> |
171 | - </intent-filter> |
172 | - </activity> |
173 | - |
174 | - <activity android:name=".HelpActivity" android:label="Quick Help"> |
175 | - <intent-filter> |
176 | - <action android:name="android.intent.action.MAIN" /> |
177 | - <category android:name="android.intent.category.DEFAULT" /> |
178 | - </intent-filter> |
179 | - </activity> |
180 | + <activity |
181 | + android:configChanges="keyboardHidden|orientation" |
182 | + android:label="Message List" |
183 | + android:name=".MessageListActivity" > |
184 | + <intent-filter > |
185 | + <action android:name="android.intent.action.MAIN" /> |
186 | + |
187 | + <category android:name="android.intent.category.DEFAULT" /> |
188 | + </intent-filter> |
189 | + </activity> |
190 | + <activity |
191 | + android:configChanges="keyboardHidden|orientation" |
192 | + android:label="Read Message" |
193 | + android:name=".MessageActivity" > |
194 | + <intent-filter > |
195 | + <action android:name="android.intent.action.MAIN" /> |
196 | + |
197 | + <category android:name="android.intent.category.DEFAULT" /> |
198 | + </intent-filter> |
199 | + </activity> |
200 | + <activity |
201 | + android:label="Settings" |
202 | + android:name=".OptionsActivity" |
203 | + android:theme="@android:style/Theme.Black" > |
204 | + <intent-filter > |
205 | + <action android:name="android.intent.action.MAIN" /> |
206 | + |
207 | + <category android:name="android.intent.category.DEFAULT" /> |
208 | + </intent-filter> |
209 | + </activity> |
210 | + <activity |
211 | + android:label="Posting Charset" |
212 | + android:name=".CharsetActivity" > |
213 | + <intent-filter > |
214 | + <action android:name="android.intent.action.MAIN" /> |
215 | + |
216 | + <category android:name="android.intent.category.DEFAULT" /> |
217 | + </intent-filter> |
218 | + </activity> |
219 | + <activity |
220 | + android:label="Posting Charset" |
221 | + android:name=".ReadCharsetActivity" > |
222 | + <intent-filter > |
223 | + <action android:name="android.intent.action.MAIN" /> |
224 | + |
225 | + <category android:name="android.intent.category.DEFAULT" /> |
226 | + </intent-filter> |
227 | + </activity> |
228 | + <activity |
229 | + android:configChanges="keyboardHidden|orientation" |
230 | + android:name=".SubscribeActivity" > |
231 | + <intent-filter > |
232 | + <action android:name="android.intent.action.MAIN" /> |
233 | + |
234 | + <category android:name="android.intent.category.DEFAULT" /> |
235 | + </intent-filter> |
236 | + </activity> |
237 | + <activity |
238 | + android:configChanges="keyboardHidden|orientation" |
239 | + android:label="Compose Message" |
240 | + android:name=".ComposeActivity" > |
241 | + <intent-filter > |
242 | + <action android:name="android.intent.action.MAIN" /> |
243 | + |
244 | + <category android:name="android.intent.category.DEFAULT" /> |
245 | + </intent-filter> |
246 | + </activity> |
247 | + <activity |
248 | + android:label="Unban" |
249 | + android:name=".BannedActivity" > |
250 | + <intent-filter > |
251 | + <action android:name="android.intent.action.MAIN" /> |
252 | + |
253 | + <category android:name="android.intent.category.DEFAULT" /> |
254 | + </intent-filter> |
255 | + </activity> |
256 | + <activity |
257 | + android:label="Select lines to quote" |
258 | + android:name=".QuotingActivity" > |
259 | + <intent-filter > |
260 | + <action android:name="android.intent.action.MAIN" /> |
261 | + |
262 | + <category android:name="android.intent.category.DEFAULT" /> |
263 | + </intent-filter> |
264 | + </activity> |
265 | + <activity |
266 | + android:label="Quick Help" |
267 | + android:name=".HelpActivity" > |
268 | + <intent-filter > |
269 | + <action android:name="android.intent.action.MAIN" /> |
270 | + |
271 | + <category android:name="android.intent.category.DEFAULT" /> |
272 | + </intent-filter> |
273 | + </activity> |
274 | </application> |
275 | -</manifest> |
276 | + |
277 | +</manifest> |
278 | \ No newline at end of file |
279 | |
280 | === removed directory 'GroundhogReader/apache-mime4j-0.6' |
281 | === removed file 'GroundhogReader/apache-mime4j-0.6/BUILDING.txt' |
282 | --- GroundhogReader/apache-mime4j-0.6/BUILDING.txt 2010-03-14 02:32:45 +0000 |
283 | +++ GroundhogReader/apache-mime4j-0.6/BUILDING.txt 1970-01-01 00:00:00 +0000 |
284 | @@ -1,44 +0,0 @@ |
285 | -Building Apache Mime4j |
286 | -====================== |
287 | - |
288 | -(1) Requisites |
289 | --------------- |
290 | -Mime4j utilizes Maven 2 as a distribution management and packaging tool. Version 2.0.7 |
291 | -or above is recommended. |
292 | - |
293 | -JDK 1.5 or above is required in order to compile Mime4j. |
294 | - |
295 | -Maven installation and configuration instructions can be found here: |
296 | - |
297 | -http://maven.apache.org/run-maven/index.html |
298 | - |
299 | -(2) Executing test cases |
300 | - |
301 | -Execute the following command in order to compile and test the components: |
302 | - |
303 | -mvn test |
304 | - |
305 | -(3) Building packages |
306 | - |
307 | -Execute the following command in order to build JAR and assembly packages: |
308 | - |
309 | -mvn package |
310 | - |
311 | -One can also utilize the 'local' profile to build JAR and assembly packages |
312 | -in the off-line mode: |
313 | - |
314 | -mvn -Plocal package |
315 | - |
316 | -Redistributables will be placed in the target folder. |
317 | - |
318 | -(4) Building documentation |
319 | - |
320 | -Execute the following command in order to generate javadoc: |
321 | - |
322 | -mvn javadoc:javadoc |
323 | - |
324 | -(5) Building project web site |
325 | - |
326 | -Execute the following command in order to generate the project web site: |
327 | - |
328 | -mvn site |
329 | \ No newline at end of file |
330 | |
331 | === removed file 'GroundhogReader/apache-mime4j-0.6/LICENSE.txt' |
332 | --- GroundhogReader/apache-mime4j-0.6/LICENSE.txt 2010-03-14 02:32:45 +0000 |
333 | +++ GroundhogReader/apache-mime4j-0.6/LICENSE.txt 1970-01-01 00:00:00 +0000 |
334 | @@ -1,451 +0,0 @@ |
335 | - Apache License |
336 | - Version 2.0, January 2004 |
337 | - http://www.apache.org/licenses/ |
338 | - |
339 | - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
340 | - |
341 | - 1. Definitions. |
342 | - |
343 | - "License" shall mean the terms and conditions for use, reproduction, |
344 | - and distribution as defined by Sections 1 through 9 of this document. |
345 | - |
346 | - "Licensor" shall mean the copyright owner or entity authorized by |
347 | - the copyright owner that is granting the License. |
348 | - |
349 | - "Legal Entity" shall mean the union of the acting entity and all |
350 | - other entities that control, are controlled by, or are under common |
351 | - control with that entity. For the purposes of this definition, |
352 | - "control" means (i) the power, direct or indirect, to cause the |
353 | - direction or management of such entity, whether by contract or |
354 | - otherwise, or (ii) ownership of fifty percent (50%) or more of the |
355 | - outstanding shares, or (iii) beneficial ownership of such entity. |
356 | - |
357 | - "You" (or "Your") shall mean an individual or Legal Entity |
358 | - exercising permissions granted by this License. |
359 | - |
360 | - "Source" form shall mean the preferred form for making modifications, |
361 | - including but not limited to software source code, documentation |
362 | - source, and configuration files. |
363 | - |
364 | - "Object" form shall mean any form resulting from mechanical |
365 | - transformation or translation of a Source form, including but |
366 | - not limited to compiled object code, generated documentation, |
367 | - and conversions to other media types. |
368 | - |
369 | - "Work" shall mean the work of authorship, whether in Source or |
370 | - Object form, made available under the License, as indicated by a |
371 | - copyright notice that is included in or attached to the work |
372 | - (an example is provided in the Appendix below). |
373 | - |
374 | - "Derivative Works" shall mean any work, whether in Source or Object |
375 | - form, that is based on (or derived from) the Work and for which the |
376 | - editorial revisions, annotations, elaborations, or other modifications |
377 | - represent, as a whole, an original work of authorship. For the purposes |
378 | - of this License, Derivative Works shall not include works that remain |
379 | - separable from, or merely link (or bind by name) to the interfaces of, |
380 | - the Work and Derivative Works thereof. |
381 | - |
382 | - "Contribution" shall mean any work of authorship, including |
383 | - the original version of the Work and any modifications or additions |
384 | - to that Work or Derivative Works thereof, that is intentionally |
385 | - submitted to Licensor for inclusion in the Work by the copyright owner |
386 | - or by an individual or Legal Entity authorized to submit on behalf of |
387 | - the copyright owner. For the purposes of this definition, "submitted" |
388 | - means any form of electronic, verbal, or written communication sent |
389 | - to the Licensor or its representatives, including but not limited to |
390 | - communication on electronic mailing lists, source code control systems, |
391 | - and issue tracking systems that are managed by, or on behalf of, the |
392 | - Licensor for the purpose of discussing and improving the Work, but |
393 | - excluding communication that is conspicuously marked or otherwise |
394 | - designated in writing by the copyright owner as "Not a Contribution." |
395 | - |
396 | - "Contributor" shall mean Licensor and any individual or Legal Entity |
397 | - on behalf of whom a Contribution has been received by Licensor and |
398 | - subsequently incorporated within the Work. |
399 | - |
400 | - 2. Grant of Copyright License. Subject to the terms and conditions of |
401 | - this License, each Contributor hereby grants to You a perpetual, |
402 | - worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
403 | - copyright license to reproduce, prepare Derivative Works of, |
404 | - publicly display, publicly perform, sublicense, and distribute the |
405 | - Work and such Derivative Works in Source or Object form. |
406 | - |
407 | - 3. Grant of Patent License. Subject to the terms and conditions of |
408 | - this License, each Contributor hereby grants to You a perpetual, |
409 | - worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
410 | - (except as stated in this section) patent license to make, have made, |
411 | - use, offer to sell, sell, import, and otherwise transfer the Work, |
412 | - where such license applies only to those patent claims licensable |
413 | - by such Contributor that are necessarily infringed by their |
414 | - Contribution(s) alone or by combination of their Contribution(s) |
415 | - with the Work to which such Contribution(s) was submitted. If You |
416 | - institute patent litigation against any entity (including a |
417 | - cross-claim or counterclaim in a lawsuit) alleging that the Work |
418 | - or a Contribution incorporated within the Work constitutes direct |
419 | - or contributory patent infringement, then any patent licenses |
420 | - granted to You under this License for that Work shall terminate |
421 | - as of the date such litigation is filed. |
422 | - |
423 | - 4. Redistribution. You may reproduce and distribute copies of the |
424 | - Work or Derivative Works thereof in any medium, with or without |
425 | - modifications, and in Source or Object form, provided that You |
426 | - meet the following conditions: |
427 | - |
428 | - (a) You must give any other recipients of the Work or |
429 | - Derivative Works a copy of this License; and |
430 | - |
431 | - (b) You must cause any modified files to carry prominent notices |
432 | - stating that You changed the files; and |
433 | - |
434 | - (c) You must retain, in the Source form of any Derivative Works |
435 | - that You distribute, all copyright, patent, trademark, and |
436 | - attribution notices from the Source form of the Work, |
437 | - excluding those notices that do not pertain to any part of |
438 | - the Derivative Works; and |
439 | - |
440 | - (d) If the Work includes a "NOTICE" text file as part of its |
441 | - distribution, then any Derivative Works that You distribute must |
442 | - include a readable copy of the attribution notices contained |
443 | - within such NOTICE file, excluding those notices that do not |
444 | - pertain to any part of the Derivative Works, in at least one |
445 | - of the following places: within a NOTICE text file distributed |
446 | - as part of the Derivative Works; within the Source form or |
447 | - documentation, if provided along with the Derivative Works; or, |
448 | - within a display generated by the Derivative Works, if and |
449 | - wherever such third-party notices normally appear. The contents |
450 | - of the NOTICE file are for informational purposes only and |
451 | - do not modify the License. You may add Your own attribution |
452 | - notices within Derivative Works that You distribute, alongside |
453 | - or as an addendum to the NOTICE text from the Work, provided |
454 | - that such additional attribution notices cannot be construed |
455 | - as modifying the License. |
456 | - |
457 | - You may add Your own copyright statement to Your modifications and |
458 | - may provide additional or different license terms and conditions |
459 | - for use, reproduction, or distribution of Your modifications, or |
460 | - for any such Derivative Works as a whole, provided Your use, |
461 | - reproduction, and distribution of the Work otherwise complies with |
462 | - the conditions stated in this License. |
463 | - |
464 | - 5. Submission of Contributions. Unless You explicitly state otherwise, |
465 | - any Contribution intentionally submitted for inclusion in the Work |
466 | - by You to the Licensor shall be under the terms and conditions of |
467 | - this License, without any additional terms or conditions. |
468 | - Notwithstanding the above, nothing herein shall supersede or modify |
469 | - the terms of any separate license agreement you may have executed |
470 | - with Licensor regarding such Contributions. |
471 | - |
472 | - 6. Trademarks. This License does not grant permission to use the trade |
473 | - names, trademarks, service marks, or product names of the Licensor, |
474 | - except as required for reasonable and customary use in describing the |
475 | - origin of the Work and reproducing the content of the NOTICE file. |
476 | - |
477 | - 7. Disclaimer of Warranty. Unless required by applicable law or |
478 | - agreed to in writing, Licensor provides the Work (and each |
479 | - Contributor provides its Contributions) on an "AS IS" BASIS, |
480 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
481 | - implied, including, without limitation, any warranties or conditions |
482 | - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
483 | - PARTICULAR PURPOSE. You are solely responsible for determining the |
484 | - appropriateness of using or redistributing the Work and assume any |
485 | - risks associated with Your exercise of permissions under this License. |
486 | - |
487 | - 8. Limitation of Liability. In no event and under no legal theory, |
488 | - whether in tort (including negligence), contract, or otherwise, |
489 | - unless required by applicable law (such as deliberate and grossly |
490 | - negligent acts) or agreed to in writing, shall any Contributor be |
491 | - liable to You for damages, including any direct, indirect, special, |
492 | - incidental, or consequential damages of any character arising as a |
493 | - result of this License or out of the use or inability to use the |
494 | - Work (including but not limited to damages for loss of goodwill, |
495 | - work stoppage, computer failure or malfunction, or any and all |
496 | - other commercial damages or losses), even if such Contributor |
497 | - has been advised of the possibility of such damages. |
498 | - |
499 | - 9. Accepting Warranty or Additional Liability. While redistributing |
500 | - the Work or Derivative Works thereof, You may choose to offer, |
501 | - and charge a fee for, acceptance of support, warranty, indemnity, |
502 | - or other liability obligations and/or rights consistent with this |
503 | - License. However, in accepting such obligations, You may act only |
504 | - on Your own behalf and on Your sole responsibility, not on behalf |
505 | - of any other Contributor, and only if You agree to indemnify, |
506 | - defend, and hold each Contributor harmless for any liability |
507 | - incurred by, or claims asserted against, such Contributor by reason |
508 | - of your accepting any such warranty or additional liability. |
509 | - |
510 | - END OF TERMS AND CONDITIONS |
511 | - |
512 | - |
513 | - |
514 | - |
515 | - THIS PRODUCT ALSO INCLUDES THIRD PARTY SOFTWARE REDISTRIBUTED UNDER THE |
516 | - FOLLOWING LICENSES: |
517 | - |
518 | - JUnit, Common Public License Version 1.0 (junit-3.8.1.jar) |
519 | - http://junit.org |
520 | - |
521 | - THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC |
522 | - LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM |
523 | - CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. |
524 | - |
525 | - 1. DEFINITIONS |
526 | - |
527 | - "Contribution" means: |
528 | - |
529 | - a) in the case of the initial Contributor, the initial code and |
530 | - documentation distributed under this Agreement, and |
531 | - |
532 | - b) in the case of each subsequent Contributor: |
533 | - |
534 | - i) changes to the Program, and |
535 | - |
536 | - ii) additions to the Program; |
537 | - |
538 | - where such changes and/or additions to the Program originate from and are |
539 | - distributed by that particular Contributor. A Contribution 'originates' from a |
540 | - Contributor if it was added to the Program by such Contributor itself or anyone |
541 | - acting on such Contributor's behalf. Contributions do not include additions to |
542 | - the Program which: (i) are separate modules of software distributed in |
543 | - conjunction with the Program under their own license agreement, and (ii) are not |
544 | - derivative works of the Program. |
545 | - |
546 | - "Contributor" means any person or entity that distributes the Program. |
547 | - |
548 | - "Licensed Patents " mean patent claims licensable by a Contributor which are |
549 | - necessarily infringed by the use or sale of its Contribution alone or when |
550 | - combined with the Program. |
551 | - |
552 | - "Program" means the Contributions distributed in accordance with this Agreement. |
553 | - |
554 | - "Recipient" means anyone who receives the Program under this Agreement, |
555 | - including all Contributors. |
556 | - |
557 | - 2. GRANT OF RIGHTS |
558 | - |
559 | - a) Subject to the terms of this Agreement, each Contributor hereby grants |
560 | - Recipient a non-exclusive, worldwide, royalty-free copyright license to |
561 | - reproduce, prepare derivative works of, publicly display, publicly perform, |
562 | - distribute and sublicense the Contribution of such Contributor, if any, and such |
563 | - derivative works, in source code and object code form. |
564 | - |
565 | - b) Subject to the terms of this Agreement, each Contributor hereby grants |
566 | - Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed |
567 | - Patents to make, use, sell, offer to sell, import and otherwise transfer the |
568 | - Contribution of such Contributor, if any, in source code and object code form. |
569 | - This patent license shall apply to the combination of the Contribution and the |
570 | - Program if, at the time the Contribution is added by the Contributor, such |
571 | - addition of the Contribution causes such combination to be covered by the |
572 | - Licensed Patents. The patent license shall not apply to any other combinations |
573 | - which include the Contribution. No hardware per se is licensed hereunder. |
574 | - |
575 | - c) Recipient understands that although each Contributor grants the licenses |
576 | - to its Contributions set forth herein, no assurances are provided by any |
577 | - Contributor that the Program does not infringe the patent or other intellectual |
578 | - property rights of any other entity. Each Contributor disclaims any liability to |
579 | - Recipient for claims brought by any other entity based on infringement of |
580 | - intellectual property rights or otherwise. As a condition to exercising the |
581 | - rights and licenses granted hereunder, each Recipient hereby assumes sole |
582 | - responsibility to secure any other intellectual property rights needed, if any. |
583 | - For example, if a third party patent license is required to allow Recipient to |
584 | - distribute the Program, it is Recipient's responsibility to acquire that license |
585 | - before distributing the Program. |
586 | - |
587 | - d) Each Contributor represents that to its knowledge it has sufficient |
588 | - copyright rights in its Contribution, if any, to grant the copyright license set |
589 | - forth in this Agreement. |
590 | - |
591 | - 3. REQUIREMENTS |
592 | - |
593 | - A Contributor may choose to distribute the Program in object code form under its |
594 | - own license agreement, provided that: |
595 | - |
596 | - a) it complies with the terms and conditions of this Agreement; and |
597 | - |
598 | - b) its license agreement: |
599 | - |
600 | - i) effectively disclaims on behalf of all Contributors all warranties and |
601 | - conditions, express and implied, including warranties or conditions of title and |
602 | - non-infringement, and implied warranties or conditions of merchantability and |
603 | - fitness for a particular purpose; |
604 | - |
605 | - ii) effectively excludes on behalf of all Contributors all liability for |
606 | - damages, including direct, indirect, special, incidental and consequential |
607 | - damages, such as lost profits; |
608 | - |
609 | - iii) states that any provisions which differ from this Agreement are offered |
610 | - by that Contributor alone and not by any other party; and |
611 | - |
612 | - iv) states that source code for the Program is available from such |
613 | - Contributor, and informs licensees how to obtain it in a reasonable manner on or |
614 | - through a medium customarily used for software exchange. |
615 | - |
616 | - When the Program is made available in source code form: |
617 | - |
618 | - a) it must be made available under this Agreement; and |
619 | - |
620 | - b) a copy of this Agreement must be included with each copy of the Program. |
621 | - |
622 | - Contributors may not remove or alter any copyright notices contained within the |
623 | - Program. |
624 | - |
625 | - Each Contributor must identify itself as the originator of its Contribution, if |
626 | - any, in a manner that reasonably allows subsequent Recipients to identify the |
627 | - originator of the Contribution. |
628 | - |
629 | - 4. COMMERCIAL DISTRIBUTION |
630 | - |
631 | - Commercial distributors of software may accept certain responsibilities with |
632 | - respect to end users, business partners and the like. While this license is |
633 | - intended to facilitate the commercial use of the Program, the Contributor who |
634 | - includes the Program in a commercial product offering should do so in a manner |
635 | - which does not create potential liability for other Contributors. Therefore, if |
636 | - a Contributor includes the Program in a commercial product offering, such |
637 | - Contributor ("Commercial Contributor") hereby agrees to defend and indemnify |
638 | - every other Contributor ("Indemnified Contributor") against any losses, damages |
639 | - and costs (collectively "Losses") arising from claims, lawsuits and other legal |
640 | - actions brought by a third party against the Indemnified Contributor to the |
641 | - extent caused by the acts or omissions of such Commercial Contributor in |
642 | - connection with its distribution of the Program in a commercial product |
643 | - offering. The obligations in this section do not apply to any claims or Losses |
644 | - relating to any actual or alleged intellectual property infringement. In order |
645 | - to qualify, an Indemnified Contributor must: a) promptly notify the Commercial |
646 | - Contributor in writing of such claim, and b) allow the Commercial Contributor to |
647 | - control, and cooperate with the Commercial Contributor in, the defense and any |
648 | - related settlement negotiations. The Indemnified Contributor may participate in |
649 | - any such claim at its own expense. |
650 | - |
651 | - For example, a Contributor might include the Program in a commercial product |
652 | - offering, Product X. That Contributor is then a Commercial Contributor. If that |
653 | - Commercial Contributor then makes performance claims, or offers warranties |
654 | - related to Product X, those performance claims and warranties are such |
655 | - Commercial Contributor's responsibility alone. Under this section, the |
656 | - Commercial Contributor would have to defend claims against the other |
657 | - Contributors related to those performance claims and warranties, and if a court |
658 | - requires any other Contributor to pay any damages as a result, the Commercial |
659 | - Contributor must pay those damages. |
660 | - |
661 | - 5. NO WARRANTY |
662 | - |
663 | - EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN |
664 | - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR |
665 | - IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, |
666 | - NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each |
667 | - Recipient is solely responsible for determining the appropriateness of using and |
668 | - distributing the Program and assumes all risks associated with its exercise of |
669 | - rights under this Agreement, including but not limited to the risks and costs of |
670 | - program errors, compliance with applicable laws, damage to or loss of data, |
671 | - programs or equipment, and unavailability or interruption of operations. |
672 | - |
673 | - 6. DISCLAIMER OF LIABILITY |
674 | - |
675 | - EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY |
676 | - CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
677 | - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST |
678 | - PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
679 | - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
680 | - OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS |
681 | - GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
682 | - |
683 | - 7. GENERAL |
684 | - |
685 | - If any provision of this Agreement is invalid or unenforceable under applicable |
686 | - law, it shall not affect the validity or enforceability of the remainder of the |
687 | - terms of this Agreement, and without further action by the parties hereto, such |
688 | - provision shall be reformed to the minimum extent necessary to make such |
689 | - provision valid and enforceable. |
690 | - |
691 | - If Recipient institutes patent litigation against a Contributor with respect to |
692 | - a patent applicable to software (including a cross-claim or counterclaim in a |
693 | - lawsuit), then any patent licenses granted by that Contributor to such Recipient |
694 | - under this Agreement shall terminate as of the date such litigation is filed. In |
695 | - addition, if Recipient institutes patent litigation against any entity |
696 | - (including a cross-claim or counterclaim in a lawsuit) alleging that the Program |
697 | - itself (excluding combinations of the Program with other software or hardware) |
698 | - infringes such Recipient's patent(s), then such Recipient's rights granted under |
699 | - Section 2(b) shall terminate as of the date such litigation is filed. |
700 | - |
701 | - All Recipient's rights under this Agreement shall terminate if it fails to |
702 | - comply with any of the material terms or conditions of this Agreement and does |
703 | - not cure such failure in a reasonable period of time after becoming aware of |
704 | - such noncompliance. If all Recipient's rights under this Agreement terminate, |
705 | - Recipient agrees to cease use and distribution of the Program as soon as |
706 | - reasonably practicable. However, Recipient's obligations under this Agreement |
707 | - and any licenses granted by Recipient relating to the Program shall continue and |
708 | - survive. |
709 | - |
710 | - Everyone is permitted to copy and distribute copies of this Agreement, but in |
711 | - order to avoid inconsistency the Agreement is copyrighted and may only be |
712 | - modified in the following manner. The Agreement Steward reserves the right to |
713 | - publish new versions (including revisions) of this Agreement from time to time. |
714 | - No one other than the Agreement Steward has the right to modify this Agreement. |
715 | - IBM is the initial Agreement Steward. IBM may assign the responsibility to serve |
716 | - as the Agreement Steward to a suitable separate entity. Each new version of the |
717 | - Agreement will be given a distinguishing version number. The Program (including |
718 | - Contributions) may always be distributed subject to the version of the Agreement |
719 | - under which it was received. In addition, after a new version of the Agreement |
720 | - is published, Contributor may elect to distribute the Program (including its |
721 | - Contributions) under the new version. Except as expressly stated in Sections |
722 | - 2(a) and 2(b) above, Recipient receives no rights or licenses to the |
723 | - intellectual property of any Contributor under this Agreement, whether |
724 | - expressly, by implication, estoppel or otherwise. All rights in the Program not |
725 | - expressly granted under this Agreement are reserved. |
726 | - |
727 | - This Agreement is governed by the laws of the State of New York and the |
728 | - intellectual property laws of the United States of America. No party to this |
729 | - Agreement will bring a legal action under this Agreement more than one year |
730 | - after the cause of action arose. Each party waives its rights to a jury trial in |
731 | - any resulting litigation. |
732 | - |
733 | - |
734 | - Bnd, Bundle Tool http://www.aqute.biz/Code/Bnd, The Apache License, Version 2.0 |
735 | - ALL OTHERS JARS, BY APACHE SOFTWARE FOUNDATION |
736 | - ALL OF THESE ARE LICENSED UNDER The Apache License, Version 2.0 EXCEPT: |
737 | - |
738 | - Apache Commons Logging, |
739 | - The Apache Software License, Version 1.1 (commons-logging-1.1.1.jar) |
740 | - |
741 | - The Apache Software License, Version 1.1 |
742 | - |
743 | - Redistribution and use in source and binary forms, with or without |
744 | - modification, are permitted provided that the following conditions |
745 | - are met: |
746 | - |
747 | - 1. Redistributions of source code must retain the above copyright |
748 | - notice, this list of conditions and the following disclaimer. |
749 | - |
750 | - 2. Redistributions in binary form must reproduce the above copyright |
751 | - notice, this list of conditions and the following disclaimer in |
752 | - the documentation and/or other materials provided with the |
753 | - distribution. |
754 | - |
755 | - 3. The end-user documentation included with the redistribution, |
756 | - if any, must include the following acknowledgment: |
757 | - "This product includes software developed by the |
758 | - Apache Software Foundation (http://www.apache.org/)." |
759 | - Alternately, this acknowledgment may appear in the software itself, |
760 | - if and wherever such third-party acknowledgments normally appear. |
761 | - |
762 | - 4. The names "Apache" and "Apache Software Foundation" must |
763 | - not be used to endorse or promote products derived from this |
764 | - software without prior written permission. For written |
765 | - permission, please contact apache@apache.org. |
766 | - |
767 | - 5. Products derived from this software may not be called "Apache", |
768 | - nor may "Apache" appear in their name, without prior written |
769 | - permission of the Apache Software Foundation. |
770 | - |
771 | - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
772 | - WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
773 | - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
774 | - DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR |
775 | - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
776 | - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
777 | - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
778 | - USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
779 | - ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
780 | - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
781 | - OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
782 | - SUCH DAMAGE. |
783 | - |
784 | - |
785 | - |
786 | \ No newline at end of file |
787 | |
788 | === removed file 'GroundhogReader/apache-mime4j-0.6/NOTICE.txt' |
789 | --- GroundhogReader/apache-mime4j-0.6/NOTICE.txt 2010-03-14 02:32:45 +0000 |
790 | +++ GroundhogReader/apache-mime4j-0.6/NOTICE.txt 1970-01-01 00:00:00 +0000 |
791 | @@ -1,14 +0,0 @@ |
792 | - ========================================================================= |
793 | - == NOTICE file for use with the Apache License, Version 2.0, == |
794 | - ========================================================================= |
795 | - |
796 | - Apache JAMES Mime4j |
797 | - Copyright 2004-2008 The Apache Software Foundation |
798 | - |
799 | - This product includes software developed at |
800 | - The Apache Software Foundation (http://www.apache.org/). |
801 | - |
802 | - This product may include/use software, JUnit (http://www.junit.org/), |
803 | - developed by Kent Beck, Erich Gamma, and David Saff |
804 | - License: Common Public License Version 1.0 |
805 | - (http://www.opensource.org/licenses/cpl.php) |
806 | |
807 | === removed file 'GroundhogReader/apache-mime4j-0.6/RELEASE_NOTES.txt' |
808 | --- GroundhogReader/apache-mime4j-0.6/RELEASE_NOTES.txt 2010-03-14 02:32:45 +0000 |
809 | +++ GroundhogReader/apache-mime4j-0.6/RELEASE_NOTES.txt 1970-01-01 00:00:00 +0000 |
810 | @@ -1,117 +0,0 @@ |
811 | -Release 0.6 |
812 | -------------------- |
813 | - |
814 | -Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing styles are |
815 | -supported. |
816 | - |
817 | -The 0.6 release brings another round of API enhancements and performance optimizations. There has |
818 | -been a number of notable improvements in the DOM support. MIME stream parser is expected to be |
819 | -50% faster when line counting is disabled. Please also note that as of this release Mime4j |
820 | -requires a Java 1.5 compatible runtime. |
821 | - |
822 | -Notes |
823 | ------ |
824 | - |
825 | - * Mime4j API is still considered unstable and is likely to change in future releases |
826 | - * The DOM API has been now been comprehensively refactored and the known limitations |
827 | - addressed. Please report any remaining issues to |
828 | - https://issues.apache.org/jira/browse/MIME4J. |
829 | - * Some low level functions are available only in the pull parser (recommended for |
830 | - advanced users) |
831 | - * 0.6 contains a mixture of approaches to the parsing of advanced MIME field types. |
832 | - Limitations are known with these approaches with some relatively uncommon use cases. |
833 | - A consistent and comprehensive rewrite is planned for 0.7 which should consolidate |
834 | - and address these. |
835 | - * The former interfaces TextBody and BinaryBody have been changed into abstract subclasses |
836 | - of class SingleBody. Code that implements these interfaces has to be changed accordingly. |
837 | - [https://issues.apache.org/jira/browse/MIME4J-111] |
838 | - * A dedicated class for writing a message has been introduced. Class MessageWriter has now |
839 | - to be used instead of Body.writeTo(OutputStream, int). A short-cut method |
840 | - Message.writeTo(OutputStream) without a mode parameter is also available. |
841 | - [https://issues.apache.org/jira/browse/MIME4J-110] |
842 | - * Class NamedMailbox has been removed. Class Mailbox now has an additional name property. |
843 | - [https://issues.apache.org/jira/browse/MIME4J-107] |
844 | - * Class MessageUtils has been removed. The methods and constants can now be found in class |
845 | - CharsetUtil in the same package. |
846 | - [https://issues.apache.org/jira/browse/MIME4J-106] |
847 | - * Package org.apache.james.mime4j.decoder has been renamed in org.apache.james.mime4j.codec. |
848 | - [https://issues.apache.org/jira/browse/MIME4J-105] |
849 | - * Class AbstractBody has been superseded by SingleBody. AbstractBody has been removed. |
850 | - * BodyFactory introduced allowing more flexible storage for Message parts. TempFileTextBody |
851 | - and TempFileBinaryBody removed. |
852 | - [https://issues.apache.org/jira/browse/MIME4J-87] |
853 | - * Mime4j now has a more flexible mechanism for storing message bodies. Class TempStorage |
854 | - has been superseded by StorageProvider in package org.apache.james.mime4j.storage. |
855 | - The classes TempStorage, TempPath, TempFile and SimpleTempStorage have been removed. |
856 | - [https://issues.apache.org/jira/browse/MIME4J-83] |
857 | - * Temporary text body storage for Message parts now defaults to US-ASCII (was ISO-8859-1) |
858 | - |
859 | -Detailed change log can be found here: |
860 | - |
861 | -http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12313434 |
862 | - |
863 | - |
864 | -Release 0.5 |
865 | -------------------- |
866 | - |
867 | -Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing |
868 | -styles are supported. |
869 | - |
870 | - |
871 | -The 0.5 release addresses a number of important issues discovered since 0.4. In |
872 | -particular, it improves Mime4j ability to deal with malformed data streams including |
873 | -those intentionally crafted to cause excessive CPU and memory utilization that can |
874 | -lead to DoS conditions. |
875 | - |
876 | -This release also fixes a serious bug that can prevent Mime4j from correctly |
877 | -processing binary content. |
878 | - |
879 | -Detailed change log can be found here: |
880 | - |
881 | -https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12313178 |
882 | - |
883 | -Notes |
884 | ------ |
885 | - * Mime4j API is still considered unstable and is likely to change in future releases |
886 | - * DOM support has known limitations and some roundtrip issues remain to be resolved |
887 | - * Some low level functions are available only in the pull parser (recommended for |
888 | - advanced users) |
889 | - |
890 | - |
891 | - |
892 | -Release 0.4 |
893 | -------------------- |
894 | - |
895 | -Mime4J is a flexible MIME parsing library written in Java. SAX, DOM and pull parsing |
896 | -styles are supported. |
897 | - |
898 | -The 0.4 release brings a number of significant improvements in terms of |
899 | -supported capabilities, flexibility and performance: |
900 | - |
901 | -* Revised and improved public API with support for pull parsing |
902 | - |
903 | -* Support for parsing of 'headless' messages transmitted using non SMTP |
904 | - transports such as HTTP |
905 | - |
906 | -* Reduced external dependencies. Mime4j is no longer directly dependent on log4j |
907 | - and commons-io |
908 | - |
909 | -* Improved parsing performance (up to 10x for large messages) |
910 | - |
911 | -* More comprehensive header parsing including support for RFC1864, RFC2045, |
912 | - RFC2183, RFC2557 and RFC3066 |
913 | - |
914 | -* Revised packaging and exception hierarchy. MimeException now extends |
915 | - IOException. |
916 | - |
917 | -Detailed change log can be found here: |
918 | - |
919 | -http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310521&styleName=Html&version=12312483 |
920 | - |
921 | -Notes |
922 | ------ |
923 | - * 0.4 contains numerous API improvements and is not binary compatible with 0.3 |
924 | - * Mime4j API is still considered unstable and is likely to change in future releases |
925 | - * DOM support has known limitations and some roundtrip issues remain to be resolved |
926 | - * Some low level functions are available only in the pull parser (recommended for |
927 | - advanced users) |
928 | |
929 | === removed directory 'GroundhogReader/apache-mime4j-0.6/benchmarks' |
930 | === removed directory 'GroundhogReader/apache-mime4j-0.6/benchmarks/resources' |
931 | === removed file 'GroundhogReader/apache-mime4j-0.6/benchmarks/resources/long-multipart.msg' |
932 | --- GroundhogReader/apache-mime4j-0.6/benchmarks/resources/long-multipart.msg 2010-03-14 02:32:45 +0000 |
933 | +++ GroundhogReader/apache-mime4j-0.6/benchmarks/resources/long-multipart.msg 1970-01-01 00:00:00 +0000 |
934 | @@ -1,684 +0,0 @@ |
935 | -Date: Fri, 27 Apr 2007 16:08:23 +0200 |
936 | -From: Foo Bar <bar@example.com> |
937 | -MIME-Version: 1.0 |
938 | -To: foo@example.com |
939 | -Subject: This is a rather long multipart message. |
940 | -Content-Type: multipart/mixed; boundary="------------090404080405080108000909" |
941 | - |
942 | -This is a multi-part message in MIME format. |
943 | ---------------090404080405080108000909 |
944 | -Content-Type: text/plain; charset=ISO-8859-15 |
945 | -Content-Transfer-Encoding: 7bit |
946 | - |
947 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
948 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
949 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
950 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
951 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
952 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
953 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
954 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
955 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
956 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
957 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
958 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
959 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
960 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
961 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
962 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
963 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
964 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
965 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
966 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
967 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
968 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
969 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
970 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
971 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
972 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
973 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
974 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
975 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
976 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
977 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
978 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
979 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
980 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
981 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
982 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
983 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
984 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
985 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
986 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
987 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
988 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
989 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
990 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
991 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
992 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
993 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
994 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
995 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
996 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
997 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
998 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
999 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1000 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1001 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1002 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1003 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1004 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1005 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1006 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1007 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1008 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1009 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1010 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1011 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1012 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1013 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1014 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1015 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1016 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1017 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1018 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1019 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1020 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1021 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1022 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1023 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1024 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1025 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1026 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1027 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1028 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1029 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1030 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1031 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1032 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1033 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1034 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1035 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1036 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1037 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1038 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1039 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1040 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1041 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1042 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1043 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1044 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1045 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1046 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1047 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1048 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1049 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1050 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1051 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1052 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1053 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1054 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1055 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1056 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1057 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1058 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1059 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1060 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1061 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1062 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1063 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1064 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1065 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1066 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1067 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1068 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1069 | -1111111111111111111111111111111111111111111111111111111111111111111111111111111 |
1070 | ---------------090404080405080108000909 |
1071 | -Content-Type: text/plain; charset=ISO-8859-15 |
1072 | -Content-Transfer-Encoding: 7bit |
1073 | - |
1074 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1075 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1076 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1077 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1078 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1079 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1080 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1081 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1082 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1083 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1084 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1085 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1086 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1087 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1088 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1089 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1090 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1091 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1092 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1093 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1094 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1095 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1096 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1097 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1098 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1099 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1100 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1101 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1102 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1103 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1104 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1105 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1106 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1107 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1108 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1109 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1110 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1111 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1112 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1113 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1114 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1115 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1116 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1117 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1118 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1119 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1120 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1121 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1122 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1123 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1124 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1125 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1126 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1127 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1128 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1129 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1130 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1131 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1132 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1133 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1134 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1135 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1136 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1137 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1138 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1139 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1140 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1141 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1142 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1143 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1144 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1145 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1146 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1147 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1148 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1149 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1150 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1151 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1152 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1153 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1154 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1155 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1156 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1157 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1158 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1159 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1160 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1161 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1162 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1163 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1164 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1165 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1166 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1167 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1168 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1169 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1170 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1171 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1172 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1173 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1174 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1175 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1176 | -2222222222222222222222222222222222222222222222222222222222222222222222222222222 |
1177 | ---------------090404080405080108000909 |
1178 | -Content-Type: text/plain; charset=ISO-8859-15 |
1179 | -Content-Transfer-Encoding: 7bit |
1180 | - |
1181 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1182 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1183 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1184 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1185 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1186 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1187 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1188 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1189 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1190 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1191 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1192 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1193 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1194 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1195 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1196 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1197 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1198 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1199 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1200 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1201 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1202 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1203 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1204 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1205 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1206 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1207 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1208 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1209 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1210 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1211 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1212 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1213 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1214 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1215 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1216 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1217 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1218 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1219 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1220 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1221 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1222 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1223 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1224 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1225 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1226 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1227 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1228 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1229 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1230 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1231 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1232 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1233 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1234 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1235 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1236 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1237 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1238 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1239 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1240 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1241 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1242 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1243 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1244 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1245 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1246 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1247 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1248 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1249 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1250 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1251 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1252 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1253 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1254 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1255 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1256 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1257 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1258 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1259 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1260 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1261 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1262 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1263 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1264 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1265 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1266 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1267 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1268 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1269 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1270 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1271 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1272 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1273 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1274 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1275 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1276 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1277 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1278 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1279 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1280 | -3333333333333333333333333333333333333333333333333333333333333333333333333333333 |
1281 | ---------------090404080405080108000909 |
1282 | -Content-Type: text/plain; charset=ISO-8859-15 |
1283 | -Content-Transfer-Encoding: 7bit |
1284 | - |
1285 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1286 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1287 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1288 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1289 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1290 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1291 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1292 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1293 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1294 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1295 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1296 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1297 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1298 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1299 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1300 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1301 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1302 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1303 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1304 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1305 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1306 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1307 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1308 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1309 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1310 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1311 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1312 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1313 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1314 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1315 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1316 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1317 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1318 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1319 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1320 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1321 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1322 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1323 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1324 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1325 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1326 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1327 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1328 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1329 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1330 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1331 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1332 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1333 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1334 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1335 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1336 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1337 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1338 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1339 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1340 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1341 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1342 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1343 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1344 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1345 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1346 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1347 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1348 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1349 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1350 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1351 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1352 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1353 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1354 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1355 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1356 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1357 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1358 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1359 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1360 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1361 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1362 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1363 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1364 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1365 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1366 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1367 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1368 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1369 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1370 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1371 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1372 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1373 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1374 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1375 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1376 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1377 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1378 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1379 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1380 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1381 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1382 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1383 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1384 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1385 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1386 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1387 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1388 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1389 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1390 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1391 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1392 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1393 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1394 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1395 | -4444444444444444444444444444444444444444444444444444444444444444444444444444444 |
1396 | ---------------090404080405080108000909 |
1397 | -Content-Type: text/plain; charset=ISO-8859-15 |
1398 | -Content-Transfer-Encoding: 7bit |
1399 | - |
1400 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1401 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1402 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1403 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1404 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1405 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1406 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1407 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1408 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1409 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1410 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1411 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1412 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1413 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1414 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1415 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1416 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1417 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1418 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1419 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1420 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1421 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1422 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1423 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1424 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1425 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1426 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1427 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1428 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1429 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1430 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1431 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1432 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1433 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1434 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1435 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1436 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1437 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1438 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1439 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1440 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1441 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1442 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1443 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1444 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1445 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1446 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1447 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1448 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1449 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1450 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1451 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1452 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1453 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1454 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1455 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1456 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1457 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1458 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1459 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1460 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1461 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1462 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1463 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1464 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1465 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1466 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1467 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1468 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1469 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1470 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1471 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1472 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1473 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1474 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1475 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1476 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1477 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1478 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1479 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1480 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1481 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1482 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1483 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1484 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1485 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1486 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1487 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1488 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1489 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1490 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1491 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1492 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1493 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1494 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1495 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1496 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1497 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1498 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1499 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1500 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1501 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1502 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1503 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1504 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1505 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1506 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1507 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1508 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1509 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1510 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1511 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1512 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1513 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1514 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1515 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1516 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1517 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1518 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1519 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1520 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1521 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1522 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1523 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1524 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1525 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1526 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1527 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1528 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1529 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1530 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1531 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1532 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1533 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1534 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1535 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1536 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1537 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1538 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1539 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1540 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1541 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1542 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1543 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1544 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1545 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1546 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1547 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1548 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1549 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1550 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1551 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1552 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1553 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1554 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1555 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1556 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1557 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1558 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1559 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1560 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1561 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1562 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1563 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1564 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1565 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1566 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1567 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1568 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1569 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1570 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1571 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1572 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1573 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1574 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1575 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1576 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1577 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1578 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1579 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1580 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1581 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1582 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1583 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1584 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1585 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1586 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1587 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1588 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1589 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1590 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1591 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1592 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1593 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1594 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1595 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1596 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1597 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1598 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1599 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1600 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1601 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1602 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1603 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1604 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1605 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1606 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1607 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1608 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1609 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1610 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1611 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1612 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1613 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1614 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1615 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1616 | -5555555555555555555555555555555555555555555555555555555555555555555555555555555 |
1617 | ---------------090404080405080108000909-- |
1618 | - |
1619 | |
1620 | === removed directory 'GroundhogReader/apache-mime4j-0.6/benchmarks/src' |
1621 | === removed directory 'GroundhogReader/apache-mime4j-0.6/benchmarks/src/org' |
1622 | === removed directory 'GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache' |
1623 | === removed directory 'GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james' |
1624 | === removed directory 'GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j' |
1625 | === removed file 'GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/Base64InputStreamBench.java' |
1626 | --- GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/Base64InputStreamBench.java 2010-03-14 02:32:45 +0000 |
1627 | +++ GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/Base64InputStreamBench.java 1970-01-01 00:00:00 +0000 |
1628 | @@ -1,109 +0,0 @@ |
1629 | -/**************************************************************** |
1630 | - * Licensed to the Apache Software Foundation (ASF) under one * |
1631 | - * or more contributor license agreements. See the NOTICE file * |
1632 | - * distributed with this work for additional information * |
1633 | - * regarding copyright ownership. The ASF licenses this file * |
1634 | - * to you under the Apache License, Version 2.0 (the * |
1635 | - * "License"); you may not use this file except in compliance * |
1636 | - * with the License. You may obtain a copy of the License at * |
1637 | - * * |
1638 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
1639 | - * * |
1640 | - * Unless required by applicable law or agreed to in writing, * |
1641 | - * software distributed under the License is distributed on an * |
1642 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
1643 | - * KIND, either express or implied. See the License for the * |
1644 | - * specific language governing permissions and limitations * |
1645 | - * under the License. * |
1646 | - ****************************************************************/ |
1647 | - |
1648 | -package org.apache.james.mime4j; |
1649 | - |
1650 | -import java.io.ByteArrayInputStream; |
1651 | -import java.io.ByteArrayOutputStream; |
1652 | -import java.io.IOException; |
1653 | -import java.io.InputStream; |
1654 | -import java.io.OutputStream; |
1655 | -import java.util.Random; |
1656 | - |
1657 | -import org.apache.commons.io.output.NullOutputStream; |
1658 | -import org.apache.james.mime4j.codec.Base64InputStream; |
1659 | -import org.apache.james.mime4j.codec.CodecUtil; |
1660 | - |
1661 | -public class Base64InputStreamBench { |
1662 | - |
1663 | - public static void main(String[] args) throws Exception { |
1664 | - byte[] data = initData(2 * 1024 * 1024); |
1665 | - byte[] encoded = encode(data); |
1666 | - |
1667 | - // decoder test to make sure everything is okay |
1668 | - |
1669 | - testDecode(data, encoded); |
1670 | - |
1671 | - // warmup |
1672 | - |
1673 | - OutputStream nullOut = new NullOutputStream(); |
1674 | - |
1675 | - for (int i = 0; i < 5; i++) { |
1676 | - ByteArrayInputStream ed = new ByteArrayInputStream(encoded); |
1677 | - InputStream in = new Base64InputStream(ed); |
1678 | - CodecUtil.copy(in, nullOut); |
1679 | - } |
1680 | - Thread.sleep(100); |
1681 | - |
1682 | - // test |
1683 | - |
1684 | - long t0 = System.currentTimeMillis(); |
1685 | - |
1686 | - final int repetitions = 50; |
1687 | - for (int i = 0; i < repetitions; i++) { |
1688 | - ByteArrayInputStream ed = new ByteArrayInputStream(encoded); |
1689 | - InputStream in = new Base64InputStream(ed); |
1690 | - CodecUtil.copy(in, nullOut); |
1691 | - } |
1692 | - |
1693 | - long dt = System.currentTimeMillis() - t0; |
1694 | - long totalBytes = data.length * (long) repetitions; |
1695 | - |
1696 | - double mbPerSec = (totalBytes / 1024.0 / 1024) / (dt / 1000.0); |
1697 | - |
1698 | - System.out.println(dt + " ms"); |
1699 | - System.out.println(totalBytes + " bytes"); |
1700 | - System.out.println(mbPerSec + " mb/sec"); |
1701 | - } |
1702 | - |
1703 | - private static byte[] initData(int size) { |
1704 | - Random random = new Random(size); |
1705 | - byte[] data = new byte[size]; |
1706 | - random.nextBytes(data); |
1707 | - return data; |
1708 | - } |
1709 | - |
1710 | - private static byte[] encode(byte[] data) throws IOException { |
1711 | - InputStream in = new ByteArrayInputStream(data); |
1712 | - ByteArrayOutputStream out = new ByteArrayOutputStream(); |
1713 | - CodecUtil.encodeBase64(in, out); |
1714 | - return out.toByteArray(); |
1715 | - } |
1716 | - |
1717 | - private static void testDecode(byte[] data, final byte[] encoded) |
1718 | - throws IOException { |
1719 | - ByteArrayInputStream ed = new ByteArrayInputStream(encoded); |
1720 | - InputStream in = new Base64InputStream(ed); |
1721 | - ByteArrayOutputStream out = new ByteArrayOutputStream(); |
1722 | - CodecUtil.copy(in, out); |
1723 | - |
1724 | - compare(data, out.toByteArray()); |
1725 | - } |
1726 | - |
1727 | - private static void compare(byte[] expected, byte[] actual) { |
1728 | - if (expected.length != actual.length) |
1729 | - throw new AssertionError("length: " + expected.length + ", " |
1730 | - + actual.length); |
1731 | - |
1732 | - for (int i = 0; i < expected.length; i++) |
1733 | - if (expected[i] != actual[i]) |
1734 | - throw new AssertionError("value @ " + i); |
1735 | - } |
1736 | - |
1737 | -} |
1738 | \ No newline at end of file |
1739 | |
1740 | === removed file 'GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/Base64OutputStreamBench.java' |
1741 | --- GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/Base64OutputStreamBench.java 2010-03-14 02:32:45 +0000 |
1742 | +++ GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/Base64OutputStreamBench.java 1970-01-01 00:00:00 +0000 |
1743 | @@ -1,70 +0,0 @@ |
1744 | -/**************************************************************** |
1745 | - * Licensed to the Apache Software Foundation (ASF) under one * |
1746 | - * or more contributor license agreements. See the NOTICE file * |
1747 | - * distributed with this work for additional information * |
1748 | - * regarding copyright ownership. The ASF licenses this file * |
1749 | - * to you under the Apache License, Version 2.0 (the * |
1750 | - * "License"); you may not use this file except in compliance * |
1751 | - * with the License. You may obtain a copy of the License at * |
1752 | - * * |
1753 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
1754 | - * * |
1755 | - * Unless required by applicable law or agreed to in writing, * |
1756 | - * software distributed under the License is distributed on an * |
1757 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
1758 | - * KIND, either express or implied. See the License for the * |
1759 | - * specific language governing permissions and limitations * |
1760 | - * under the License. * |
1761 | - ****************************************************************/ |
1762 | - |
1763 | -package org.apache.james.mime4j; |
1764 | - |
1765 | -import java.io.OutputStream; |
1766 | -import java.util.Random; |
1767 | - |
1768 | -import org.apache.commons.io.output.NullOutputStream; |
1769 | -import org.apache.james.mime4j.codec.Base64OutputStream; |
1770 | - |
1771 | -public class Base64OutputStreamBench { |
1772 | - |
1773 | - public static void main(String[] args) throws Exception { |
1774 | - byte[] data = initData(1024); |
1775 | - |
1776 | - OutputStream nullOut = new NullOutputStream(); |
1777 | - Base64OutputStream base64Out = new Base64OutputStream(nullOut); |
1778 | - |
1779 | - // warmup |
1780 | - |
1781 | - for (int i = 0; i < 2000; i++) { |
1782 | - base64Out.write(data); |
1783 | - } |
1784 | - Thread.sleep(100); |
1785 | - |
1786 | - // test |
1787 | - |
1788 | - long t0 = System.currentTimeMillis(); |
1789 | - |
1790 | - final int repetitions = 500000; |
1791 | - for (int i = 0; i < repetitions; i++) { |
1792 | - base64Out.write(data); |
1793 | - } |
1794 | - base64Out.close(); |
1795 | - |
1796 | - long dt = System.currentTimeMillis() - t0; |
1797 | - long totalBytes = data.length * (long) repetitions; |
1798 | - |
1799 | - double mbPerSec = (totalBytes / 1024.0 / 1024) / (dt / 1000.0); |
1800 | - |
1801 | - System.out.println(dt + " ms"); |
1802 | - System.out.println(totalBytes + " bytes"); |
1803 | - System.out.println(mbPerSec + " mb/sec"); |
1804 | - } |
1805 | - |
1806 | - private static byte[] initData(int size) { |
1807 | - Random random = new Random(size); |
1808 | - byte[] data = new byte[size]; |
1809 | - random.nextBytes(data); |
1810 | - return data; |
1811 | - } |
1812 | - |
1813 | -} |
1814 | \ No newline at end of file |
1815 | |
1816 | === removed file 'GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/LongMultipartReadBench.java' |
1817 | --- GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/LongMultipartReadBench.java 2010-03-14 02:32:45 +0000 |
1818 | +++ GroundhogReader/apache-mime4j-0.6/benchmarks/src/org/apache/james/mime4j/LongMultipartReadBench.java 1970-01-01 00:00:00 +0000 |
1819 | @@ -1,189 +0,0 @@ |
1820 | -/**************************************************************** |
1821 | - * Licensed to the Apache Software Foundation (ASF) under one * |
1822 | - * or more contributor license agreements. See the NOTICE file * |
1823 | - * distributed with this work for additional information * |
1824 | - * regarding copyright ownership. The ASF licenses this file * |
1825 | - * to you under the Apache License, Version 2.0 (the * |
1826 | - * "License"); you may not use this file except in compliance * |
1827 | - * with the License. You may obtain a copy of the License at * |
1828 | - * * |
1829 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
1830 | - * * |
1831 | - * Unless required by applicable law or agreed to in writing, * |
1832 | - * software distributed under the License is distributed on an * |
1833 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
1834 | - * KIND, either express or implied. See the License for the * |
1835 | - * specific language governing permissions and limitations * |
1836 | - * under the License. * |
1837 | - ****************************************************************/ |
1838 | - |
1839 | -package org.apache.james.mime4j; |
1840 | - |
1841 | -import java.io.ByteArrayInputStream; |
1842 | -import java.io.ByteArrayOutputStream; |
1843 | -import java.io.IOException; |
1844 | -import java.io.InputStream; |
1845 | - |
1846 | -import org.apache.james.mime4j.codec.CodecUtil; |
1847 | -import org.apache.james.mime4j.descriptor.BodyDescriptor; |
1848 | -import org.apache.james.mime4j.message.Header; |
1849 | -import org.apache.james.mime4j.message.Message; |
1850 | -import org.apache.james.mime4j.message.SimpleContentHandler; |
1851 | -import org.apache.james.mime4j.parser.AbstractContentHandler; |
1852 | -import org.apache.james.mime4j.parser.ContentHandler; |
1853 | -import org.apache.james.mime4j.parser.MimeStreamParser; |
1854 | -import org.apache.james.mime4j.parser.MimeTokenStream; |
1855 | -import org.apache.james.mime4j.storage.DefaultStorageProvider; |
1856 | -import org.apache.james.mime4j.storage.MemoryStorageProvider; |
1857 | - |
1858 | -public class LongMultipartReadBench { |
1859 | - |
1860 | - public static void main(String[] args) throws Exception { |
1861 | - |
1862 | - byte[] content = loadMessage("long-multipart.msg"); |
1863 | - if (content == null) { |
1864 | - System.err.println("Test message not found"); |
1865 | - return; |
1866 | - } |
1867 | - |
1868 | - int testNumber = args.length > 0 ? Integer.parseInt(args[0]) : 0; |
1869 | - |
1870 | - Test test = createTest(testNumber); |
1871 | - if (test == null) { |
1872 | - System.err.println("No such test: " + testNumber); |
1873 | - return; |
1874 | - } |
1875 | - |
1876 | - int repetitions = args.length > 1 ? Integer.parseInt(args[1]) : 25000; |
1877 | - |
1878 | - System.out.println("Multipart message read."); |
1879 | - System.out.println("No of repetitions: " + repetitions); |
1880 | - System.out.println("Content length: " + content.length); |
1881 | - System.out.println("Test: " + test.getClass().getSimpleName()); |
1882 | - |
1883 | - System.out.print("Warmup... "); |
1884 | - long t0 = System.currentTimeMillis(); |
1885 | - while (System.currentTimeMillis() - t0 < 1500) { |
1886 | - test.run(content, 10); |
1887 | - } |
1888 | - System.out.println("done"); |
1889 | - |
1890 | - System.out.println("--------------------------------"); |
1891 | - |
1892 | - long start = System.currentTimeMillis(); |
1893 | - test.run(content, repetitions); |
1894 | - long finish = System.currentTimeMillis(); |
1895 | - |
1896 | - double seconds = (finish - start) / 1000.0; |
1897 | - double mb = content.length * repetitions / 1024.0 / 1024; |
1898 | - System.out.printf("Execution time: %f sec\n", seconds); |
1899 | - System.out.printf("%.2f messages/sec\n", repetitions / seconds); |
1900 | - System.out.printf("%.2f mb/sec\n", mb / seconds); |
1901 | - } |
1902 | - |
1903 | - private static Test createTest(int testNumber) { |
1904 | - switch (testNumber) { |
1905 | - case 0: |
1906 | - return new MimeTokenStreamTest(); |
1907 | - case 1: |
1908 | - return new AbstractContentHandlerTest(); |
1909 | - case 2: |
1910 | - return new SimpleContentHandlerTest(); |
1911 | - case 3: |
1912 | - return new MessageTest(); |
1913 | - default: |
1914 | - return null; |
1915 | - } |
1916 | - } |
1917 | - |
1918 | - private static byte[] loadMessage(String resourceName) throws IOException { |
1919 | - ClassLoader cl = LongMultipartReadBench.class.getClassLoader(); |
1920 | - |
1921 | - ByteArrayOutputStream outstream = new ByteArrayOutputStream(); |
1922 | - InputStream instream = cl.getResourceAsStream(resourceName); |
1923 | - if (instream == null) { |
1924 | - return null; |
1925 | - } |
1926 | - try { |
1927 | - CodecUtil.copy(instream, outstream); |
1928 | - } finally { |
1929 | - instream.close(); |
1930 | - } |
1931 | - |
1932 | - return outstream.toByteArray(); |
1933 | - } |
1934 | - |
1935 | - private interface Test { |
1936 | - void run(byte[] content, int repetitions) throws Exception; |
1937 | - } |
1938 | - |
1939 | - private static final class MimeTokenStreamTest implements Test { |
1940 | - public void run(byte[] content, int repetitions) throws Exception { |
1941 | - MimeTokenStream stream = new MimeTokenStream(); |
1942 | - for (int i = 0; i < repetitions; i++) { |
1943 | - stream.parse(new ByteArrayInputStream(content)); |
1944 | - for (int state = stream.getState(); state != MimeTokenStream.T_END_OF_STREAM; state = stream |
1945 | - .next()) { |
1946 | - } |
1947 | - } |
1948 | - } |
1949 | - } |
1950 | - |
1951 | - private static final class AbstractContentHandlerTest implements Test { |
1952 | - public void run(byte[] content, int repetitions) throws Exception { |
1953 | - ContentHandler contentHandler = new AbstractContentHandler() { |
1954 | - }; |
1955 | - |
1956 | - for (int i = 0; i < repetitions; i++) { |
1957 | - MimeStreamParser parser = new MimeStreamParser(); |
1958 | - parser.setContentHandler(contentHandler); |
1959 | - parser.parse(new ByteArrayInputStream(content)); |
1960 | - } |
1961 | - } |
1962 | - } |
1963 | - |
1964 | - private static final class SimpleContentHandlerTest implements Test { |
1965 | - public void run(byte[] content, int repetitions) throws Exception { |
1966 | - ContentHandler contentHandler = new SimpleContentHandler() { |
1967 | - @Override |
1968 | - public void bodyDecoded(BodyDescriptor bd, InputStream is) |
1969 | - throws IOException { |
1970 | - } |
1971 | - |
1972 | - @Override |
1973 | - public void headers(Header header) { |
1974 | - } |
1975 | - }; |
1976 | - |
1977 | - for (int i = 0; i < repetitions; i++) { |
1978 | - MimeStreamParser parser = new MimeStreamParser(); |
1979 | - parser.setContentHandler(contentHandler); |
1980 | - parser.parse(new ByteArrayInputStream(content)); |
1981 | - } |
1982 | - } |
1983 | - } |
1984 | - |
1985 | - private static final class MessageTest implements Test { |
1986 | - public void run(byte[] content, int repetitions) throws Exception { |
1987 | - DefaultStorageProvider.setInstance(new MemoryStorageProvider()); |
1988 | - |
1989 | - for (int i = 0; i < repetitions; i++) { |
1990 | - new Message(new ByteArrayInputStream(content)); |
1991 | - } |
1992 | - } |
1993 | - } |
1994 | - |
1995 | - /* |
1996 | - // requires mail.jar and activation.jar to be present |
1997 | - private static final class MimeMessageTest implements Test { |
1998 | - public void run(byte[] content, int repetitions) throws Exception { |
1999 | - for (int i = 0; i < repetitions; i++) { |
2000 | - MimeMessage mm = new MimeMessage(null, new ByteArrayInputStream(content)); |
2001 | - Multipart multipart = (Multipart) mm.getContent(); |
2002 | - multipart.getCount(); // force parsing |
2003 | - } |
2004 | - } |
2005 | - } |
2006 | - */ |
2007 | - |
2008 | -} |
2009 | |
2010 | === removed file 'GroundhogReader/apache-mime4j-0.6/doap_James_Mime4j.rdf' |
2011 | --- GroundhogReader/apache-mime4j-0.6/doap_James_Mime4j.rdf 2010-03-14 02:32:45 +0000 |
2012 | +++ GroundhogReader/apache-mime4j-0.6/doap_James_Mime4j.rdf 1970-01-01 00:00:00 +0000 |
2013 | @@ -1,134 +0,0 @@ |
2014 | -<?xml version="1.0"?> |
2015 | -<?xml-stylesheet type="text/xsl"?> |
2016 | -<rdf:RDF xml:lang="en" |
2017 | - xmlns="http://usefulinc.com/ns/doap#" |
2018 | - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
2019 | - xmlns:asfext="http://projects.apache.org/ns/asfext#" |
2020 | - xmlns:foaf="http://xmlns.com/foaf/0.1/"> |
2021 | -<!-- |
2022 | - $HeadURL$ |
2023 | - $Revision$ |
2024 | - $Date$ |
2025 | - |
2026 | - ==================================================================== |
2027 | - Licensed to the Apache Software Foundation (ASF) under one |
2028 | - or more contributor license agreements. See the NOTICE file |
2029 | - distributed with this work for additional information |
2030 | - regarding copyright ownership. The ASF licenses this file |
2031 | - to you under the Apache License, Version 2.0 (the |
2032 | - "License"); you may not use this file except in compliance |
2033 | - with the License. You may obtain a copy of the License at |
2034 | - |
2035 | - http://www.apache.org/licenses/LICENSE-2.0 |
2036 | - |
2037 | - Unless required by applicable law or agreed to in writing, |
2038 | - software distributed under the License is distributed on an |
2039 | - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
2040 | - KIND, either express or implied. See the License for the |
2041 | - specific language governing permissions and limitations |
2042 | - under the License. |
2043 | - ==================================================================== |
2044 | - |
2045 | - This software consists of voluntary contributions made by many |
2046 | - individuals on behalf of the Apache Software Foundation. For more |
2047 | - information on the Apache Software Foundation, please see |
2048 | - <http://www.apache.org />. |
2049 | ---> |
2050 | - |
2051 | - <Project rdf:about="http://james.apache.org/mime4j/"> |
2052 | - <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" /> |
2053 | - <name>Apache James Mime4j</name> |
2054 | - <homepage rdf:resource="http://james.apache.org/mime4j/" /> |
2055 | - <asfext:pmc rdf:resource="http://james.apache.org" /> |
2056 | - <shortdesc> |
2057 | -Mime4j can be used to parse e-mail message streams in plain rfc822 and MIME format |
2058 | -and to build a tree representation of an e-mail message. |
2059 | - </shortdesc> |
2060 | - <description> |
2061 | -Mime4j provides a parser for e-mail message streams in plain rfc822 and MIME format. |
2062 | -The parser uses a callback mechanism to report parsing events such as the start of |
2063 | -an entity header, the start of a body. The parser has been designed to be extremely |
2064 | -tolerant against messages violating the standards. Mime4j can also be used to build |
2065 | -a tree representation of an e-mail message |
2066 | - </description> |
2067 | - <bug-database rdf:resource="http://issues.apache.org/jira/browse/MIME4J" /> |
2068 | - <mailing-list rdf:resource="http://james.apache.org/mime4j/mail-lists.html" /> |
2069 | - <download-page rdf:resource="http://james.apache.org/download.cgi" /> |
2070 | - <programming-language>Java</programming-language> |
2071 | - <category rdf:resource="http://projects.apache.org/category/mail" /> |
2072 | - <category rdf:resource="http://projects.apache.org/category/library" /> |
2073 | - |
2074 | - <!-- Multiple releases can be listed, each in its own section --> |
2075 | - <release> |
2076 | - <Version> |
2077 | - <name>Apache James Mime4j 0.5</name> |
2078 | - <created>2008-10-18</created> |
2079 | - <revision>0.5</revision> |
2080 | - </Version> |
2081 | - <Version> |
2082 | - <name>Apache James Mime4j 0.4</name> |
2083 | - <created>2008-08-20</created> |
2084 | - <revision>0.4</revision> |
2085 | - </Version> |
2086 | - <Version> |
2087 | - <name>Apache James Mime4j 0.3</name> |
2088 | - <created>2007-05-31</created> |
2089 | - <revision>0.3</revision> |
2090 | - </Version> |
2091 | - <Version> |
2092 | - <name>Apache James Mime4j 0.2</name> |
2093 | - <created>2006-01-09</created> |
2094 | - <revision>0.2</revision> |
2095 | - </Version> |
2096 | - </release> |
2097 | - |
2098 | - <repository> |
2099 | - <SVNRepository> |
2100 | - <location rdf:resource="http://svn.apache.org/repos/asf/james/mime4j/trunk"/> |
2101 | - <browse rdf:resource="http://svn.apache.org/viewvc/james/mime4j/trunk"/> |
2102 | - </SVNRepository> |
2103 | - </repository> |
2104 | - |
2105 | - <asfext:implements> |
2106 | - <asfext:Standard> |
2107 | - <asfext:title>Standard for ARPA Internet Text Messages</asfext:title> |
2108 | - <asfext:body>IETF</asfext:body> |
2109 | - <asfext:id>RFC 822</asfext:id> |
2110 | - <asfext:url rdf:resource="http://tools.ietf.org/html/rfc822"/> |
2111 | - </asfext:Standard> |
2112 | - </asfext:implements> |
2113 | - <asfext:implements> |
2114 | - <asfext:Standard> |
2115 | - <asfext:title>Internet Message Format</asfext:title> |
2116 | - <asfext:body>IETF</asfext:body> |
2117 | - <asfext:id>RFC 2822</asfext:id> |
2118 | - <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2822"/> |
2119 | - </asfext:Standard> |
2120 | - </asfext:implements> |
2121 | - <asfext:implements> |
2122 | - <asfext:Standard> |
2123 | - <asfext:title>Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies</asfext:title> |
2124 | - <asfext:body>IETF</asfext:body> |
2125 | - <asfext:id>RFC 2045</asfext:id> |
2126 | - <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2045"/> |
2127 | - </asfext:Standard> |
2128 | - </asfext:implements> |
2129 | - <asfext:implements> |
2130 | - <asfext:Standard> |
2131 | - <asfext:title>Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</asfext:title> |
2132 | - <asfext:body>IETF</asfext:body> |
2133 | - <asfext:id>RFC 2046</asfext:id> |
2134 | - <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2046"/> |
2135 | - </asfext:Standard> |
2136 | - </asfext:implements> |
2137 | - <asfext:implements> |
2138 | - <asfext:Standard> |
2139 | - <asfext:title>Multipurpose Internet Mail Extensions (MIME) Part Three: Message Header Extensions for Non-ASCII Text</asfext:title> |
2140 | - <asfext:body>IETF</asfext:body> |
2141 | - <asfext:id>RFC 2047</asfext:id> |
2142 | - <asfext:url rdf:resource="http://tools.ietf.org/html/rfc2047"/> |
2143 | - </asfext:Standard> |
2144 | - </asfext:implements> |
2145 | - |
2146 | - </Project> |
2147 | -</rdf:RDF> |
2148 | |
2149 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples' |
2150 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src' |
2151 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java' |
2152 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org' |
2153 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache' |
2154 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james' |
2155 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j' |
2156 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples' |
2157 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/dom' |
2158 | === removed file 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java' |
2159 | --- GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java 2010-03-14 02:32:45 +0000 |
2160 | +++ GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/dom/MultipartMessage.java 1970-01-01 00:00:00 +0000 |
2161 | @@ -1,187 +0,0 @@ |
2162 | -/**************************************************************** |
2163 | - * Licensed to the Apache Software Foundation (ASF) under one * |
2164 | - * or more contributor license agreements. See the NOTICE file * |
2165 | - * distributed with this work for additional information * |
2166 | - * regarding copyright ownership. The ASF licenses this file * |
2167 | - * to you under the Apache License, Version 2.0 (the * |
2168 | - * "License"); you may not use this file except in compliance * |
2169 | - * with the License. You may obtain a copy of the License at * |
2170 | - * * |
2171 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
2172 | - * * |
2173 | - * Unless required by applicable law or agreed to in writing, * |
2174 | - * software distributed under the License is distributed on an * |
2175 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
2176 | - * KIND, either express or implied. See the License for the * |
2177 | - * specific language governing permissions and limitations * |
2178 | - * under the License. * |
2179 | - ****************************************************************/ |
2180 | - |
2181 | -package org.apache.james.mime4j.samples.dom; |
2182 | - |
2183 | -import java.awt.BasicStroke; |
2184 | -import java.awt.Color; |
2185 | -import java.awt.Graphics2D; |
2186 | -import java.awt.RenderingHints; |
2187 | -import java.awt.image.BufferedImage; |
2188 | -import java.io.IOException; |
2189 | -import java.util.Date; |
2190 | - |
2191 | -import javax.imageio.ImageIO; |
2192 | - |
2193 | -import org.apache.james.mime4j.field.address.Mailbox; |
2194 | -import org.apache.james.mime4j.message.BinaryBody; |
2195 | -import org.apache.james.mime4j.message.BodyFactory; |
2196 | -import org.apache.james.mime4j.message.BodyPart; |
2197 | -import org.apache.james.mime4j.message.Message; |
2198 | -import org.apache.james.mime4j.message.Multipart; |
2199 | -import org.apache.james.mime4j.message.TextBody; |
2200 | -import org.apache.james.mime4j.storage.Storage; |
2201 | -import org.apache.james.mime4j.storage.StorageOutputStream; |
2202 | -import org.apache.james.mime4j.storage.StorageProvider; |
2203 | - |
2204 | -/** |
2205 | - * Creates a multipart/mixed message that consists of a text/plain and an |
2206 | - * image/png part. The image is created on the fly; a similar technique can be |
2207 | - * used to create PDF or XML attachments, for example. |
2208 | - */ |
2209 | -public class MultipartMessage { |
2210 | - |
2211 | - public static void main(String[] args) throws Exception { |
2212 | - // 1) start with an empty message |
2213 | - |
2214 | - Message message = new Message(); |
2215 | - |
2216 | - // 2) set header fields |
2217 | - |
2218 | - // Date and From are required fields |
2219 | - message.setDate(new Date()); |
2220 | - message.setFrom(Mailbox.parse("John Doe <jdoe@machine.example>")); |
2221 | - |
2222 | - // Message-ID should be present |
2223 | - message.createMessageId("machine.example"); |
2224 | - |
2225 | - // set some optional fields |
2226 | - message.setTo(Mailbox.parse("Mary Smith <mary@example.net>")); |
2227 | - message.setSubject("An image for you"); |
2228 | - |
2229 | - // 3) set a multipart body |
2230 | - |
2231 | - Multipart multipart = new Multipart("mixed"); |
2232 | - |
2233 | - // a multipart may have a preamble |
2234 | - multipart.setPreamble("This is a multi-part message in MIME format."); |
2235 | - |
2236 | - // first part is text/plain |
2237 | - BodyFactory bodyFactory = new BodyFactory(); |
2238 | - BodyPart textPart = createTextPart(bodyFactory, "Why so serious?"); |
2239 | - multipart.addBodyPart(textPart); |
2240 | - |
2241 | - // second part is image/png (image is created on the fly) |
2242 | - BufferedImage image = renderSampleImage(); |
2243 | - BodyPart imagePart = createImagePart(bodyFactory, image); |
2244 | - multipart.addBodyPart(imagePart); |
2245 | - |
2246 | - // setMultipart also sets the Content-Type header field |
2247 | - message.setMultipart(multipart); |
2248 | - |
2249 | - // 4) print message to standard output |
2250 | - |
2251 | - message.writeTo(System.out); |
2252 | - |
2253 | - // 5) message is no longer needed and should be disposed of |
2254 | - |
2255 | - message.dispose(); |
2256 | - } |
2257 | - |
2258 | - /** |
2259 | - * Creates a text part from the specified string. |
2260 | - */ |
2261 | - private static BodyPart createTextPart(BodyFactory bodyFactory, String text) { |
2262 | - // Use UTF-8 to encode the specified text |
2263 | - TextBody body = bodyFactory.textBody(text, "UTF-8"); |
2264 | - |
2265 | - // Create a text/plain body part |
2266 | - BodyPart bodyPart = new BodyPart(); |
2267 | - bodyPart.setText(body); |
2268 | - bodyPart.setContentTransferEncoding("quoted-printable"); |
2269 | - |
2270 | - return bodyPart; |
2271 | - } |
2272 | - |
2273 | - /** |
2274 | - * Creates a binary part from the specified image. |
2275 | - */ |
2276 | - private static BodyPart createImagePart(BodyFactory bodyFactory, |
2277 | - BufferedImage image) throws IOException { |
2278 | - // Create a binary message body from the image |
2279 | - StorageProvider storageProvider = bodyFactory.getStorageProvider(); |
2280 | - Storage storage = storeImage(storageProvider, image, "png"); |
2281 | - BinaryBody body = bodyFactory.binaryBody(storage); |
2282 | - |
2283 | - // Create a body part with the correct MIME-type and transfer encoding |
2284 | - BodyPart bodyPart = new BodyPart(); |
2285 | - bodyPart.setBody(body, "image/png"); |
2286 | - bodyPart.setContentTransferEncoding("base64"); |
2287 | - |
2288 | - // Specify a filename in the Content-Disposition header (implicitly sets |
2289 | - // the disposition type to "attachment") |
2290 | - bodyPart.setFilename("smiley.png"); |
2291 | - |
2292 | - return bodyPart; |
2293 | - } |
2294 | - |
2295 | - /** |
2296 | - * Stores the specified image in a Storage object. |
2297 | - */ |
2298 | - private static Storage storeImage(StorageProvider storageProvider, |
2299 | - BufferedImage image, String formatName) throws IOException { |
2300 | - // An output stream that is capable of building a Storage object. |
2301 | - StorageOutputStream out = storageProvider.createStorageOutputStream(); |
2302 | - |
2303 | - // Write the image to our output stream. A StorageOutputStream can be |
2304 | - // used to create attachments using any API that supports writing a |
2305 | - // document to an output stream, e.g. iText's PdfWriter. |
2306 | - ImageIO.write(image, formatName, out); |
2307 | - |
2308 | - // Implicitly closes the output stream and returns the data that has |
2309 | - // been written to it. |
2310 | - return out.toStorage(); |
2311 | - } |
2312 | - |
2313 | - /** |
2314 | - * Draws an image; unrelated to Mime4j. |
2315 | - */ |
2316 | - private static BufferedImage renderSampleImage() { |
2317 | - System.setProperty("java.awt.headless", "true"); |
2318 | - |
2319 | - final int size = 100; |
2320 | - |
2321 | - BufferedImage img = new BufferedImage(size, size, |
2322 | - BufferedImage.TYPE_BYTE_GRAY); |
2323 | - |
2324 | - Graphics2D gfx = img.createGraphics(); |
2325 | - gfx.setRenderingHint(RenderingHints.KEY_ANTIALIASING, |
2326 | - RenderingHints.VALUE_ANTIALIAS_ON); |
2327 | - gfx.setStroke(new BasicStroke(size / 40f, BasicStroke.CAP_ROUND, |
2328 | - BasicStroke.JOIN_ROUND)); |
2329 | - |
2330 | - gfx.setColor(Color.BLACK); |
2331 | - gfx.setBackground(Color.WHITE); |
2332 | - gfx.clearRect(0, 0, size, size); |
2333 | - |
2334 | - int b = size / 30; |
2335 | - gfx.drawOval(b, b, size - 1 - 2 * b, size - 1 - 2 * b); |
2336 | - |
2337 | - int esz = size / 7; |
2338 | - int ex = (int) (0.27f * size); |
2339 | - gfx.drawOval(ex, ex, esz, esz); |
2340 | - gfx.drawOval(size - 1 - esz - ex, ex, esz, esz); |
2341 | - |
2342 | - b = size / 5; |
2343 | - gfx.drawArc(b, b, size - 1 - 2 * b, size - 1 - 2 * b, 200, 140); |
2344 | - |
2345 | - return img; |
2346 | - } |
2347 | - |
2348 | -} |
2349 | |
2350 | === removed file 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java' |
2351 | --- GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java 2010-03-14 02:32:45 +0000 |
2352 | +++ GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/dom/TextPlainMessage.java 1970-01-01 00:00:00 +0000 |
2353 | @@ -1,70 +0,0 @@ |
2354 | -/**************************************************************** |
2355 | - * Licensed to the Apache Software Foundation (ASF) under one * |
2356 | - * or more contributor license agreements. See the NOTICE file * |
2357 | - * distributed with this work for additional information * |
2358 | - * regarding copyright ownership. The ASF licenses this file * |
2359 | - * to you under the Apache License, Version 2.0 (the * |
2360 | - * "License"); you may not use this file except in compliance * |
2361 | - * with the License. You may obtain a copy of the License at * |
2362 | - * * |
2363 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
2364 | - * * |
2365 | - * Unless required by applicable law or agreed to in writing, * |
2366 | - * software distributed under the License is distributed on an * |
2367 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
2368 | - * KIND, either express or implied. See the License for the * |
2369 | - * specific language governing permissions and limitations * |
2370 | - * under the License. * |
2371 | - ****************************************************************/ |
2372 | - |
2373 | -package org.apache.james.mime4j.samples.dom; |
2374 | - |
2375 | -import java.io.IOException; |
2376 | -import java.util.Date; |
2377 | - |
2378 | -import org.apache.james.mime4j.field.address.Mailbox; |
2379 | -import org.apache.james.mime4j.message.BodyFactory; |
2380 | -import org.apache.james.mime4j.message.Message; |
2381 | -import org.apache.james.mime4j.message.TextBody; |
2382 | - |
2383 | -/** |
2384 | - * This example generates a message very similar to the one from RFC 5322 |
2385 | - * Appendix A.1.1. |
2386 | - */ |
2387 | -public class TextPlainMessage { |
2388 | - public static void main(String[] args) throws IOException { |
2389 | - // 1) start with an empty message |
2390 | - |
2391 | - Message message = new Message(); |
2392 | - |
2393 | - // 2) set header fields |
2394 | - |
2395 | - // Date and From are required fields |
2396 | - message.setDate(new Date()); |
2397 | - message.setFrom(Mailbox.parse("John Doe <jdoe@machine.example>")); |
2398 | - |
2399 | - // Message-ID should be present |
2400 | - message.createMessageId("machine.example"); |
2401 | - |
2402 | - // set some optional fields |
2403 | - message.setTo(Mailbox.parse("Mary Smith <mary@example.net>")); |
2404 | - message.setSubject("Saying Hello"); |
2405 | - |
2406 | - // 3) set a text body |
2407 | - |
2408 | - BodyFactory bodyFactory = new BodyFactory(); |
2409 | - TextBody body = bodyFactory.textBody("This is a message just to " |
2410 | - + "say hello.\r\nSo, \"Hello\"."); |
2411 | - |
2412 | - // note that setText also sets the Content-Type header field |
2413 | - message.setText(body); |
2414 | - |
2415 | - // 4) print message to standard output |
2416 | - |
2417 | - message.writeTo(System.out); |
2418 | - |
2419 | - // 5) message is no longer needed and should be disposed of |
2420 | - |
2421 | - message.dispose(); |
2422 | - } |
2423 | -} |
2424 | |
2425 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/transform' |
2426 | === removed file 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/transform/TransformMessage.java' |
2427 | --- GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/transform/TransformMessage.java 2010-03-14 02:32:45 +0000 |
2428 | +++ GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/transform/TransformMessage.java 1970-01-01 00:00:00 +0000 |
2429 | @@ -1,175 +0,0 @@ |
2430 | -/**************************************************************** |
2431 | - * Licensed to the Apache Software Foundation (ASF) under one * |
2432 | - * or more contributor license agreements. See the NOTICE file * |
2433 | - * distributed with this work for additional information * |
2434 | - * regarding copyright ownership. The ASF licenses this file * |
2435 | - * to you under the Apache License, Version 2.0 (the * |
2436 | - * "License"); you may not use this file except in compliance * |
2437 | - * with the License. You may obtain a copy of the License at * |
2438 | - * * |
2439 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
2440 | - * * |
2441 | - * Unless required by applicable law or agreed to in writing, * |
2442 | - * software distributed under the License is distributed on an * |
2443 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
2444 | - * KIND, either express or implied. See the License for the * |
2445 | - * specific language governing permissions and limitations * |
2446 | - * under the License. * |
2447 | - ****************************************************************/ |
2448 | - |
2449 | -package org.apache.james.mime4j.samples.transform; |
2450 | - |
2451 | -import java.io.ByteArrayInputStream; |
2452 | -import java.io.IOException; |
2453 | -import java.util.Date; |
2454 | -import java.util.Random; |
2455 | - |
2456 | -import org.apache.james.mime4j.field.address.Mailbox; |
2457 | -import org.apache.james.mime4j.message.Body; |
2458 | -import org.apache.james.mime4j.message.BodyFactory; |
2459 | -import org.apache.james.mime4j.message.BodyPart; |
2460 | -import org.apache.james.mime4j.message.Message; |
2461 | -import org.apache.james.mime4j.message.Multipart; |
2462 | -import org.apache.james.mime4j.message.TextBody; |
2463 | -import org.apache.james.mime4j.storage.DefaultStorageProvider; |
2464 | -import org.apache.james.mime4j.storage.StorageProvider; |
2465 | -import org.apache.james.mime4j.storage.TempFileStorageProvider; |
2466 | - |
2467 | -/** |
2468 | - * This code should illustrate how to transform a message into another message |
2469 | - * without modifying the original. |
2470 | - */ |
2471 | -public class TransformMessage { |
2472 | - |
2473 | - // Host name used in message identifiers. |
2474 | - private static final String HOSTNAME = "localhost"; |
2475 | - |
2476 | - public static void main(String[] args) throws Exception { |
2477 | - // Explicitly set a strategy for storing body parts. Usually not |
2478 | - // necessary; for most applications the default setting is appropriate. |
2479 | - StorageProvider storageProvider = new TempFileStorageProvider(); |
2480 | - DefaultStorageProvider.setInstance(storageProvider); |
2481 | - |
2482 | - // Create a template message. It would be possible to load a message |
2483 | - // from an input stream but for this example a message object is created |
2484 | - // from scratch for demonstration purposes. |
2485 | - Message template = createTemplate(); |
2486 | - |
2487 | - // Create a new message by transforming the template. |
2488 | - Message transformed = transform(template); |
2489 | - |
2490 | - // Print transformed message. |
2491 | - System.out.println("\n\nTransformed message:\n--------------------\n"); |
2492 | - transformed.writeTo(System.out); |
2493 | - |
2494 | - // Messages should be disposed of when they are no longer needed. |
2495 | - // Disposing of a message also disposes of all child elements (e.g. body |
2496 | - // parts) of the message. |
2497 | - transformed.dispose(); |
2498 | - |
2499 | - // Print original message to illustrate that it was not affected by the |
2500 | - // transformation. |
2501 | - System.out.println("\n\nOriginal template:\n------------------\n"); |
2502 | - template.writeTo(System.out); |
2503 | - |
2504 | - // Original message is no longer needed. |
2505 | - template.dispose(); |
2506 | - |
2507 | - // At this point all temporary files have been deleted because all |
2508 | - // messages and body parts have been disposed of properly. |
2509 | - } |
2510 | - |
2511 | - /** |
2512 | - * Copies the given message and makes some arbitrary changes to the copy. |
2513 | - */ |
2514 | - private static Message transform(Message original) throws IOException { |
2515 | - // Create a copy of the template. The copy can be modified without |
2516 | - // affecting the original. |
2517 | - Message message = new Message(original); |
2518 | - |
2519 | - // In this example we know we have a multipart message. Use |
2520 | - // Message#isMultipart() if uncertain. |
2521 | - Multipart multipart = (Multipart) message.getBody(); |
2522 | - |
2523 | - // Insert a new text/plain body part after every body part of the |
2524 | - // template. |
2525 | - final int count = multipart.getCount(); |
2526 | - for (int i = 0; i < count; i++) { |
2527 | - String text = "Text inserted after part " + (i + 1); |
2528 | - BodyPart bodyPart = createTextPart(text); |
2529 | - multipart.addBodyPart(bodyPart, 2 * i + 1); |
2530 | - } |
2531 | - |
2532 | - // For no particular reason remove the second binary body part (now |
2533 | - // at index four). |
2534 | - BodyPart removed = multipart.removeBodyPart(4); |
2535 | - |
2536 | - // The removed body part no longer has a parent entity it belongs to so |
2537 | - // it should be disposed of. |
2538 | - removed.dispose(); |
2539 | - |
2540 | - // Set some headers on the transformed message |
2541 | - message.createMessageId(HOSTNAME); |
2542 | - message.setSubject("Transformed message"); |
2543 | - message.setDate(new Date()); |
2544 | - message.setFrom(Mailbox.parse("John Doe <jdoe@machine.example>")); |
2545 | - |
2546 | - return message; |
2547 | - } |
2548 | - |
2549 | - /** |
2550 | - * Creates a multipart/mixed message that consists of three parts (one text, |
2551 | - * two binary). |
2552 | - */ |
2553 | - private static Message createTemplate() throws IOException { |
2554 | - Multipart multipart = new Multipart("mixed"); |
2555 | - |
2556 | - BodyPart part1 = createTextPart("This is the first part of the template.."); |
2557 | - multipart.addBodyPart(part1); |
2558 | - |
2559 | - BodyPart part2 = createRandomBinaryPart(200); |
2560 | - multipart.addBodyPart(part2); |
2561 | - |
2562 | - BodyPart part3 = createRandomBinaryPart(300); |
2563 | - multipart.addBodyPart(part3); |
2564 | - |
2565 | - Message message = new Message(); |
2566 | - message.setMultipart(multipart); |
2567 | - |
2568 | - message.setSubject("Template message"); |
2569 | - |
2570 | - return message; |
2571 | - } |
2572 | - |
2573 | - /** |
2574 | - * Creates a text part from the specified string. |
2575 | - */ |
2576 | - private static BodyPart createTextPart(String text) { |
2577 | - TextBody body = new BodyFactory().textBody(text, "UTF-8"); |
2578 | - |
2579 | - BodyPart bodyPart = new BodyPart(); |
2580 | - bodyPart.setText(body); |
2581 | - bodyPart.setContentTransferEncoding("quoted-printable"); |
2582 | - |
2583 | - return bodyPart; |
2584 | - } |
2585 | - |
2586 | - /** |
2587 | - * Creates a binary part with random content. |
2588 | - */ |
2589 | - private static BodyPart createRandomBinaryPart(int numberOfBytes) |
2590 | - throws IOException { |
2591 | - byte[] data = new byte[numberOfBytes]; |
2592 | - new Random().nextBytes(data); |
2593 | - |
2594 | - Body body = new BodyFactory() |
2595 | - .binaryBody(new ByteArrayInputStream(data)); |
2596 | - |
2597 | - BodyPart bodyPart = new BodyPart(); |
2598 | - bodyPart.setBody(body, "application/octet-stream"); |
2599 | - bodyPart.setContentTransferEncoding("base64"); |
2600 | - |
2601 | - return bodyPart; |
2602 | - } |
2603 | - |
2604 | -} |
2605 | |
2606 | === removed directory 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/tree' |
2607 | === removed file 'GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/tree/MessageTree.java' |
2608 | --- GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/tree/MessageTree.java 2010-03-14 02:32:45 +0000 |
2609 | +++ GroundhogReader/apache-mime4j-0.6/examples/src/java/org/apache/james/mime4j/samples/tree/MessageTree.java 1970-01-01 00:00:00 +0000 |
2610 | @@ -1,385 +0,0 @@ |
2611 | -/**************************************************************** |
2612 | - * Licensed to the Apache Software Foundation (ASF) under one * |
2613 | - * or more contributor license agreements. See the NOTICE file * |
2614 | - * distributed with this work for additional information * |
2615 | - * regarding copyright ownership. The ASF licenses this file * |
2616 | - * to you under the Apache License, Version 2.0 (the * |
2617 | - * "License"); you may not use this file except in compliance * |
2618 | - * with the License. You may obtain a copy of the License at * |
2619 | - * * |
2620 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
2621 | - * * |
2622 | - * Unless required by applicable law or agreed to in writing, * |
2623 | - * software distributed under the License is distributed on an * |
2624 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
2625 | - * KIND, either express or implied. See the License for the * |
2626 | - * specific language governing permissions and limitations * |
2627 | - * under the License. * |
2628 | - ****************************************************************/ |
2629 | - |
2630 | -package org.apache.james.mime4j.samples.tree; |
2631 | - |
2632 | -import java.awt.Dimension; |
2633 | -import java.awt.GridLayout; |
2634 | -import java.io.FileInputStream; |
2635 | -import java.io.FileNotFoundException; |
2636 | -import java.io.IOException; |
2637 | -import java.io.InputStream; |
2638 | -import java.io.Reader; |
2639 | -import java.util.Date; |
2640 | -import java.util.Map; |
2641 | - |
2642 | -import javax.swing.JFrame; |
2643 | -import javax.swing.JPanel; |
2644 | -import javax.swing.JScrollPane; |
2645 | -import javax.swing.JSplitPane; |
2646 | -import javax.swing.JTextArea; |
2647 | -import javax.swing.JTree; |
2648 | -import javax.swing.event.TreeSelectionEvent; |
2649 | -import javax.swing.event.TreeSelectionListener; |
2650 | -import javax.swing.tree.DefaultMutableTreeNode; |
2651 | -import javax.swing.tree.TreeSelectionModel; |
2652 | - |
2653 | -import org.apache.james.mime4j.field.AddressListField; |
2654 | -import org.apache.james.mime4j.field.ContentTypeField; |
2655 | -import org.apache.james.mime4j.field.DateTimeField; |
2656 | -import org.apache.james.mime4j.field.UnstructuredField; |
2657 | -import org.apache.james.mime4j.field.address.Mailbox; |
2658 | -import org.apache.james.mime4j.field.address.MailboxList; |
2659 | -import org.apache.james.mime4j.message.BinaryBody; |
2660 | -import org.apache.james.mime4j.message.Body; |
2661 | -import org.apache.james.mime4j.message.BodyPart; |
2662 | -import org.apache.james.mime4j.message.Entity; |
2663 | -import org.apache.james.mime4j.message.Header; |
2664 | -import org.apache.james.mime4j.message.Message; |
2665 | -import org.apache.james.mime4j.message.Multipart; |
2666 | -import org.apache.james.mime4j.message.TextBody; |
2667 | -import org.apache.james.mime4j.parser.Field; |
2668 | - |
2669 | -/** |
2670 | - * Displays a parsed Message in a window. The window will be divided into |
2671 | - * two panels. The left panel displays the Message tree. Clicking on a |
2672 | - * node in the tree shows information on that node in the right panel. |
2673 | - * |
2674 | - * Some of this code have been copied from the Java tutorial's JTree section. |
2675 | - */ |
2676 | -public class MessageTree extends JPanel implements TreeSelectionListener { |
2677 | - private static final long serialVersionUID = 1L; |
2678 | - |
2679 | - private JPanel contentPane; |
2680 | - private JTextArea textView; |
2681 | - private JTree tree; |
2682 | - |
2683 | - /** |
2684 | - * Wraps an Object and associates it with a text. All message parts |
2685 | - * (headers, bodies, multiparts, body parts) will be wrapped in |
2686 | - * ObjectWrapper instances before they are added to the JTree instance. |
2687 | - */ |
2688 | - public static class ObjectWrapper { |
2689 | - private String text = ""; |
2690 | - private Object object = null; |
2691 | - |
2692 | - public ObjectWrapper(String text, Object object) { |
2693 | - this.text = text; |
2694 | - this.object = object; |
2695 | - } |
2696 | - |
2697 | - @Override |
2698 | - public String toString() { |
2699 | - return text; |
2700 | - } |
2701 | - |
2702 | - public Object getObject() { |
2703 | - return object; |
2704 | - } |
2705 | - } |
2706 | - |
2707 | - /** |
2708 | - * Creates a new <code>MessageTree</code> instance displaying the |
2709 | - * specified <code>Message</code>. |
2710 | - * |
2711 | - * @param message the message to display. |
2712 | - */ |
2713 | - public MessageTree(Message message) { |
2714 | - super(new GridLayout(1,0)); |
2715 | - |
2716 | - DefaultMutableTreeNode root = createNode(message); |
2717 | - |
2718 | - tree = new JTree(root); |
2719 | - tree.getSelectionModel().setSelectionMode( |
2720 | - TreeSelectionModel.SINGLE_TREE_SELECTION); |
2721 | - |
2722 | - tree.addTreeSelectionListener(this); |
2723 | - |
2724 | - JScrollPane treeView = new JScrollPane(tree); |
2725 | - |
2726 | - contentPane = new JPanel(new GridLayout(1,0)); |
2727 | - JScrollPane contentView = new JScrollPane(contentPane); |
2728 | - |
2729 | - JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT); |
2730 | - splitPane.setLeftComponent(treeView); |
2731 | - splitPane.setRightComponent(contentView); |
2732 | - |
2733 | - Dimension minimumSize = new Dimension(100, 50); |
2734 | - contentView.setMinimumSize(minimumSize); |
2735 | - treeView.setMinimumSize(minimumSize); |
2736 | - splitPane.setDividerLocation(250); |
2737 | - splitPane.setPreferredSize(new Dimension(750, 500)); |
2738 | - |
2739 | - add(splitPane); |
2740 | - |
2741 | - textView = new JTextArea(); |
2742 | - textView.setEditable(false); |
2743 | - textView.setLineWrap(true); |
2744 | - contentPane.add(textView); |
2745 | - } |
2746 | - |
2747 | - /** |
2748 | - * Create a node given a Multipart body. |
2749 | - * Add the Preamble, all Body parts and the Epilogue to the node. |
2750 | - * |
2751 | - * @param multipart the Multipart. |
2752 | - * @return the root node of the tree. |
2753 | - */ |
2754 | - private DefaultMutableTreeNode createNode(Header header) { |
2755 | - DefaultMutableTreeNode node = new DefaultMutableTreeNode( |
2756 | - new ObjectWrapper("Header", header)); |
2757 | - |
2758 | - for (Field field : header.getFields()) { |
2759 | - String name = field.getName(); |
2760 | - |
2761 | - node.add(new DefaultMutableTreeNode(new ObjectWrapper(name, field))); |
2762 | - } |
2763 | - |
2764 | - return node; |
2765 | - } |
2766 | - |
2767 | - /** |
2768 | - * Create a node given a Multipart body. |
2769 | - * Add the Preamble, all Body parts and the Epilogue to the node. |
2770 | - * |
2771 | - * @param multipart the Multipart. |
2772 | - * @return the root node of the tree. |
2773 | - */ |
2774 | - private DefaultMutableTreeNode createNode(Multipart multipart) { |
2775 | - DefaultMutableTreeNode node = new DefaultMutableTreeNode( |
2776 | - new ObjectWrapper("Multipart", multipart)); |
2777 | - |
2778 | - node.add(new DefaultMutableTreeNode( |
2779 | - new ObjectWrapper("Preamble", multipart.getPreamble()))); |
2780 | - for (BodyPart part : multipart.getBodyParts()) { |
2781 | - node.add(createNode(part)); |
2782 | - } |
2783 | - node.add(new DefaultMutableTreeNode( |
2784 | - new ObjectWrapper("Epilogue", multipart.getEpilogue()))); |
2785 | - |
2786 | - return node; |
2787 | - } |
2788 | - |
2789 | - /** |
2790 | - * Creates the tree nodes given a MIME entity (either a Message or |
2791 | - * a BodyPart). |
2792 | - * |
2793 | - * @param entity the entity. |
2794 | - * @return the root node of the tree displaying the specified entity and |
2795 | - * its children. |
2796 | - */ |
2797 | - private DefaultMutableTreeNode createNode(Entity entity) { |
2798 | - |
2799 | - /* |
2800 | - * Create the root node for the entity. It's either a |
2801 | - * Message or a Body part. |
2802 | - */ |
2803 | - String type = "Message"; |
2804 | - if (entity instanceof BodyPart) { |
2805 | - type = "Body part"; |
2806 | - } |
2807 | - DefaultMutableTreeNode node = new DefaultMutableTreeNode( |
2808 | - new ObjectWrapper(type, entity)); |
2809 | - |
2810 | - /* |
2811 | - * Add the node encapsulating the entity Header. |
2812 | - */ |
2813 | - node.add(createNode(entity.getHeader())); |
2814 | - |
2815 | - Body body = entity.getBody(); |
2816 | - |
2817 | - if (body instanceof Multipart) { |
2818 | - /* |
2819 | - * The body of the entity is a Multipart. |
2820 | - */ |
2821 | - |
2822 | - node.add(createNode((Multipart) body)); |
2823 | - } else if (body instanceof Message) { |
2824 | - /* |
2825 | - * The body is another Message. |
2826 | - */ |
2827 | - |
2828 | - node.add(createNode((Message) body)); |
2829 | - |
2830 | - } else { |
2831 | - /* |
2832 | - * Discrete Body (either of type TextBody or BinaryBody). |
2833 | - */ |
2834 | - type = "Text body"; |
2835 | - if (body instanceof BinaryBody) { |
2836 | - type = "Binary body"; |
2837 | - } |
2838 | - |
2839 | - type += " (" + entity.getMimeType() + ")"; |
2840 | - node.add(new DefaultMutableTreeNode(new ObjectWrapper(type, body))); |
2841 | - |
2842 | - } |
2843 | - |
2844 | - return node; |
2845 | - } |
2846 | - |
2847 | - /** |
2848 | - * Called whenever the selection changes in the JTree instance showing |
2849 | - * the Message nodes. |
2850 | - * |
2851 | - * @param e the event. |
2852 | - */ |
2853 | - public void valueChanged(TreeSelectionEvent e) { |
2854 | - DefaultMutableTreeNode node = (DefaultMutableTreeNode) |
2855 | - tree.getLastSelectedPathComponent(); |
2856 | - |
2857 | - textView.setText(""); |
2858 | - |
2859 | - if (node == null) { |
2860 | - return; |
2861 | - } |
2862 | - |
2863 | - Object o = ((ObjectWrapper) node.getUserObject()).getObject(); |
2864 | - |
2865 | - if (node.isLeaf()) { |
2866 | - |
2867 | - if (o instanceof TextBody){ |
2868 | - /* |
2869 | - * A text body. Display its contents. |
2870 | - */ |
2871 | - TextBody body = (TextBody) o; |
2872 | - StringBuilder sb = new StringBuilder(); |
2873 | - try { |
2874 | - Reader r = body.getReader(); |
2875 | - int c; |
2876 | - while ((c = r.read()) != -1) { |
2877 | - sb.append((char) c); |
2878 | - } |
2879 | - } catch (IOException ex) { |
2880 | - ex.printStackTrace(); |
2881 | - } |
2882 | - textView.setText(sb.toString()); |
2883 | - |
2884 | - } else if (o instanceof BinaryBody){ |
2885 | - /* |
2886 | - * A binary body. Display its MIME type and length in bytes. |
2887 | - */ |
2888 | - BinaryBody body = (BinaryBody) o; |
2889 | - int size = 0; |
2890 | - try { |
2891 | - InputStream is = body.getInputStream(); |
2892 | - while ((is.read()) != -1) { |
2893 | - size++; |
2894 | - } |
2895 | - } catch (IOException ex) { |
2896 | - ex.printStackTrace(); |
2897 | - } |
2898 | - textView.setText("Binary body\n" |
2899 | - + "MIME type: " |
2900 | - + body.getParent().getMimeType() + "\n" |
2901 | - + "Size of decoded data: " + size + " bytes"); |
2902 | - |
2903 | - } else if (o instanceof ContentTypeField) { |
2904 | - /* |
2905 | - * Content-Type field. |
2906 | - */ |
2907 | - ContentTypeField field = (ContentTypeField) o; |
2908 | - StringBuilder sb = new StringBuilder(); |
2909 | - sb.append("MIME type: " + field.getMimeType() + "\n"); |
2910 | - Map<String, String> params = field.getParameters(); |
2911 | - for (String name : params.keySet()) { |
2912 | - sb.append(name + " = " + params.get(name) + "\n"); |
2913 | - } |
2914 | - textView.setText(sb.toString()); |
2915 | - |
2916 | - } else if (o instanceof AddressListField) { |
2917 | - /* |
2918 | - * An address field (From, To, Cc, etc) |
2919 | - */ |
2920 | - AddressListField field = (AddressListField) o; |
2921 | - MailboxList list = field.getAddressList().flatten(); |
2922 | - StringBuilder sb = new StringBuilder(); |
2923 | - for (int i = 0; i < list.size(); i++) { |
2924 | - Mailbox mb = list.get(i); |
2925 | - sb.append(mb.getDisplayString() + "\n"); |
2926 | - } |
2927 | - textView.setText(sb.toString()); |
2928 | - |
2929 | - } else if (o instanceof DateTimeField) { |
2930 | - Date date = ((DateTimeField) o).getDate(); |
2931 | - textView.setText(date.toString()); |
2932 | - } else if (o instanceof UnstructuredField){ |
2933 | - textView.setText(((UnstructuredField) o).getValue()); |
2934 | - } else if (o instanceof Field){ |
2935 | - textView.setText(((Field) o).getBody()); |
2936 | - } else { |
2937 | - /* |
2938 | - * The Object should be a Header or a String containing a |
2939 | - * Preamble or Epilogue. |
2940 | - */ |
2941 | - textView.setText(o.toString()); |
2942 | - } |
2943 | - |
2944 | - } |
2945 | - } |
2946 | - |
2947 | - /** |
2948 | - * Creates and displays the gui. |
2949 | - * |
2950 | - * @param message the Message to display in the tree. |
2951 | - */ |
2952 | - private static void createAndShowGUI(Message message) { |
2953 | - /* |
2954 | - * Create and set up the window. |
2955 | - */ |
2956 | - JFrame frame = new JFrame("MessageTree"); |
2957 | - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); |
2958 | - |
2959 | - /* |
2960 | - * Create and set up the content pane. |
2961 | - */ |
2962 | - MessageTree newContentPane = new MessageTree(message); |
2963 | - newContentPane.setOpaque(true); |
2964 | - frame.setContentPane(newContentPane); |
2965 | - |
2966 | - /* |
2967 | - * Display the window. |
2968 | - */ |
2969 | - frame.pack(); |
2970 | - frame.setVisible(true); |
2971 | - } |
2972 | - |
2973 | - public static void main(String[] args) { |
2974 | - try { |
2975 | - |
2976 | - final Message message = new Message(new FileInputStream(args[0])); |
2977 | - |
2978 | - javax.swing.SwingUtilities.invokeLater(new Runnable() { |
2979 | - public void run() { |
2980 | - createAndShowGUI(message); |
2981 | - } |
2982 | - }); |
2983 | - |
2984 | - } catch (ArrayIndexOutOfBoundsException e) { |
2985 | - System.err.println("Wrong number of arguments."); |
2986 | - System.err.println("Usage: org.mime4j.samples.tree.MessageTree" |
2987 | - + " path/to/message"); |
2988 | - } catch (FileNotFoundException e) { |
2989 | - System.err.println("The file '" + args[0] + "' could not be found."); |
2990 | - } catch (IOException e) { |
2991 | - System.err.println("The file '" + args[0] + "' could not be read."); |
2992 | - } |
2993 | - } |
2994 | - |
2995 | -} |
2996 | |
2997 | === removed file 'GroundhogReader/apache-mime4j-0.6/pom.xml' |
2998 | --- GroundhogReader/apache-mime4j-0.6/pom.xml 2010-03-14 02:32:45 +0000 |
2999 | +++ GroundhogReader/apache-mime4j-0.6/pom.xml 1970-01-01 00:00:00 +0000 |
3000 | @@ -1,379 +0,0 @@ |
3001 | -<?xml version="1.0" encoding="UTF-8"?> |
3002 | -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> |
3003 | - <!-- |
3004 | - Licensed to the Apache Software Foundation (ASF) under one |
3005 | - or more contributor license agreements. See the NOTICE file |
3006 | - distributed with this work for additional information |
3007 | - regarding copyright ownership. The ASF licenses this file |
3008 | - to you under the Apache License, Version 2.0 (the |
3009 | - "License"); you may not use this file except in compliance |
3010 | - with the License. You may obtain a copy of the License at |
3011 | - |
3012 | - http://www.apache.org/licenses/LICENSE-2.0 |
3013 | - |
3014 | - Unless required by applicable law or agreed to in writing, |
3015 | - software distributed under the License is distributed on an |
3016 | - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
3017 | - KIND, either express or implied. See the License for the |
3018 | - specific language governing permissions and limitations |
3019 | - under the License. |
3020 | - --> |
3021 | - <parent> |
3022 | - <artifactId>james-project</artifactId> |
3023 | - <groupId>org.apache.james</groupId> |
3024 | - <version>1.2</version> |
3025 | - <!-- Either this really points to the james-project/pom.xml or you |
3026 | - will have to tune the local repository, later, in this file --> |
3027 | - <relativePath>../james-project/project/pom.xml</relativePath> |
3028 | - </parent> |
3029 | - <modelVersion>4.0.0</modelVersion> |
3030 | - <groupId>org.apache.james</groupId> |
3031 | - <artifactId>apache-mime4j</artifactId> |
3032 | - <name>Apache JAMES Mime4j</name> |
3033 | - <version>0.6</version> |
3034 | - <description>Java stream based MIME message parser</description> |
3035 | - <url>http://james.apache.org/mime4j</url> |
3036 | - <issueManagement> |
3037 | - <url>http://issues.apache.org/jira/browse/MIME4J</url> |
3038 | - </issueManagement> |
3039 | - <inceptionYear>2004</inceptionYear> |
3040 | - <distributionManagement> |
3041 | - <site> |
3042 | - <id>mime4j-website</id> |
3043 | - <url>scp://minotaur.apache.org/www/james.apache.org/mime4j/</url> |
3044 | - </site> |
3045 | - </distributionManagement> |
3046 | - <scm> |
3047 | - <connection>scm:svn:http://svn.apache.org/repos/asf/james/mime4j/tags/apache-mime4j-0.6</connection> |
3048 | - <developerConnection>scm:svn:https://svn.apache.org/repos/asf/james/mime4j/tags/apache-mime4j-0.6</developerConnection> |
3049 | - <url>http://svn.apache.org/viewvc/james/mime4j/tags/apache-mime4j-0.6</url> |
3050 | - </scm> |
3051 | - <build> |
3052 | - <plugins> |
3053 | - <plugin> |
3054 | - <groupId>org.codehaus.mojo</groupId> |
3055 | - <artifactId>rat-maven-plugin</artifactId> |
3056 | - <version>1.0-alpha-3</version> |
3057 | - <executions> |
3058 | - <execution> |
3059 | - <phase>verify</phase> |
3060 | - <goals> |
3061 | - <goal>check</goal> |
3062 | - </goals> |
3063 | - </execution> |
3064 | - </executions> |
3065 | - </plugin> |
3066 | - <plugin> |
3067 | - <groupId>org.codehaus.mojo</groupId> |
3068 | - <artifactId>javacc-maven-plugin</artifactId> |
3069 | - <version>2.4.1</version> |
3070 | - <executions> |
3071 | - <execution> |
3072 | - <id>generate-jjtree</id> |
3073 | - <phase>generate-sources</phase> |
3074 | - <goals> |
3075 | - <goal>jjtree-javacc</goal> |
3076 | - </goals> |
3077 | - </execution> |
3078 | - <execution> |
3079 | - <id>generate-javacc</id> |
3080 | - <phase>generate-sources</phase> |
3081 | - <goals> |
3082 | - <goal>javacc</goal> |
3083 | - </goals> |
3084 | - </execution> |
3085 | - </executions> |
3086 | - </plugin> |
3087 | - <plugin> |
3088 | - <groupId>org.apache.maven.plugins</groupId> |
3089 | - <artifactId>maven-compiler-plugin</artifactId> |
3090 | - <version>2.0.2</version> |
3091 | - <configuration> |
3092 | - <source>${compileSource}</source> |
3093 | - <target>${compileSource}</target> |
3094 | - <encoding>iso8859-1</encoding> |
3095 | - </configuration> |
3096 | - </plugin> |
3097 | - <plugin> |
3098 | - <artifactId>maven-jar-plugin</artifactId> |
3099 | - <version>2.2</version> |
3100 | - <configuration> |
3101 | - <archive> |
3102 | - <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> |
3103 | - <manifestEntries> |
3104 | - <Specification-Title>Apache Mime4j</Specification-Title> |
3105 | - <Specification-Version>${pom.version}</Specification-Version> |
3106 | - <Specification-Vendor>The Apache Software Foundation</Specification-Vendor> |
3107 | - <Implementation-Title>Apache Mime4j</Implementation-Title> |
3108 | - <Implementation-Version>${pom.version}</Implementation-Version> |
3109 | - <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor> |
3110 | - <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id> |
3111 | - <url>${pom.url}</url> |
3112 | - </manifestEntries> |
3113 | - </archive> |
3114 | - </configuration> |
3115 | - </plugin> |
3116 | - <plugin> |
3117 | - <artifactId>maven-javadoc-plugin</artifactId> |
3118 | - <version>2.5</version> |
3119 | - <executions> |
3120 | - <execution> |
3121 | - <id>create-javadocs</id> <!-- this is used for inheritance merges --> |
3122 | - <phase>package</phase> <!-- append to the packaging phase. --> |
3123 | - <goals> |
3124 | - <goal>javadoc</goal> <!-- goals == mojos --> |
3125 | - <goal>jar</goal> <!-- goals == mojos --> |
3126 | - </goals> |
3127 | - </execution> |
3128 | - </executions> |
3129 | - <configuration> |
3130 | - <excludePackageNames>org.apache.james.mime4j.field.address.parser:org.apache.james.mime4j.field.contentdisposition.parser:org.apache.james.mime4j.field.contenttype.parser:org.apache.james.mime4j.field.datetime.parser:org.apache.james.mime4j.field.language.parser:org.apache.james.mime4j.field.mimeversion.parser:org.apache.james.mime4j.field.structured.parser</excludePackageNames> |
3131 | - </configuration> |
3132 | - </plugin> |
3133 | - <!-- Add NOTICE and LICENSE to generated JAR --> |
3134 | - <plugin> |
3135 | - <artifactId>maven-remote-resources-plugin</artifactId> |
3136 | - <version>1.0</version> |
3137 | - <executions> |
3138 | - <execution> |
3139 | - <goals> |
3140 | - <goal>process</goal> |
3141 | - </goals> |
3142 | - <configuration> |
3143 | - <resourceBundles> |
3144 | - <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle> |
3145 | - </resourceBundles> |
3146 | - <properties> |
3147 | - <addLicense>true</addLicense> |
3148 | - </properties> |
3149 | - </configuration> |
3150 | - </execution> |
3151 | - </executions> |
3152 | - </plugin> |
3153 | - <plugin> |
3154 | - <groupId>org.apache.maven.plugins</groupId> |
3155 | - <artifactId>maven-source-plugin</artifactId> |
3156 | - <version>2.0.4</version> |
3157 | - <executions> |
3158 | - <execution> |
3159 | - <id>attach-sources</id> |
3160 | - <goals> |
3161 | - <goal>jar</goal> |
3162 | - </goals> |
3163 | - </execution> |
3164 | - </executions> |
3165 | - </plugin> |
3166 | - |
3167 | - <!-- |
3168 | - <plugin> |
3169 | - <groupId>org.apache.maven.plugins</groupId> |
3170 | - <artifactId>maven-javadoc-plugin</artifactId> |
3171 | - </plugin> |
3172 | - --> |
3173 | - <plugin> |
3174 | - <groupId>org.apache.felix</groupId> |
3175 | - <artifactId>maven-bundle-plugin</artifactId> |
3176 | - <version>1.4.3</version> |
3177 | - <executions> |
3178 | - <execution> |
3179 | - <id>bundle-manifest</id> |
3180 | - <phase>process-classes</phase> |
3181 | - <goals> |
3182 | - <goal>manifest</goal> |
3183 | - </goals> |
3184 | - </execution> |
3185 | - </executions> |
3186 | - <extensions>true</extensions> |
3187 | - <configuration> |
3188 | - <instructions> |
3189 | - <Export-Package>org.apache.james.mime4j.*</Export-Package> |
3190 | - <Embed-Dependency>*;scope=runtime</Embed-Dependency> |
3191 | - </instructions> |
3192 | - </configuration> |
3193 | - </plugin> |
3194 | - <plugin> |
3195 | - <artifactId>maven-assembly-plugin</artifactId> |
3196 | - <version>2.2-beta-2</version> |
3197 | - <configuration> |
3198 | - <descriptorSourceDirectory>${basedir}/src/assemble/</descriptorSourceDirectory> |
3199 | - <tarLongFileMode>gnu</tarLongFileMode> |
3200 | - </configuration> |
3201 | - <executions> |
3202 | - <execution> |
3203 | - <id>make-assembly</id> <!-- this is used for inheritance merges --> |
3204 | - <phase>package</phase> <!-- append to the packaging phase. --> |
3205 | - <goals> |
3206 | - <goal>attached</goal> <!-- goals == mojos --> |
3207 | - </goals> |
3208 | - </execution> |
3209 | - </executions> |
3210 | - </plugin> |
3211 | - </plugins> |
3212 | - </build> |
3213 | - <repositories> |
3214 | - <repository> |
3215 | - <id>local-mime4j-stage-repository</id> |
3216 | - <name>Local mime4j stage repository</name> |
3217 | - <!-- Please note that due to http://jira.codehaus.org/browse/MNG-2896 --> |
3218 | - <!-- If you don't have james-project checked out in ../james-project --> |
3219 | - <!-- you will have to place your absolute path to the project instead --> |
3220 | - <!-- of ${basedir}, or, otherwise, manually install the parent poms --> |
3221 | - <!-- |
3222 | - mvn -fignorepom.xml install:install-file |
3223 | - -Dfile=stage\org.apache.james\poms\james-parent-1.1.pom |
3224 | - -Dpackaging=pom |
3225 | - -DgroupId=org.apache.james |
3226 | - -DartifactId=james-parent |
3227 | - -Dversion=1.1 |
3228 | - mvn -fignorepom.xml install:install-file |
3229 | - -Dfile=stage\org.apache.james\poms\james-project-1.2.pom |
3230 | - -Dpackaging=pom |
3231 | - -DgroupId=org.apache.james |
3232 | - -DartifactId=james-project |
3233 | - -Dversion=1.2 |
3234 | - --> |
3235 | - <url>file://${basedir}/stage</url> |
3236 | - <layout>legacy</layout> |
3237 | - <snapshots> |
3238 | - <enabled>true</enabled> |
3239 | - <checksumPolicy>ignore</checksumPolicy> |
3240 | - </snapshots> |
3241 | - <releases> |
3242 | - <enabled>true</enabled> |
3243 | - <checksumPolicy>ignore</checksumPolicy> |
3244 | - </releases> |
3245 | - </repository> |
3246 | - </repositories> |
3247 | - <dependencies> |
3248 | - <dependency> |
3249 | - <groupId>commons-logging</groupId> |
3250 | - <artifactId>commons-logging</artifactId> |
3251 | - <version>1.1.1</version> |
3252 | - </dependency> |
3253 | - <dependency> |
3254 | - <groupId>log4j</groupId> |
3255 | - <artifactId>log4j</artifactId> |
3256 | - <version>1.2.14</version> |
3257 | - <scope>test</scope> |
3258 | - </dependency> |
3259 | - <dependency> |
3260 | - <groupId>junit</groupId> |
3261 | - <artifactId>junit</artifactId> |
3262 | - <version>3.8.1</version> |
3263 | - <type>jar</type> |
3264 | - <!-- Removed as a workaround for an unidentified M2 bug --> |
3265 | - <scope>test</scope> |
3266 | - <optional>true</optional> |
3267 | - </dependency> |
3268 | - <dependency> |
3269 | - <groupId>commons-io</groupId> |
3270 | - <artifactId>commons-io</artifactId> |
3271 | - <version>1.2</version> |
3272 | - <scope>test</scope> |
3273 | - <optional>true</optional> |
3274 | - </dependency> |
3275 | - </dependencies> |
3276 | - |
3277 | - <reporting> |
3278 | - <plugins> |
3279 | - <plugin> |
3280 | - <groupId>org.apache.maven.plugins</groupId> |
3281 | - <artifactId>maven-changes-plugin</artifactId> |
3282 | - <configuration> |
3283 | - <onlyCurrentVersion>true</onlyCurrentVersion> |
3284 | - <resolutionIds>Closed</resolutionIds> |
3285 | - </configuration> |
3286 | - <reportSets> |
3287 | - <reportSet> |
3288 | - <reports> |
3289 | - <report>jira-report</report> |
3290 | - </reports> |
3291 | - </reportSet> |
3292 | - </reportSets> |
3293 | - </plugin> |
3294 | - <plugin> |
3295 | - <artifactId>maven-surefire-plugin</artifactId> |
3296 | - <version>2.4.3</version> |
3297 | - </plugin> |
3298 | - <plugin> |
3299 | - <artifactId>maven-surefire-report-plugin</artifactId> |
3300 | - <version>2.4.3</version> |
3301 | - </plugin> |
3302 | - <plugin> |
3303 | - <artifactId>maven-javadoc-plugin</artifactId> |
3304 | - <version>2.5</version> |
3305 | - </plugin> |
3306 | - <plugin> |
3307 | - <groupId>org.apache.maven.plugins</groupId> |
3308 | - <artifactId>maven-jxr-plugin</artifactId> |
3309 | - <version>2.1</version> |
3310 | - </plugin> |
3311 | - <plugin> |
3312 | - <groupId>org.apache.maven.plugins</groupId> |
3313 | - <artifactId>maven-pmd-plugin</artifactId> |
3314 | - <version>2.4</version> |
3315 | - <configuration> |
3316 | - <targetJdk>${compileSource}</targetJdk> |
3317 | - <rulesets> |
3318 | - <ruleset>/rulesets/basic.xml</ruleset> |
3319 | - <ruleset>/rulesets/controversial.xml</ruleset> |
3320 | - </rulesets> |
3321 | - <format>xml</format> |
3322 | - <linkXref>true</linkXref> |
3323 | - <sourceEncoding>utf-8</sourceEncoding> |
3324 | - <minimumTokens>100</minimumTokens> |
3325 | - </configuration> |
3326 | - </plugin> |
3327 | - <plugin> |
3328 | - <groupId>org.apache.maven.plugins</groupId> |
3329 | - <artifactId>maven-site-plugin</artifactId> |
3330 | - <version>2.0-beta-7</version> |
3331 | - </plugin> |
3332 | - <plugin> |
3333 | - <groupId>org.codehaus.mojo</groupId> |
3334 | - <artifactId>rat-maven-plugin</artifactId> |
3335 | - <version>1.0-alpha-3</version> |
3336 | - <configuration> |
3337 | - <excludes> |
3338 | - <!-- test resources created by JAMES committers / we can't include ALv2 headers there --> |
3339 | - <exclude>src/test/resources/testmsgs/*</exclude> |
3340 | - <exclude>benchmarks/resources/*.msg</exclude> |
3341 | - <!-- 3rd party descriptors distributed via maven repositories |
3342 | - and included "as is" --> |
3343 | - <exclude>stage/commons-io/poms/commons-io-1.2.pom</exclude> |
3344 | - <exclude>stage/commons-logging/poms/commons-logging-1.1.pom</exclude> |
3345 | - <exclude>stage/org.apache.james/xmls/james-parent-1.1-site.xml</exclude> |
3346 | - <exclude>stage/org.apache.james/xmls/james-parent-1.1-site_en.xml</exclude> |
3347 | - <exclude>stage/org.apache.james/xmls/james-project-1.2-site.xml</exclude> |
3348 | - <exclude>stage/org.apache.james/xmls/james-project-1.2-site_en.xml</exclude> |
3349 | - <exclude>release.properties</exclude> |
3350 | - </excludes> |
3351 | - </configuration> |
3352 | - </plugin> |
3353 | - <plugin> |
3354 | - <groupId>org.codehaus.mojo</groupId> |
3355 | - <artifactId>taglist-maven-plugin</artifactId> |
3356 | - <version>2.2</version> |
3357 | - </plugin> |
3358 | - <plugin> |
3359 | - <groupId>org.codehaus.mojo</groupId> |
3360 | - <artifactId>javacc-maven-plugin</artifactId> |
3361 | - <version>2.4.1</version> |
3362 | - </plugin> |
3363 | - </plugins> |
3364 | - </reporting> |
3365 | - |
3366 | - <mailingLists> |
3367 | - <mailingList> |
3368 | - <name>Apache Mime4j Lists</name> |
3369 | - <subscribe>mime4j-dev-subscribe@james.apache.org</subscribe> |
3370 | - <unsubscribe>mime4j-dev-unsubscribe@james.apache.org</unsubscribe> |
3371 | - <post>mime4j-dev@james.apache.org</post> |
3372 | - <archive>http://mail-archives.apache.org/mod_mbox/james-mime4j-dev/</archive> |
3373 | - </mailingList> |
3374 | - </mailingLists> |
3375 | - |
3376 | - <properties> |
3377 | - <compileSource>1.5</compileSource> |
3378 | - </properties> |
3379 | -</project> |
3380 | |
3381 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src' |
3382 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/assemble' |
3383 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/assemble/bin.xml' |
3384 | --- GroundhogReader/apache-mime4j-0.6/src/assemble/bin.xml 2010-03-14 02:32:45 +0000 |
3385 | +++ GroundhogReader/apache-mime4j-0.6/src/assemble/bin.xml 1970-01-01 00:00:00 +0000 |
3386 | @@ -1,64 +0,0 @@ |
3387 | -<assembly> |
3388 | - <!-- |
3389 | - Licensed to the Apache Software Foundation (ASF) under one or more |
3390 | - contributor license agreements. See the NOTICE file distributed with |
3391 | - this work for additional information regarding copyright ownership. |
3392 | - The ASF licenses this file to You under the Apache License, Version 2.0 |
3393 | - (the "License"); you may not use this file except in compliance with |
3394 | - the License. You may obtain a copy of the License at |
3395 | - |
3396 | - http://www.apache.org/licenses/LICENSE-2.0 |
3397 | - |
3398 | - Unless required by applicable law or agreed to in writing, software |
3399 | - distributed under the License is distributed on an "AS IS" BASIS, |
3400 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
3401 | - implied. |
3402 | - |
3403 | - See the License for the specific language governing permissions and |
3404 | - limitations under the License. |
3405 | - --> |
3406 | - <id>bin</id> |
3407 | - <!-- |
3408 | - Generates a jar file including the binary jar and the runtime dependencies. |
3409 | - including NOTICE and LICENSE in the root. |
3410 | - --> |
3411 | - <formats> |
3412 | - <format>zip</format> |
3413 | - <format>tar.gz</format> |
3414 | - </formats> |
3415 | - <fileSets> |
3416 | - <fileSet> |
3417 | - <directory>target/maven-shared-archive-resources/META-INF/</directory> |
3418 | - <outputDirectory>/</outputDirectory> |
3419 | - <includes> |
3420 | - <include>*</include> |
3421 | - </includes> |
3422 | - </fileSet> |
3423 | - <fileSet> |
3424 | - <includes> |
3425 | - <include>RELEASE_NOTES.txt</include> |
3426 | - </includes> |
3427 | - </fileSet> |
3428 | - <fileSet> |
3429 | - <directory>examples</directory> |
3430 | - </fileSet> |
3431 | - <fileSet> |
3432 | - <directory>target</directory> |
3433 | - <outputDirectory></outputDirectory> |
3434 | - <includes> |
3435 | - <include>${artifactId}-${version}.jar</include> |
3436 | - </includes> |
3437 | - </fileSet> |
3438 | - <fileSet> |
3439 | - <directory>target/apidocs</directory> |
3440 | - <outputDirectory>javadocs</outputDirectory> |
3441 | - </fileSet> |
3442 | - </fileSets> |
3443 | - <dependencySets> |
3444 | - <dependencySet> |
3445 | - <outputDirectory>/lib/</outputDirectory> |
3446 | - <useProjectArtifact>false</useProjectArtifact> |
3447 | - <scope>runtime</scope> |
3448 | - </dependencySet> |
3449 | - </dependencySets> |
3450 | -</assembly> |
3451 | |
3452 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/assemble/src.xml' |
3453 | --- GroundhogReader/apache-mime4j-0.6/src/assemble/src.xml 2010-03-14 02:32:45 +0000 |
3454 | +++ GroundhogReader/apache-mime4j-0.6/src/assemble/src.xml 1970-01-01 00:00:00 +0000 |
3455 | @@ -1,43 +0,0 @@ |
3456 | -<assembly> |
3457 | - <!-- |
3458 | - Licensed to the Apache Software Foundation (ASF) under one or more |
3459 | - contributor license agreements. See the NOTICE file distributed with |
3460 | - this work for additional information regarding copyright ownership. |
3461 | - The ASF licenses this file to You under the Apache License, Version 2.0 |
3462 | - (the "License"); you may not use this file except in compliance with |
3463 | - the License. You may obtain a copy of the License at |
3464 | - |
3465 | - http://www.apache.org/licenses/LICENSE-2.0 |
3466 | - |
3467 | - Unless required by applicable law or agreed to in writing, software |
3468 | - distributed under the License is distributed on an "AS IS" BASIS, |
3469 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
3470 | - implied. |
3471 | - |
3472 | - See the License for the specific language governing permissions and |
3473 | - limitations under the License. |
3474 | - --> |
3475 | - <id>src</id> |
3476 | - <!-- |
3477 | - Generates a file including all the source tree excluding files/folders |
3478 | - starting with "." , *.bak and the target |
3479 | - --> |
3480 | - <formats> |
3481 | - <format>zip</format> |
3482 | - <format>tar.gz</format> |
3483 | - </formats> |
3484 | - <fileSets> |
3485 | - <fileSet> |
3486 | - <directory>.</directory> |
3487 | - <outputDirectory></outputDirectory> |
3488 | - <excludes> |
3489 | - <exclude>**/target/**</exclude> |
3490 | - <exclude>.*</exclude> |
3491 | - <exclude>.*/**</exclude> |
3492 | - <exclude>**.bak</exclude> |
3493 | - <exclude>lib/**</exclude> |
3494 | - </excludes> |
3495 | - <useDefaultExcludes>true</useDefaultExcludes> |
3496 | - </fileSet> |
3497 | - </fileSets> |
3498 | -</assembly> |
3499 | |
3500 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main' |
3501 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main/appended-resources' |
3502 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/appended-resources/supplemental-models.xml' |
3503 | --- GroundhogReader/apache-mime4j-0.6/src/main/appended-resources/supplemental-models.xml 2010-03-14 02:32:45 +0000 |
3504 | +++ GroundhogReader/apache-mime4j-0.6/src/main/appended-resources/supplemental-models.xml 1970-01-01 00:00:00 +0000 |
3505 | @@ -1,95 +0,0 @@ |
3506 | -<?xml version="1.0" encoding="UTF-8"?> |
3507 | -<supplementalDataModels> |
3508 | - <!-- |
3509 | - Licensed to the Apache Software Foundation (ASF) under one or more |
3510 | - contributor license agreements. See the NOTICE file distributed with |
3511 | - this work for additional information regarding copyright ownership. |
3512 | - The ASF licenses this file to You under the Apache License, Version 2.0 |
3513 | - (the "License"); you may not use this file except in compliance with |
3514 | - the License. You may obtain a copy of the License at |
3515 | - |
3516 | - http://www.apache.org/licenses/LICENSE-2.0 |
3517 | - |
3518 | - Unless required by applicable law or agreed to in writing, software |
3519 | - distributed under the License is distributed on an "AS IS" BASIS, |
3520 | - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
3521 | - implied. |
3522 | - |
3523 | - See the License for the specific language governing permissions and |
3524 | - limitations under the License. |
3525 | - --> |
3526 | - <supplement> |
3527 | - <project> |
3528 | - <groupId>commons-logging</groupId> |
3529 | - <artifactId>commons-logging</artifactId> |
3530 | - <name>Apache Commons Logging</name> |
3531 | - <url>http://jakarta.apache.org/commons/logging/</url> |
3532 | - <organization> |
3533 | - <name>The Apache Software Foundation</name> |
3534 | - <url>http://www.apache.org/</url> |
3535 | - </organization> |
3536 | - <licenses> |
3537 | - <license> |
3538 | - <name>Apache License, Version 2.0</name> |
3539 | - <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> |
3540 | - <distribution>repo</distribution> |
3541 | - </license> |
3542 | - </licenses> |
3543 | - </project> |
3544 | - </supplement> |
3545 | - <supplement> |
3546 | - <project> |
3547 | - <groupId>commons-io</groupId> |
3548 | - <artifactId>commons-io</artifactId> |
3549 | - <name>Apache Commons IO</name> |
3550 | - <url>http://jakarta.apache.org/commons/io/</url> |
3551 | - <organization> |
3552 | - <name>The Apache Software Foundation</name> |
3553 | - <url>http://www.apache.org/</url> |
3554 | - </organization> |
3555 | - <licenses> |
3556 | - <license> |
3557 | - <name>Apache License, Version 2.0</name> |
3558 | - <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> |
3559 | - <distribution>repo</distribution> |
3560 | - </license> |
3561 | - </licenses> |
3562 | - </project> |
3563 | - </supplement> |
3564 | - <supplement> |
3565 | - <project> |
3566 | - <groupId>log4j</groupId> |
3567 | - <artifactId>log4j</artifactId> |
3568 | - <name>Apache Log4j</name> |
3569 | - <url>http://logging.apache.org/log4j/</url> |
3570 | - <organization> |
3571 | - <name>The Apache Software Foundation</name> |
3572 | - <url>http://www.apache.org/</url> |
3573 | - </organization> |
3574 | - <licenses> |
3575 | - <license> |
3576 | - <name>Apache License, Version 2.0</name> |
3577 | - <url>http://www.apache.org/licenses/LICENSE-2.0.html</url> |
3578 | - <distribution>repo</distribution> |
3579 | - </license> |
3580 | - </licenses> |
3581 | - </project> |
3582 | - </supplement> |
3583 | - <supplement> |
3584 | - <project> |
3585 | - <groupId>junit</groupId> |
3586 | - <artifactId>junit</artifactId> |
3587 | - <name>JUnit</name> |
3588 | - <url>http://www.junit.org/</url> |
3589 | - <organization> |
3590 | - <name>Kent Beck, Erich Gamma, and David Saff</name> |
3591 | - </organization> |
3592 | - <licenses> |
3593 | - <license> |
3594 | - <name>Common Public License Version 1.0</name> |
3595 | - <url>http://www.opensource.org/licenses/cpl.php</url> |
3596 | - </license> |
3597 | - </licenses> |
3598 | - </project> |
3599 | - </supplement> |
3600 | -</supplementalDataModels> |
3601 | \ No newline at end of file |
3602 | |
3603 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main/java' |
3604 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main/java/org' |
3605 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache' |
3606 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james' |
3607 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j' |
3608 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/MimeException.java' |
3609 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/MimeException.java 2010-03-14 02:32:45 +0000 |
3610 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/MimeException.java 1970-01-01 00:00:00 +0000 |
3611 | @@ -1,58 +0,0 @@ |
3612 | -/**************************************************************** |
3613 | - * Licensed to the Apache Software Foundation (ASF) under one * |
3614 | - * or more contributor license agreements. See the NOTICE file * |
3615 | - * distributed with this work for additional information * |
3616 | - * regarding copyright ownership. The ASF licenses this file * |
3617 | - * to you under the Apache License, Version 2.0 (the * |
3618 | - * "License"); you may not use this file except in compliance * |
3619 | - * with the License. You may obtain a copy of the License at * |
3620 | - * * |
3621 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
3622 | - * * |
3623 | - * Unless required by applicable law or agreed to in writing, * |
3624 | - * software distributed under the License is distributed on an * |
3625 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
3626 | - * KIND, either express or implied. See the License for the * |
3627 | - * specific language governing permissions and limitations * |
3628 | - * under the License. * |
3629 | - ****************************************************************/ |
3630 | - |
3631 | -package org.apache.james.mime4j; |
3632 | - |
3633 | -/** |
3634 | - * MIME processing exception. |
3635 | - */ |
3636 | -public class MimeException extends Exception { |
3637 | - |
3638 | - private static final long serialVersionUID = 8352821278714188542L; |
3639 | - |
3640 | - /** |
3641 | - * Constructs a new MIME exception with the specified detail message. |
3642 | - * |
3643 | - * @param message detail message |
3644 | - */ |
3645 | - public MimeException(String message) { |
3646 | - super(message); |
3647 | - } |
3648 | - |
3649 | - /** |
3650 | - * Constructs a MIME exception with the specified cause. |
3651 | - * |
3652 | - * @param cause cause of the exception |
3653 | - */ |
3654 | - public MimeException(Throwable cause) { |
3655 | - super(cause); |
3656 | - } |
3657 | - |
3658 | - /** |
3659 | - * Constructs a MIME exception with the specified detail message and cause. |
3660 | - * |
3661 | - * @param message detail message |
3662 | - * @param cause cause of the exception |
3663 | - */ |
3664 | - public MimeException(String message, Throwable cause) { |
3665 | - super(message); |
3666 | - initCause(cause); |
3667 | - } |
3668 | - |
3669 | -} |
3670 | |
3671 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/MimeIOException.java' |
3672 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/MimeIOException.java 2010-03-14 02:32:45 +0000 |
3673 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/MimeIOException.java 1970-01-01 00:00:00 +0000 |
3674 | @@ -1,52 +0,0 @@ |
3675 | -/**************************************************************** |
3676 | - * Licensed to the Apache Software Foundation (ASF) under one * |
3677 | - * or more contributor license agreements. See the NOTICE file * |
3678 | - * distributed with this work for additional information * |
3679 | - * regarding copyright ownership. The ASF licenses this file * |
3680 | - * to you under the Apache License, Version 2.0 (the * |
3681 | - * "License"); you may not use this file except in compliance * |
3682 | - * with the License. You may obtain a copy of the License at * |
3683 | - * * |
3684 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
3685 | - * * |
3686 | - * Unless required by applicable law or agreed to in writing, * |
3687 | - * software distributed under the License is distributed on an * |
3688 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
3689 | - * KIND, either express or implied. See the License for the * |
3690 | - * specific language governing permissions and limitations * |
3691 | - * under the License. * |
3692 | - ****************************************************************/ |
3693 | - |
3694 | -package org.apache.james.mime4j; |
3695 | - |
3696 | -import java.io.IOException; |
3697 | - |
3698 | -/** |
3699 | - * A wrapper class based on {@link IOException} for MIME protocol exceptions. |
3700 | - */ |
3701 | -public class MimeIOException extends IOException { |
3702 | - |
3703 | - private static final long serialVersionUID = 5393613459533735409L; |
3704 | - |
3705 | - /** |
3706 | - * Creates a new MimeIOException from the specified detail message. |
3707 | - * |
3708 | - * @param message |
3709 | - * detail message. |
3710 | - */ |
3711 | - public MimeIOException(String message) { |
3712 | - this(new MimeException(message)); |
3713 | - } |
3714 | - |
3715 | - /** |
3716 | - * Constructs an IO exception based on {@link MimeException}. |
3717 | - * |
3718 | - * @param cause |
3719 | - * the cause. |
3720 | - */ |
3721 | - public MimeIOException(MimeException cause) { |
3722 | - super(cause.getMessage()); |
3723 | - initCause(cause); |
3724 | - } |
3725 | - |
3726 | -} |
3727 | |
3728 | === removed directory 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec' |
3729 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/Base64InputStream.java' |
3730 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/Base64InputStream.java 2010-03-14 02:32:45 +0000 |
3731 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/Base64InputStream.java 1970-01-01 00:00:00 +0000 |
3732 | @@ -1,280 +0,0 @@ |
3733 | -/**************************************************************** |
3734 | - * Licensed to the Apache Software Foundation (ASF) under one * |
3735 | - * or more contributor license agreements. See the NOTICE file * |
3736 | - * distributed with this work for additional information * |
3737 | - * regarding copyright ownership. The ASF licenses this file * |
3738 | - * to you under the Apache License, Version 2.0 (the * |
3739 | - * "License"); you may not use this file except in compliance * |
3740 | - * with the License. You may obtain a copy of the License at * |
3741 | - * * |
3742 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
3743 | - * * |
3744 | - * Unless required by applicable law or agreed to in writing, * |
3745 | - * software distributed under the License is distributed on an * |
3746 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
3747 | - * KIND, either express or implied. See the License for the * |
3748 | - * specific language governing permissions and limitations * |
3749 | - * under the License. * |
3750 | - ****************************************************************/ |
3751 | - |
3752 | -package org.apache.james.mime4j.codec; |
3753 | - |
3754 | -import java.io.IOException; |
3755 | -import java.io.InputStream; |
3756 | - |
3757 | -import org.apache.commons.logging.Log; |
3758 | -import org.apache.commons.logging.LogFactory; |
3759 | - |
3760 | -/** |
3761 | - * Performs Base-64 decoding on an underlying stream. |
3762 | - */ |
3763 | -public class Base64InputStream extends InputStream { |
3764 | - private static Log log = LogFactory.getLog(Base64InputStream.class); |
3765 | - |
3766 | - private static final int ENCODED_BUFFER_SIZE = 1536; |
3767 | - |
3768 | - private static final int[] BASE64_DECODE = new int[256]; |
3769 | - |
3770 | - static { |
3771 | - for (int i = 0; i < 256; i++) |
3772 | - BASE64_DECODE[i] = -1; |
3773 | - for (int i = 0; i < Base64OutputStream.BASE64_TABLE.length; i++) |
3774 | - BASE64_DECODE[Base64OutputStream.BASE64_TABLE[i] & 0xff] = i; |
3775 | - } |
3776 | - |
3777 | - private static final byte BASE64_PAD = '='; |
3778 | - |
3779 | - private static final int EOF = -1; |
3780 | - |
3781 | - private final byte[] singleByte = new byte[1]; |
3782 | - |
3783 | - private boolean strict; |
3784 | - |
3785 | - private final InputStream in; |
3786 | - private boolean closed = false; |
3787 | - |
3788 | - private final byte[] encoded = new byte[ENCODED_BUFFER_SIZE]; |
3789 | - private int position = 0; // current index into encoded buffer |
3790 | - private int size = 0; // current size of encoded buffer |
3791 | - |
3792 | - private final ByteQueue q = new ByteQueue(); |
3793 | - |
3794 | - private boolean eof; // end of file or pad character reached |
3795 | - |
3796 | - public Base64InputStream(InputStream in) { |
3797 | - this(in, false); |
3798 | - } |
3799 | - |
3800 | - public Base64InputStream(InputStream in, boolean strict) { |
3801 | - if (in == null) |
3802 | - throw new IllegalArgumentException(); |
3803 | - |
3804 | - this.in = in; |
3805 | - this.strict = strict; |
3806 | - } |
3807 | - |
3808 | - @Override |
3809 | - public int read() throws IOException { |
3810 | - if (closed) |
3811 | - throw new IOException("Base64InputStream has been closed"); |
3812 | - |
3813 | - while (true) { |
3814 | - int bytes = read0(singleByte, 0, 1); |
3815 | - if (bytes == EOF) |
3816 | - return EOF; |
3817 | - |
3818 | - if (bytes == 1) |
3819 | - return singleByte[0] & 0xff; |
3820 | - } |
3821 | - } |
3822 | - |
3823 | - @Override |
3824 | - public int read(byte[] buffer) throws IOException { |
3825 | - if (closed) |
3826 | - throw new IOException("Base64InputStream has been closed"); |
3827 | - |
3828 | - if (buffer == null) |
3829 | - throw new NullPointerException(); |
3830 | - |
3831 | - if (buffer.length == 0) |
3832 | - return 0; |
3833 | - |
3834 | - return read0(buffer, 0, buffer.length); |
3835 | - } |
3836 | - |
3837 | - @Override |
3838 | - public int read(byte[] buffer, int offset, int length) throws IOException { |
3839 | - if (closed) |
3840 | - throw new IOException("Base64InputStream has been closed"); |
3841 | - |
3842 | - if (buffer == null) |
3843 | - throw new NullPointerException(); |
3844 | - |
3845 | - if (offset < 0 || length < 0 || offset + length > buffer.length) |
3846 | - throw new IndexOutOfBoundsException(); |
3847 | - |
3848 | - if (length == 0) |
3849 | - return 0; |
3850 | - |
3851 | - return read0(buffer, offset, offset + length); |
3852 | - } |
3853 | - |
3854 | - @Override |
3855 | - public void close() throws IOException { |
3856 | - if (closed) |
3857 | - return; |
3858 | - |
3859 | - closed = true; |
3860 | - } |
3861 | - |
3862 | - private int read0(final byte[] buffer, final int from, final int to) |
3863 | - throws IOException { |
3864 | - int index = from; // index into given buffer |
3865 | - |
3866 | - // check if a previous invocation left decoded bytes in the queue |
3867 | - |
3868 | - int qCount = q.count(); |
3869 | - while (qCount-- > 0 && index < to) { |
3870 | - buffer[index++] = q.dequeue(); |
3871 | - } |
3872 | - |
3873 | - // eof or pad reached? |
3874 | - |
3875 | - if (eof) |
3876 | - return index == from ? EOF : index - from; |
3877 | - |
3878 | - // decode into given buffer |
3879 | - |
3880 | - int data = 0; // holds decoded data; up to four sextets |
3881 | - int sextets = 0; // number of sextets |
3882 | - |
3883 | - while (index < to) { |
3884 | - // make sure buffer not empty |
3885 | - |
3886 | - while (position == size) { |
3887 | - int n = in.read(encoded, 0, encoded.length); |
3888 | - if (n == EOF) { |
3889 | - eof = true; |
3890 | - |
3891 | - if (sextets != 0) { |
3892 | - // error in encoded data |
3893 | - handleUnexpectedEof(sextets); |
3894 | - } |
3895 | - |
3896 | - return index == from ? EOF : index - from; |
3897 | - } else if (n > 0) { |
3898 | - position = 0; |
3899 | - size = n; |
3900 | - } else { |
3901 | - assert n == 0; |
3902 | - } |
3903 | - } |
3904 | - |
3905 | - // decode buffer |
3906 | - |
3907 | - while (position < size && index < to) { |
3908 | - int value = encoded[position++] & 0xff; |
3909 | - |
3910 | - if (value == BASE64_PAD) { |
3911 | - index = decodePad(data, sextets, buffer, index, to); |
3912 | - return index - from; |
3913 | - } |
3914 | - |
3915 | - int decoded = BASE64_DECODE[value]; |
3916 | - if (decoded < 0) // -1: not a base64 char |
3917 | - continue; |
3918 | - |
3919 | - data = (data << 6) | decoded; |
3920 | - sextets++; |
3921 | - |
3922 | - if (sextets == 4) { |
3923 | - sextets = 0; |
3924 | - |
3925 | - byte b1 = (byte) (data >>> 16); |
3926 | - byte b2 = (byte) (data >>> 8); |
3927 | - byte b3 = (byte) data; |
3928 | - |
3929 | - if (index < to - 2) { |
3930 | - buffer[index++] = b1; |
3931 | - buffer[index++] = b2; |
3932 | - buffer[index++] = b3; |
3933 | - } else { |
3934 | - if (index < to - 1) { |
3935 | - buffer[index++] = b1; |
3936 | - buffer[index++] = b2; |
3937 | - q.enqueue(b3); |
3938 | - } else if (index < to) { |
3939 | - buffer[index++] = b1; |
3940 | - q.enqueue(b2); |
3941 | - q.enqueue(b3); |
3942 | - } else { |
3943 | - q.enqueue(b1); |
3944 | - q.enqueue(b2); |
3945 | - q.enqueue(b3); |
3946 | - } |
3947 | - |
3948 | - assert index == to; |
3949 | - return to - from; |
3950 | - } |
3951 | - } |
3952 | - } |
3953 | - } |
3954 | - |
3955 | - assert sextets == 0; |
3956 | - assert index == to; |
3957 | - return to - from; |
3958 | - } |
3959 | - |
3960 | - private int decodePad(int data, int sextets, final byte[] buffer, |
3961 | - int index, final int end) throws IOException { |
3962 | - eof = true; |
3963 | - |
3964 | - if (sextets == 2) { |
3965 | - // one byte encoded as "XY==" |
3966 | - |
3967 | - byte b = (byte) (data >>> 4); |
3968 | - if (index < end) { |
3969 | - buffer[index++] = b; |
3970 | - } else { |
3971 | - q.enqueue(b); |
3972 | - } |
3973 | - } else if (sextets == 3) { |
3974 | - // two bytes encoded as "XYZ=" |
3975 | - |
3976 | - byte b1 = (byte) (data >>> 10); |
3977 | - byte b2 = (byte) ((data >>> 2) & 0xFF); |
3978 | - |
3979 | - if (index < end - 1) { |
3980 | - buffer[index++] = b1; |
3981 | - buffer[index++] = b2; |
3982 | - } else if (index < end) { |
3983 | - buffer[index++] = b1; |
3984 | - q.enqueue(b2); |
3985 | - } else { |
3986 | - q.enqueue(b1); |
3987 | - q.enqueue(b2); |
3988 | - } |
3989 | - } else { |
3990 | - // error in encoded data |
3991 | - handleUnexpecedPad(sextets); |
3992 | - } |
3993 | - |
3994 | - return index; |
3995 | - } |
3996 | - |
3997 | - private void handleUnexpectedEof(int sextets) throws IOException { |
3998 | - if (strict) |
3999 | - throw new IOException("unexpected end of file"); |
4000 | - else |
4001 | - log.warn("unexpected end of file; dropping " + sextets |
4002 | - + " sextet(s)"); |
4003 | - } |
4004 | - |
4005 | - private void handleUnexpecedPad(int sextets) throws IOException { |
4006 | - if (strict) |
4007 | - throw new IOException("unexpected padding character"); |
4008 | - else |
4009 | - log.warn("unexpected padding character; dropping " + sextets |
4010 | - + " sextet(s)"); |
4011 | - } |
4012 | -} |
4013 | |
4014 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/Base64OutputStream.java' |
4015 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/Base64OutputStream.java 2010-03-14 02:32:45 +0000 |
4016 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/Base64OutputStream.java 1970-01-01 00:00:00 +0000 |
4017 | @@ -1,321 +0,0 @@ |
4018 | -/**************************************************************** |
4019 | - * Licensed to the Apache Software Foundation (ASF) under one * |
4020 | - * or more contributor license agreements. See the NOTICE file * |
4021 | - * distributed with this work for additional information * |
4022 | - * regarding copyright ownership. The ASF licenses this file * |
4023 | - * to you under the Apache License, Version 2.0 (the * |
4024 | - * "License"); you may not use this file except in compliance * |
4025 | - * with the License. You may obtain a copy of the License at * |
4026 | - * * |
4027 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
4028 | - * * |
4029 | - * Unless required by applicable law or agreed to in writing, * |
4030 | - * software distributed under the License is distributed on an * |
4031 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
4032 | - * KIND, either express or implied. See the License for the * |
4033 | - * specific language governing permissions and limitations * |
4034 | - * under the License. * |
4035 | - ****************************************************************/ |
4036 | - |
4037 | -package org.apache.james.mime4j.codec; |
4038 | - |
4039 | -import java.io.FilterOutputStream; |
4040 | -import java.io.IOException; |
4041 | -import java.io.OutputStream; |
4042 | -import java.util.HashSet; |
4043 | -import java.util.Set; |
4044 | - |
4045 | -/** |
4046 | - * This class implements section <cite>6.8. Base64 Content-Transfer-Encoding</cite> |
4047 | - * from RFC 2045 <cite>Multipurpose Internet Mail Extensions (MIME) Part One: |
4048 | - * Format of Internet Message Bodies</cite> by Freed and Borenstein. |
4049 | - * <p> |
4050 | - * Code is based on Base64 and Base64OutputStream code from Commons-Codec 1.4. |
4051 | - * |
4052 | - * @see <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045</a> |
4053 | - */ |
4054 | -public class Base64OutputStream extends FilterOutputStream { |
4055 | - |
4056 | - // Default line length per RFC 2045 section 6.8. |
4057 | - private static final int DEFAULT_LINE_LENGTH = 76; |
4058 | - |
4059 | - // CRLF line separator per RFC 2045 section 2.1. |
4060 | - private static final byte[] CRLF_SEPARATOR = { '\r', '\n' }; |
4061 | - |
4062 | - // This array is a lookup table that translates 6-bit positive integer index |
4063 | - // values into their "Base64 Alphabet" equivalents as specified in Table 1 |
4064 | - // of RFC 2045. |
4065 | - static final byte[] BASE64_TABLE = { 'A', 'B', 'C', 'D', 'E', 'F', |
4066 | - 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', |
4067 | - 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', |
4068 | - 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', |
4069 | - 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', |
4070 | - '6', '7', '8', '9', '+', '/' }; |
4071 | - |
4072 | - // Byte used to pad output. |
4073 | - private static final byte BASE64_PAD = '='; |
4074 | - |
4075 | - // This set contains all base64 characters including the pad character. Used |
4076 | - // solely to check if a line separator contains any of these characters. |
4077 | - private static final Set<Byte> BASE64_CHARS = new HashSet<Byte>(); |
4078 | - |
4079 | - static { |
4080 | - for (byte b : BASE64_TABLE) { |
4081 | - BASE64_CHARS.add(b); |
4082 | - } |
4083 | - BASE64_CHARS.add(BASE64_PAD); |
4084 | - } |
4085 | - |
4086 | - // Mask used to extract 6 bits |
4087 | - private static final int MASK_6BITS = 0x3f; |
4088 | - |
4089 | - private static final int ENCODED_BUFFER_SIZE = 2048; |
4090 | - |
4091 | - private final byte[] singleByte = new byte[1]; |
4092 | - |
4093 | - private final int lineLength; |
4094 | - private final byte[] lineSeparator; |
4095 | - |
4096 | - private boolean closed = false; |
4097 | - |
4098 | - private final byte[] encoded; |
4099 | - private int position = 0; |
4100 | - |
4101 | - private int data = 0; |
4102 | - private int modulus = 0; |
4103 | - |
4104 | - private int linePosition = 0; |
4105 | - |
4106 | - /** |
4107 | - * Creates a <code>Base64OutputStream</code> that writes the encoded data |
4108 | - * to the given output stream using the default line length (76) and line |
4109 | - * separator (CRLF). |
4110 | - * |
4111 | - * @param out |
4112 | - * underlying output stream. |
4113 | - */ |
4114 | - public Base64OutputStream(OutputStream out) { |
4115 | - this(out, DEFAULT_LINE_LENGTH, CRLF_SEPARATOR); |
4116 | - } |
4117 | - |
4118 | - /** |
4119 | - * Creates a <code>Base64OutputStream</code> that writes the encoded data |
4120 | - * to the given output stream using the given line length and the default |
4121 | - * line separator (CRLF). |
4122 | - * <p> |
4123 | - * The given line length will be rounded up to the nearest multiple of 4. If |
4124 | - * the line length is zero then the output will not be split into lines. |
4125 | - * |
4126 | - * @param out |
4127 | - * underlying output stream. |
4128 | - * @param lineLength |
4129 | - * desired line length. |
4130 | - */ |
4131 | - public Base64OutputStream(OutputStream out, int lineLength) { |
4132 | - this(out, lineLength, CRLF_SEPARATOR); |
4133 | - } |
4134 | - |
4135 | - /** |
4136 | - * Creates a <code>Base64OutputStream</code> that writes the encoded data |
4137 | - * to the given output stream using the given line length and line |
4138 | - * separator. |
4139 | - * <p> |
4140 | - * The given line length will be rounded up to the nearest multiple of 4. If |
4141 | - * the line length is zero then the output will not be split into lines and |
4142 | - * the line separator is ignored. |
4143 | - * <p> |
4144 | - * The line separator must not include characters from the BASE64 alphabet |
4145 | - * (including the padding character <code>=</code>). |
4146 | - * |
4147 | - * @param out |
4148 | - * underlying output stream. |
4149 | - * @param lineLength |
4150 | - * desired line length. |
4151 | - * @param lineSeparator |
4152 | - * line separator to use. |
4153 | - */ |
4154 | - public Base64OutputStream(OutputStream out, int lineLength, |
4155 | - byte[] lineSeparator) { |
4156 | - super(out); |
4157 | - |
4158 | - if (out == null) |
4159 | - throw new IllegalArgumentException(); |
4160 | - if (lineLength < 0) |
4161 | - throw new IllegalArgumentException(); |
4162 | - checkLineSeparator(lineSeparator); |
4163 | - |
4164 | - this.lineLength = lineLength; |
4165 | - this.lineSeparator = new byte[lineSeparator.length]; |
4166 | - System.arraycopy(lineSeparator, 0, this.lineSeparator, 0, |
4167 | - lineSeparator.length); |
4168 | - |
4169 | - this.encoded = new byte[ENCODED_BUFFER_SIZE]; |
4170 | - } |
4171 | - |
4172 | - @Override |
4173 | - public final void write(final int b) throws IOException { |
4174 | - if (closed) |
4175 | - throw new IOException("Base64OutputStream has been closed"); |
4176 | - |
4177 | - singleByte[0] = (byte) b; |
4178 | - write0(singleByte, 0, 1); |
4179 | - } |
4180 | - |
4181 | - @Override |
4182 | - public final void write(final byte[] buffer) throws IOException { |
4183 | - if (closed) |
4184 | - throw new IOException("Base64OutputStream has been closed"); |
4185 | - |
4186 | - if (buffer == null) |
4187 | - throw new NullPointerException(); |
4188 | - |
4189 | - if (buffer.length == 0) |
4190 | - return; |
4191 | - |
4192 | - write0(buffer, 0, buffer.length); |
4193 | - } |
4194 | - |
4195 | - @Override |
4196 | - public final void write(final byte[] buffer, final int offset, |
4197 | - final int length) throws IOException { |
4198 | - if (closed) |
4199 | - throw new IOException("Base64OutputStream has been closed"); |
4200 | - |
4201 | - if (buffer == null) |
4202 | - throw new NullPointerException(); |
4203 | - |
4204 | - if (offset < 0 || length < 0 || offset + length > buffer.length) |
4205 | - throw new IndexOutOfBoundsException(); |
4206 | - |
4207 | - if (length == 0) |
4208 | - return; |
4209 | - |
4210 | - write0(buffer, offset, offset + length); |
4211 | - } |
4212 | - |
4213 | - @Override |
4214 | - public void flush() throws IOException { |
4215 | - if (closed) |
4216 | - throw new IOException("Base64OutputStream has been closed"); |
4217 | - |
4218 | - flush0(); |
4219 | - } |
4220 | - |
4221 | - @Override |
4222 | - public void close() throws IOException { |
4223 | - if (closed) |
4224 | - return; |
4225 | - |
4226 | - closed = true; |
4227 | - close0(); |
4228 | - } |
4229 | - |
4230 | - private void write0(final byte[] buffer, final int from, final int to) |
4231 | - throws IOException { |
4232 | - for (int i = from; i < to; i++) { |
4233 | - data = (data << 8) | (buffer[i] & 0xff); |
4234 | - |
4235 | - if (++modulus == 3) { |
4236 | - modulus = 0; |
4237 | - |
4238 | - // write line separator if necessary |
4239 | - |
4240 | - if (lineLength > 0 && linePosition >= lineLength) { |
4241 | - // writeLineSeparator() inlined for performance reasons |
4242 | - |
4243 | - linePosition = 0; |
4244 | - |
4245 | - if (encoded.length - position < lineSeparator.length) |
4246 | - flush0(); |
4247 | - |
4248 | - for (byte ls : lineSeparator) |
4249 | - encoded[position++] = ls; |
4250 | - } |
4251 | - |
4252 | - // encode data into 4 bytes |
4253 | - |
4254 | - if (encoded.length - position < 4) |
4255 | - flush0(); |
4256 | - |
4257 | - encoded[position++] = BASE64_TABLE[(data >> 18) & MASK_6BITS]; |
4258 | - encoded[position++] = BASE64_TABLE[(data >> 12) & MASK_6BITS]; |
4259 | - encoded[position++] = BASE64_TABLE[(data >> 6) & MASK_6BITS]; |
4260 | - encoded[position++] = BASE64_TABLE[data & MASK_6BITS]; |
4261 | - |
4262 | - linePosition += 4; |
4263 | - } |
4264 | - } |
4265 | - } |
4266 | - |
4267 | - private void flush0() throws IOException { |
4268 | - if (position > 0) { |
4269 | - out.write(encoded, 0, position); |
4270 | - position = 0; |
4271 | - } |
4272 | - } |
4273 | - |
4274 | - private void close0() throws IOException { |
4275 | - if (modulus != 0) |
4276 | - writePad(); |
4277 | - |
4278 | - // write line separator at the end of the encoded data |
4279 | - |
4280 | - if (lineLength > 0 && linePosition > 0) { |
4281 | - writeLineSeparator(); |
4282 | - } |
4283 | - |
4284 | - flush0(); |
4285 | - } |
4286 | - |
4287 | - private void writePad() throws IOException { |
4288 | - // write line separator if necessary |
4289 | - |
4290 | - if (lineLength > 0 && linePosition >= lineLength) { |
4291 | - writeLineSeparator(); |
4292 | - } |
4293 | - |
4294 | - // encode data into 4 bytes |
4295 | - |
4296 | - if (encoded.length - position < 4) |
4297 | - flush0(); |
4298 | - |
4299 | - if (modulus == 1) { |
4300 | - encoded[position++] = BASE64_TABLE[(data >> 2) & MASK_6BITS]; |
4301 | - encoded[position++] = BASE64_TABLE[(data << 4) & MASK_6BITS]; |
4302 | - encoded[position++] = BASE64_PAD; |
4303 | - encoded[position++] = BASE64_PAD; |
4304 | - } else { |
4305 | - assert modulus == 2; |
4306 | - encoded[position++] = BASE64_TABLE[(data >> 10) & MASK_6BITS]; |
4307 | - encoded[position++] = BASE64_TABLE[(data >> 4) & MASK_6BITS]; |
4308 | - encoded[position++] = BASE64_TABLE[(data << 2) & MASK_6BITS]; |
4309 | - encoded[position++] = BASE64_PAD; |
4310 | - } |
4311 | - |
4312 | - linePosition += 4; |
4313 | - } |
4314 | - |
4315 | - private void writeLineSeparator() throws IOException { |
4316 | - linePosition = 0; |
4317 | - |
4318 | - if (encoded.length - position < lineSeparator.length) |
4319 | - flush0(); |
4320 | - |
4321 | - for (byte ls : lineSeparator) |
4322 | - encoded[position++] = ls; |
4323 | - } |
4324 | - |
4325 | - private void checkLineSeparator(byte[] lineSeparator) { |
4326 | - if (lineSeparator.length > ENCODED_BUFFER_SIZE) |
4327 | - throw new IllegalArgumentException("line separator length exceeds " |
4328 | - + ENCODED_BUFFER_SIZE); |
4329 | - |
4330 | - for (byte b : lineSeparator) { |
4331 | - if (BASE64_CHARS.contains(b)) { |
4332 | - throw new IllegalArgumentException( |
4333 | - "line separator must not contain base64 character '" |
4334 | - + (char) (b & 0xff) + "'"); |
4335 | - } |
4336 | - } |
4337 | - } |
4338 | -} |
4339 | |
4340 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/ByteQueue.java' |
4341 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/ByteQueue.java 2010-03-14 02:32:45 +0000 |
4342 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/ByteQueue.java 1970-01-01 00:00:00 +0000 |
4343 | @@ -1,62 +0,0 @@ |
4344 | -/**************************************************************** |
4345 | - * Licensed to the Apache Software Foundation (ASF) under one * |
4346 | - * or more contributor license agreements. See the NOTICE file * |
4347 | - * distributed with this work for additional information * |
4348 | - * regarding copyright ownership. The ASF licenses this file * |
4349 | - * to you under the Apache License, Version 2.0 (the * |
4350 | - * "License"); you may not use this file except in compliance * |
4351 | - * with the License. You may obtain a copy of the License at * |
4352 | - * * |
4353 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
4354 | - * * |
4355 | - * Unless required by applicable law or agreed to in writing, * |
4356 | - * software distributed under the License is distributed on an * |
4357 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
4358 | - * KIND, either express or implied. See the License for the * |
4359 | - * specific language governing permissions and limitations * |
4360 | - * under the License. * |
4361 | - ****************************************************************/ |
4362 | - |
4363 | -package org.apache.james.mime4j.codec; |
4364 | - |
4365 | -import java.util.Iterator; |
4366 | - |
4367 | -public class ByteQueue implements Iterable<Byte> { |
4368 | - |
4369 | - private UnboundedFifoByteBuffer buf; |
4370 | - private int initialCapacity = -1; |
4371 | - |
4372 | - public ByteQueue() { |
4373 | - buf = new UnboundedFifoByteBuffer(); |
4374 | - } |
4375 | - |
4376 | - public ByteQueue(int initialCapacity) { |
4377 | - buf = new UnboundedFifoByteBuffer(initialCapacity); |
4378 | - this.initialCapacity = initialCapacity; |
4379 | - } |
4380 | - |
4381 | - public void enqueue(byte b) { |
4382 | - buf.add(b); |
4383 | - } |
4384 | - |
4385 | - public byte dequeue() { |
4386 | - return buf.remove(); |
4387 | - } |
4388 | - |
4389 | - public int count() { |
4390 | - return buf.size(); |
4391 | - } |
4392 | - |
4393 | - public void clear() { |
4394 | - if (initialCapacity != -1) |
4395 | - buf = new UnboundedFifoByteBuffer(initialCapacity); |
4396 | - else |
4397 | - buf = new UnboundedFifoByteBuffer(); |
4398 | - } |
4399 | - |
4400 | - public Iterator<Byte> iterator() { |
4401 | - return buf.iterator(); |
4402 | - } |
4403 | - |
4404 | - |
4405 | -} |
4406 | |
4407 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/CodecUtil.java' |
4408 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/CodecUtil.java 2010-03-14 02:32:45 +0000 |
4409 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/CodecUtil.java 1970-01-01 00:00:00 +0000 |
4410 | @@ -1,107 +0,0 @@ |
4411 | -/**************************************************************** |
4412 | - * Licensed to the Apache Software Foundation (ASF) under one * |
4413 | - * or more contributor license agreements. See the NOTICE file * |
4414 | - * distributed with this work for additional information * |
4415 | - * regarding copyright ownership. The ASF licenses this file * |
4416 | - * to you under the Apache License, Version 2.0 (the * |
4417 | - * "License"); you may not use this file except in compliance * |
4418 | - * with the License. You may obtain a copy of the License at * |
4419 | - * * |
4420 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
4421 | - * * |
4422 | - * Unless required by applicable law or agreed to in writing, * |
4423 | - * software distributed under the License is distributed on an * |
4424 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
4425 | - * KIND, either express or implied. See the License for the * |
4426 | - * specific language governing permissions and limitations * |
4427 | - * under the License. * |
4428 | - ****************************************************************/ |
4429 | - |
4430 | -package org.apache.james.mime4j.codec; |
4431 | - |
4432 | -import java.io.IOException; |
4433 | -import java.io.InputStream; |
4434 | -import java.io.OutputStream; |
4435 | - |
4436 | -/** |
4437 | - * Utility methods related to codecs. |
4438 | - */ |
4439 | -public class CodecUtil { |
4440 | - |
4441 | - static final int DEFAULT_ENCODING_BUFFER_SIZE = 1024; |
4442 | - |
4443 | - /** |
4444 | - * Copies the contents of one stream to the other. |
4445 | - * @param in not null |
4446 | - * @param out not null |
4447 | - * @throws IOException |
4448 | - */ |
4449 | - public static void copy(final InputStream in, final OutputStream out) throws IOException { |
4450 | - final byte[] buffer = new byte[DEFAULT_ENCODING_BUFFER_SIZE]; |
4451 | - int inputLength; |
4452 | - while (-1 != (inputLength = in.read(buffer))) { |
4453 | - out.write(buffer, 0, inputLength); |
4454 | - } |
4455 | - } |
4456 | - |
4457 | - /** |
4458 | - * Encodes the given stream using Quoted-Printable. |
4459 | - * This assumes that stream is binary and therefore escapes |
4460 | - * all line endings. |
4461 | - * @param in not null |
4462 | - * @param out not null |
4463 | - * @throws IOException |
4464 | - */ |
4465 | - public static void encodeQuotedPrintableBinary(final InputStream in, final OutputStream out) throws IOException { |
4466 | - |
4467 | - QuotedPrintableEncoder encoder = new QuotedPrintableEncoder(DEFAULT_ENCODING_BUFFER_SIZE, true); |
4468 | - encoder.encode(in, out); |
4469 | - } |
4470 | - |
4471 | - /** |
4472 | - * Encodes the given stream using Quoted-Printable. |
4473 | - * This assumes that stream is text and therefore does not escape |
4474 | - * all line endings. |
4475 | - * @param in not null |
4476 | - * @param out not null |
4477 | - * @throws IOException |
4478 | - */ |
4479 | - public static void encodeQuotedPrintable(final InputStream in, final OutputStream out) throws IOException { |
4480 | - final QuotedPrintableEncoder encoder = new QuotedPrintableEncoder(DEFAULT_ENCODING_BUFFER_SIZE, false); |
4481 | - encoder.encode(in, out); |
4482 | - } |
4483 | - |
4484 | - /** |
4485 | - * Encodes the given stream using base64. |
4486 | - * |
4487 | - * @param in not null |
4488 | - * @param out not null |
4489 | - * @throws IOException if an I/O error occurs |
4490 | - */ |
4491 | - public static void encodeBase64(final InputStream in, final OutputStream out) throws IOException { |
4492 | - Base64OutputStream b64Out = new Base64OutputStream(out); |
4493 | - copy(in, b64Out); |
4494 | - b64Out.close(); |
4495 | - } |
4496 | - |
4497 | - /** |
4498 | - * Wraps the given stream in a Quoted-Printable encoder. |
4499 | - * @param out not null |
4500 | - * @return encoding outputstream |
4501 | - * @throws IOException |
4502 | - */ |
4503 | - public static OutputStream wrapQuotedPrintable(final OutputStream out, boolean binary) throws IOException { |
4504 | - return new QuotedPrintableOutputStream(out, binary); |
4505 | - } |
4506 | - |
4507 | - /** |
4508 | - * Wraps the given stream in a Base64 encoder. |
4509 | - * @param out not null |
4510 | - * @return encoding outputstream |
4511 | - * @throws IOException |
4512 | - */ |
4513 | - public static OutputStream wrapBase64(final OutputStream out) throws IOException { |
4514 | - return new Base64OutputStream(out); |
4515 | - } |
4516 | - |
4517 | -} |
4518 | |
4519 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java' |
4520 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java 2010-03-14 02:32:45 +0000 |
4521 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/DecoderUtil.java 1970-01-01 00:00:00 +0000 |
4522 | @@ -1,258 +0,0 @@ |
4523 | -/**************************************************************** |
4524 | - * Licensed to the Apache Software Foundation (ASF) under one * |
4525 | - * or more contributor license agreements. See the NOTICE file * |
4526 | - * distributed with this work for additional information * |
4527 | - * regarding copyright ownership. The ASF licenses this file * |
4528 | - * to you under the Apache License, Version 2.0 (the * |
4529 | - * "License"); you may not use this file except in compliance * |
4530 | - * with the License. You may obtain a copy of the License at * |
4531 | - * * |
4532 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
4533 | - * * |
4534 | - * Unless required by applicable law or agreed to in writing, * |
4535 | - * software distributed under the License is distributed on an * |
4536 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
4537 | - * KIND, either express or implied. See the License for the * |
4538 | - * specific language governing permissions and limitations * |
4539 | - * under the License. * |
4540 | - ****************************************************************/ |
4541 | - |
4542 | -package org.apache.james.mime4j.codec; |
4543 | - |
4544 | -import java.io.ByteArrayInputStream; |
4545 | -import java.io.ByteArrayOutputStream; |
4546 | -import java.io.IOException; |
4547 | -import java.io.UnsupportedEncodingException; |
4548 | - |
4549 | -import org.apache.commons.logging.Log; |
4550 | -import org.apache.commons.logging.LogFactory; |
4551 | -import org.apache.james.mime4j.util.CharsetUtil; |
4552 | - |
4553 | -/** |
4554 | - * Static methods for decoding strings, byte arrays and encoded words. |
4555 | - */ |
4556 | -public class DecoderUtil { |
4557 | - private static Log log = LogFactory.getLog(DecoderUtil.class); |
4558 | - |
4559 | - /** |
4560 | - * Decodes a string containing quoted-printable encoded data. |
4561 | - * |
4562 | - * @param s the string to decode. |
4563 | - * @return the decoded bytes. |
4564 | - */ |
4565 | - public static byte[] decodeBaseQuotedPrintable(String s) { |
4566 | - ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
4567 | - |
4568 | - try { |
4569 | - byte[] bytes = s.getBytes("US-ASCII"); |
4570 | - |
4571 | - QuotedPrintableInputStream is = new QuotedPrintableInputStream( |
4572 | - new ByteArrayInputStream(bytes)); |
4573 | - |
4574 | - int b = 0; |
4575 | - while ((b = is.read()) != -1) { |
4576 | - baos.write(b); |
4577 | - } |
4578 | - } catch (IOException e) { |
4579 | - /* |
4580 | - * This should never happen! |
4581 | - */ |
4582 | - log.error(e); |
4583 | - } |
4584 | - |
4585 | - return baos.toByteArray(); |
4586 | - } |
4587 | - |
4588 | - /** |
4589 | - * Decodes a string containing base64 encoded data. |
4590 | - * |
4591 | - * @param s the string to decode. |
4592 | - * @return the decoded bytes. |
4593 | - */ |
4594 | - public static byte[] decodeBase64(String s) { |
4595 | - ByteArrayOutputStream baos = new ByteArrayOutputStream(); |
4596 | - |
4597 | - try { |
4598 | - byte[] bytes = s.getBytes("US-ASCII"); |
4599 | - |
4600 | - Base64InputStream is = new Base64InputStream( |
4601 | - new ByteArrayInputStream(bytes)); |
4602 | - |
4603 | - int b = 0; |
4604 | - while ((b = is.read()) != -1) { |
4605 | - baos.write(b); |
4606 | - } |
4607 | - } catch (IOException e) { |
4608 | - /* |
4609 | - * This should never happen! |
4610 | - */ |
4611 | - log.error(e); |
4612 | - } |
4613 | - |
4614 | - return baos.toByteArray(); |
4615 | - } |
4616 | - |
4617 | - /** |
4618 | - * Decodes an encoded word encoded with the 'B' encoding (described in |
4619 | - * RFC 2047) found in a header field body. |
4620 | - * |
4621 | - * @param encodedWord the encoded word to decode. |
4622 | - * @param charset the Java charset to use. |
4623 | - * @return the decoded string. |
4624 | - * @throws UnsupportedEncodingException if the given Java charset isn't |
4625 | - * supported. |
4626 | - */ |
4627 | - public static String decodeB(String encodedWord, String charset) |
4628 | - throws UnsupportedEncodingException { |
4629 | - |
4630 | - return new String(decodeBase64(encodedWord), charset); |
4631 | - } |
4632 | - |
4633 | - /** |
4634 | - * Decodes an encoded word encoded with the 'Q' encoding (described in |
4635 | - * RFC 2047) found in a header field body. |
4636 | - * |
4637 | - * @param encodedWord the encoded word to decode. |
4638 | - * @param charset the Java charset to use. |
4639 | - * @return the decoded string. |
4640 | - * @throws UnsupportedEncodingException if the given Java charset isn't |
4641 | - * supported. |
4642 | - */ |
4643 | - public static String decodeQ(String encodedWord, String charset) |
4644 | - throws UnsupportedEncodingException { |
4645 | - |
4646 | - /* |
4647 | - * Replace _ with =20 |
4648 | - */ |
4649 | - StringBuilder sb = new StringBuilder(128); |
4650 | - for (int i = 0; i < encodedWord.length(); i++) { |
4651 | - char c = encodedWord.charAt(i); |
4652 | - if (c == '_') { |
4653 | - sb.append("=20"); |
4654 | - } else { |
4655 | - sb.append(c); |
4656 | - } |
4657 | - } |
4658 | - |
4659 | - return new String(decodeBaseQuotedPrintable(sb.toString()), charset); |
4660 | - } |
4661 | - |
4662 | - /** |
4663 | - * Decodes a string containing encoded words as defined by RFC 2047. |
4664 | - * Encoded words in have the form |
4665 | - * =?charset?enc?Encoded word?= where enc is either 'Q' or 'q' for |
4666 | - * quoted-printable and 'B' or 'b' for Base64. |
4667 | - * |
4668 | - * @param body the string to decode. |
4669 | - * @return the decoded string. |
4670 | - */ |
4671 | - public static String decodeEncodedWords(String body) { |
4672 | - int previousEnd = 0; |
4673 | - boolean previousWasEncoded = false; |
4674 | - |
4675 | - StringBuilder sb = new StringBuilder(); |
4676 | - |
4677 | - while (true) { |
4678 | - int begin = body.indexOf("=?", previousEnd); |
4679 | - int qm1 = body.indexOf('?', begin + 2); |
4680 | - if (qm1 == -1) |
4681 | - return body; |
4682 | - int qm2 = body.indexOf('?', qm1 + 1); |
4683 | - if (qm2 == -1) |
4684 | - return body; |
4685 | - int end = begin == -1 ? -1 : body.indexOf("?=", qm2 + 1); |
4686 | - if (end == -1) { |
4687 | - if (previousEnd == 0) |
4688 | - return body; |
4689 | - |
4690 | - sb.append(body.substring(previousEnd)); |
4691 | - return sb.toString(); |
4692 | - } |
4693 | - end += 2; |
4694 | - |
4695 | - String sep = body.substring(previousEnd, begin); |
4696 | - |
4697 | - String decoded = decodeEncodedWord(body, begin, end); |
4698 | - if (decoded == null) { |
4699 | - sb.append(sep); |
4700 | - sb.append(body.substring(begin, end)); |
4701 | - } else { |
4702 | - if (!previousWasEncoded || !CharsetUtil.isWhitespace(sep)) { |
4703 | - sb.append(sep); |
4704 | - } |
4705 | - sb.append(decoded); |
4706 | - } |
4707 | - |
4708 | - previousEnd = end; |
4709 | - previousWasEncoded = decoded != null; |
4710 | - } |
4711 | - } |
4712 | - |
4713 | - // return null on error |
4714 | - private static String decodeEncodedWord(String body, int begin, int end) { |
4715 | - int qm1 = body.indexOf('?', begin + 2); |
4716 | - if (qm1 == end - 2) |
4717 | - return null; |
4718 | - |
4719 | - int qm2 = body.indexOf('?', qm1 + 1); |
4720 | - if (qm2 == end - 2) |
4721 | - return null; |
4722 | - |
4723 | - String mimeCharset = body.substring(begin + 2, qm1); |
4724 | - String encoding = body.substring(qm1 + 1, qm2); |
4725 | - String encodedText = body.substring(qm2 + 1, end - 2); |
4726 | - |
4727 | - String charset = CharsetUtil.toJavaCharset(mimeCharset); |
4728 | - if (charset == null) { |
4729 | - if (log.isWarnEnabled()) { |
4730 | - log.warn("MIME charset '" + mimeCharset + "' in encoded word '" |
4731 | - + body.substring(begin, end) + "' doesn't have a " |
4732 | - + "corresponding Java charset"); |
4733 | - } |
4734 | - return null; |
4735 | - } else if (!CharsetUtil.isDecodingSupported(charset)) { |
4736 | - if (log.isWarnEnabled()) { |
4737 | - log.warn("Current JDK doesn't support decoding of charset '" |
4738 | - + charset + "' (MIME charset '" + mimeCharset |
4739 | - + "' in encoded word '" + body.substring(begin, end) |
4740 | - + "')"); |
4741 | - } |
4742 | - return null; |
4743 | - } |
4744 | - |
4745 | - if (encodedText.length() == 0) { |
4746 | - if (log.isWarnEnabled()) { |
4747 | - log.warn("Missing encoded text in encoded word: '" |
4748 | - + body.substring(begin, end) + "'"); |
4749 | - } |
4750 | - return null; |
4751 | - } |
4752 | - |
4753 | - try { |
4754 | - if (encoding.equalsIgnoreCase("Q")) { |
4755 | - return DecoderUtil.decodeQ(encodedText, charset); |
4756 | - } else if (encoding.equalsIgnoreCase("B")) { |
4757 | - return DecoderUtil.decodeB(encodedText, charset); |
4758 | - } else { |
4759 | - if (log.isWarnEnabled()) { |
4760 | - log.warn("Warning: Unknown encoding in encoded word '" |
4761 | - + body.substring(begin, end) + "'"); |
4762 | - } |
4763 | - return null; |
4764 | - } |
4765 | - } catch (UnsupportedEncodingException e) { |
4766 | - // should not happen because of isDecodingSupported check above |
4767 | - if (log.isWarnEnabled()) { |
4768 | - log.warn("Unsupported encoding in encoded word '" |
4769 | - + body.substring(begin, end) + "'", e); |
4770 | - } |
4771 | - return null; |
4772 | - } catch (RuntimeException e) { |
4773 | - if (log.isWarnEnabled()) { |
4774 | - log.warn("Could not decode encoded word '" |
4775 | - + body.substring(begin, end) + "'", e); |
4776 | - } |
4777 | - return null; |
4778 | - } |
4779 | - } |
4780 | -} |
4781 | |
4782 | === removed file 'GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/EncoderUtil.java' |
4783 | --- GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/EncoderUtil.java 2010-03-14 02:32:45 +0000 |
4784 | +++ GroundhogReader/apache-mime4j-0.6/src/main/java/org/apache/james/mime4j/codec/EncoderUtil.java 1970-01-01 00:00:00 +0000 |
4785 | @@ -1,609 +0,0 @@ |
4786 | -/**************************************************************** |
4787 | - * Licensed to the Apache Software Foundation (ASF) under one * |
4788 | - * or more contributor license agreements. See the NOTICE file * |
4789 | - * distributed with this work for additional information * |
4790 | - * regarding copyright ownership. The ASF licenses this file * |
4791 | - * to you under the Apache License, Version 2.0 (the * |
4792 | - * "License"); you may not use this file except in compliance * |
4793 | - * with the License. You may obtain a copy of the License at * |
4794 | - * * |
4795 | - * http://www.apache.org/licenses/LICENSE-2.0 * |
4796 | - * * |
4797 | - * Unless required by applicable law or agreed to in writing, * |
4798 | - * software distributed under the License is distributed on an * |
4799 | - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * |
4800 | - * KIND, either express or implied. See the License for the * |
4801 | - * specific language governing permissions and limitations * |
4802 | - * under the License. * |
4803 | - ****************************************************************/ |
4804 | - |
4805 | -package org.apache.james.mime4j.codec; |
4806 | - |
4807 | -import java.nio.ByteBuffer; |
4808 | -import java.nio.charset.Charset; |
4809 | -import java.util.BitSet; |
4810 | -import java.util.Locale; |
4811 | - |
4812 | -import org.apache.james.mime4j.util.CharsetUtil; |
4813 | - |
4814 | -/** |
4815 | - * Static methods for encoding header field values. This includes encoded-words |
4816 | - * as defined in <a href='http://www.faqs.org/rfcs/rfc2047.html'>RFC 2047</a> |
4817 | - * or display-names of an e-mail address, for example. |
4818 | - */ |
4819 | -public class EncoderUtil { |
4820 | - private static final byte[] BASE64_TABLE = Base64OutputStream.BASE64_TABLE; |
4821 | - private static final char BASE64_PAD = '='; |
4822 | - |
4823 | - private static final BitSet Q_REGULAR_CHARS = initChars("=_?"); |
4824 | - |
4825 | - private static final BitSet Q_RESTRICTED_CHARS = initChars("=_?\"#$%&'(),.:;<>@[\\]^`{|}~"); |
4826 | - |
4827 | - private static final int MAX_USED_CHARACTERS = 50; |
4828 | - |
4829 | - private static final String ENC_WORD_PREFIX = "=?"; |
4830 | - private static final String ENC_WORD_SUFFIX = "?="; |
4831 | - |
4832 | - private static final int ENCODED_WORD_MAX_LENGTH = 75; // RFC 2047 |
4833 | - |
4834 | - private static final BitSet TOKEN_CHARS = initChars("()<>@,;:\\\"/[]?="); |
4835 | - |
4836 | - private static final BitSet ATEXT_CHARS = initChars("()<>@.,;:\\\"[]"); |
4837 | - |
4838 | - private static BitSet initChars(String specials) { |
4839 | - BitSet bs = new BitSet(128); |
4840 | - for (char ch = 33; ch < 127; ch++) { |
4841 | - if (specials.indexOf(ch) == -1) { |
4842 | - bs.set(ch); |
4843 | - } |
4844 | - } |
4845 | - return bs; |
4846 | - } |
4847 | - |
4848 | - /** |
4849 | - * Selects one of the two encodings specified in RFC 2047. |
4850 | - */ |
4851 | - public enum Encoding { |
4852 | - /** The B encoding (identical to base64 defined in RFC 2045). */ |
4853 | - B, |
4854 | - /** The Q encoding (similar to quoted-printable defined in RFC 2045). */ |
4855 | - Q |
4856 | - } |
4857 | - |
4858 | - /** |
4859 | - * Indicates the intended usage of an encoded word. |
4860 | - */ |
4861 | - public enum Usage { |
4862 | - /** |
4863 | - * Encoded word is used to replace a 'text' token in any Subject or |
4864 | - * Comments header field. |
4865 | - */ |
4866 | - TEXT_TOKEN, |
4867 | - /** |
4868 | - * Encoded word is used to replace a 'word' entity within a 'phrase', |
4869 | - * for example, one that precedes an address in a From, To, or Cc |
4870 | - * header. |
4871 | - */ |
4872 | - WORD_ENTITY |
4873 | - } |
4874 | - |
4875 | - private EncoderUtil() { |
4876 | - } |
4877 | - |
4878 | - /** |
4879 | - * Encodes the display-name portion of an address. See <a |
4880 | - * href='http://www.faqs.org/rfcs/rfc5322.html'>RFC 5322</a> section 3.4 |
4881 | - * and <a href='http://www.faqs.org/rfcs/rfc2047.html'>RFC 2047</a> section |
4882 | - * 5.3. The specified string should not be folded. |
4883 | - * |
4884 | - * @param displayName |
4885 | - * display-name to encode. |
4886 | - * @return encoded display-name. |
4887 | - */ |
4888 | - public static String encodeAddressDisplayName(String displayName) { |
4889 | - // display-name = phrase |
4890 | - // phrase = 1*( encoded-word / word ) |
4891 | - // word = atom / quoted-string |
4892 | - // atom = [CFWS] 1*atext [CFWS] |
4893 | - // CFWS = comment or folding white space |
4894 | - |
4895 | - if (isAtomPhrase(displayName)) { |
4896 | - return displayName; |
4897 | - } else if (hasToBeEncoded(displayName, 0)) { |
4898 | - return encodeEncodedWord(displayName, Usage.WORD_ENTITY); |
4899 | - } else { |
4900 | - return quote(displayName); |
4901 | - } |
4902 | - } |
4903 | - |
4904 | - /** |
4905 | - * Encodes the local part of an address specification as described in RFC |
4906 | - * 5322 section 3.4.1. Leading and trailing CFWS should have been removed |
4907 | - * before calling this method. The specified string should not contain any |
4908 | - * illegal (control or non-ASCII) characters. |
4909 | - * |
4910 | - * @param localPart |
4911 | - * the local part to encode |
4912 | - * @return the encoded local part. |
4913 | - */ |
4914 | - public static String encodeAddressLocalPart(String localPart) { |
4915 | - // local-part = dot-atom / quoted-string |
4916 | - // dot-atom = [CFWS] dot-atom-text [CFWS] |
4917 | - // CFWS = comment or folding white space |
4918 | - |
4919 | - if (isDotAtomText(localPart)) { |
4920 | - return localPart; |
4921 | - } else { |
4922 | - return quote(localPart); |
4923 | - } |
4924 | - } |
4925 | - |
4926 | - /** |
4927 | - * Encodes the specified strings into a header parameter as described in RFC |
4928 | - * 2045 section 5.1 and RFC 2183 section 2. The specified strings should not |
4929 | - * contain any illegal (control or non-ASCII) characters. |
4930 | - * |
4931 | - * @param name |
4932 | - * parameter name. |
4933 | - * @param value |
4934 | - * parameter value. |
4935 | - * @return encoded result. |
4936 | - */ |
4937 | - public static String encodeHeaderParameter(String name, String value) { |
4938 | - name = name.toLowerCase(Locale.US); |
4939 | - |
4940 | - // value := token / quoted-string |
4941 | - if (isToken(value)) { |
4942 | - return name + "=" + value; |
4943 | - } else { |
4944 | - return name + "=" + quote(value); |
4945 | - } |
4946 | - } |
4947 | - |
4948 | - /** |
4949 | - * Shortcut method that encodes the specified text into an encoded-word if |
4950 | - * the text has to be encoded. |
4951 | - * |
4952 | - * @param text |
4953 | - * text to encode. |
4954 | - * @param usage |
4955 | - * whether the encoded-word is to be used to replace a text token |
4956 | - * or a word entity (see RFC 822). |
4957 | - * @param usedCharacters |
4958 | - * number of characters already used up (<code>0 <= usedCharacters <= 50</code>). |
4959 | - * @return the specified text if encoding is not necessary or an encoded |
4960 | - * word or a sequence of encoded words otherwise. |
4961 | - */ |
4962 | - public static String encodeIfNecessary(String text, Usage usage, |
4963 | - int usedCharacters) { |
4964 | - if (hasToBeEncoded(text, usedCharacters)) |
4965 | - return encodeEncodedWord(text, usage, usedCharacters); |
4966 | - else |
4967 | - return text; |
4968 | - } |
4969 | - |
4970 | - /** |
4971 | - * Determines if the specified string has to encoded into an encoded-word. |
4972 | - * Returns <code>true</code> if the text contains characters that don't |
4973 | - * fall into the printable ASCII character set or if the text contains a |
4974 | - * 'word' (sequence of non-whitespace characters) longer than 77 characters |
4975 | - * (including characters already used up in the line). |
4976 | - * |
4977 | - * @param text |
4978 | - * text to analyze. |
4979 | - * @param usedCharacters |
4980 | - * number of characters already used up (<code>0 <= usedCharacters <= 50</code>). |
4981 | - * @return <code>true</code> if the specified text has to be encoded into |
4982 | - * an encoded-word, <code>false</code> otherwise. |
4983 | - */ |
4984 | - public static boolean hasToBeEncoded(String text, int usedCharacters) { |
4985 | - if (text == null) |
4986 | - throw new IllegalArgumentException(); |
4987 | - if (usedCharacters < 0 || usedCharacters > MAX_USED_CHARACTERS) |
4988 | - throw new IllegalArgumentException(); |
4989 | - |
4990 | - int nonWhiteSpaceCount = usedCharacters; |
4991 | - |
4992 | - for (int idx = 0; idx < text.length(); idx++) { |
4993 | - char ch = text.charAt(idx); |
4994 | - if (ch == '\t' || ch == ' ') { |
4995 | - nonWhiteSpaceCount = 0; |
4996 | - } else { |
4997 | - nonWhiteSpaceCount++; |
4998 | - if (nonWhiteSpaceCount > 77) { |
4999 | - // Line cannot be folded into multiple lines with no more |
5000 | - // than 78 characters each. Encoding as encoded-words makes |
Thanks, I'll test and merge it today.
On Tue, Jan 10, 2012 at 1:45 PM, Toxico Nimbus <email address hidden> wrote:
> Toxico Nimbus has proposed merging lp:~toxn/groundhog/trunk-fr into /code.launchpad .net/~toxn/ groundhog/ trunk-fr/ +merge/ 88043<https:/ /code.launchpad .net/%7Etoxn/ groundhog/ trunk-fr/ +merge/ 88043> /code.launchpad .net/~toxn/ groundhog/ trunk-fr/ +merge/ 88043<https:/ /code.launchpad .net/%7Etoxn/ groundhog/ trunk-fr/ +merge/ 88043>
> lp:groundhog.
>
> Requested reviews:
> juanjux (juanjux)
>
> For more details, see:
> https:/
>
> Translated to french (including string arrays)
> Translation is approx 50% validated (work in progress)
> Moved 2 hard coded strings to resource ("New Post" menu item and "Search
> Matching Groups")
>
> Changed Apache Harmony's default TrustManager to Sun's one (that's really
> a compiling comodity as I didn't want to install the whole HDK, feel free
> not to merge that).
> --
> https:/
> You are requested to review the proposed merge of
> lp:~toxn/groundhog/trunk-fr into lp:groundhog.
>