james-mime4j.git
10 months ago[maven-release-plugin] prepare release apache-mime4j-project-0.8.6 apache-mime4j-project-0.8.6
Benoit Tellier [Fri, 17 Sep 2021 10:37:37 +0000 (17:37 +0700)] 
[maven-release-plugin] prepare release apache-mime4j-project-0.8.6

11 months agoAdd maven-javadoc-plugin (#54)
Ondra Pelech [Sat, 4 Sep 2021 08:43:16 +0000 (10:43 +0200)] 
Add maven-javadoc-plugin (#54)

To generate the Javadoc run:

```
mvn clean install site
```

The javadoc will be located in `target/site/apidocs`

To be published on the website.

Co-authored-by: Tellier Benoit <btellier@linagora.com>
11 months agoMIME4J-306 MimeUtil::unfold should group char appends (#52)
Benoit TELLIER [Sat, 4 Sep 2021 08:42:57 +0000 (15:42 +0700)] 
MIME4J-306 MimeUtil::unfold should group char appends (#52)

Calling repeatedly append requires ensuring the capacity amongst other.

Appends to the string builder can be done for all previous chars when a line delimiter is encountered, thus reducing the cost of the operation.

Gain: 66%

11 months agoMIME4J-305 ContentUtil::decode can avoid using StringBuilder (#51)
Benoit TELLIER [Sat, 4 Sep 2021 08:42:47 +0000 (15:42 +0700)] 
MIME4J-305 ContentUtil::decode can avoid using StringBuilder (#51)

StringBuilder is an expensive construct, we spend most of our time, for each character, ensuring the capacity of the string builder.

Size being known, the operation simple, we can directly operate on top of a char array.

Gains: 78%

11 months agoMIME4J-304 DecoderUtil::decodeEncodedWords without REGEXP (#50)
Benoit TELLIER [Sat, 4 Sep 2021 08:42:34 +0000 (15:42 +0700)] 
MIME4J-304 DecoderUtil::decodeEncodedWords without REGEXP (#50)

12 months ago[Documentation] Fix site.xml license
Benoit Tellier [Fri, 30 Jul 2021 01:55:40 +0000 (08:55 +0700)] 
[Documentation] Fix site.xml license

RAT plugin complains

12 months ago[Documentation] Retire HUPA
Benoit Tellier [Fri, 30 Jul 2021 01:42:54 +0000 (08:42 +0700)] 
[Documentation] Retire HUPA

12 months ago[Documentation] Links should enforce HTTPS in menus
Benoit Tellier [Fri, 30 Jul 2021 01:42:39 +0000 (08:42 +0700)] 
[Documentation] Links should enforce HTTPS in menus

13 months ago[maven-release-plugin] prepare for next development iteration
Benoit Tellier [Thu, 1 Jul 2021 07:32:00 +0000 (14:32 +0700)] 
[maven-release-plugin] prepare for next development iteration

13 months ago[maven-release-plugin] prepare release apache-mime4j-project-0.8.5 apache-mime4j-project-0.8.5
Benoit Tellier [Thu, 1 Jul 2021 07:31:10 +0000 (14:31 +0700)] 
[maven-release-plugin] prepare release apache-mime4j-project-0.8.5

13 months ago[RELEASE] Roll out changelog
Benoit Tellier [Thu, 1 Jul 2021 07:11:26 +0000 (14:11 +0700)] 
[RELEASE] Roll out changelog

13 months ago[CHANGELOG] Track changes prior 0.8.5
Benoit Tellier [Mon, 28 Jun 2021 00:03:33 +0000 (07:03 +0700)] 
[CHANGELOG] Track changes prior 0.8.5

13 months ago[EXAMPLES] RAT exceptions for newly added example resources
Benoit Tellier [Thu, 24 Jun 2021 10:00:46 +0000 (17:00 +0700)] 
[EXAMPLES] RAT exceptions for newly added example resources

13 months ago[EXAMPLES] Github links for examples
Benoit Tellier [Thu, 24 Jun 2021 07:48:40 +0000 (14:48 +0700)] 
[EXAMPLES] Github links for examples

 - One can then easily find them without
 requiring to clone the repository
 - Mention explaining they could easily be
 launched from within an IDE
 - Also, I added the new `Parsing` example.

13 months ago[EXAMPLES] Fix a typo in NAV panel
Benoit Tellier [Thu, 24 Jun 2021 07:47:15 +0000 (14:47 +0700)] 
[EXAMPLES] Fix a typo in NAV panel

We have several examples...

13 months ago[EXAMPLES] Link github and sit examples from the Mime4J index
Benoit Tellier [Thu, 24 Jun 2021 07:46:50 +0000 (14:46 +0700)] 
[EXAMPLES] Link github and sit examples from the Mime4J index

This makes discovering the examples easier.

13 months ago[EXAMPLES] Add an example for parsing messages
Benoit Tellier [Thu, 24 Jun 2021 07:35:59 +0000 (14:35 +0700)] 
[EXAMPLES] Add an example for parsing messages

13 months ago[EXAMPLES] Migrate away from MessageBuilder
Benoit Tellier [Thu, 24 Jun 2021 07:35:42 +0000 (14:35 +0700)] 
[EXAMPLES] Migrate away from MessageBuilder

13 months ago[EXAMPLES] IterateOverMbox should be easy to launch from an IDE
Benoit Tellier [Thu, 24 Jun 2021 07:35:10 +0000 (14:35 +0700)] 
[EXAMPLES] IterateOverMbox should be easy to launch from an IDE

We can default to a local resource if no argument is provided.

13 months ago[EXAMPLES] MessageTree should be easy to launch from an IDE
Benoit Tellier [Thu, 24 Jun 2021 07:34:31 +0000 (14:34 +0700)] 
[EXAMPLES] MessageTree should be easy to launch from an IDE

We can default to a local resource if no argument is provided.

13 months agoMIME-298 DateTimeFieldLenientImpl: remove unneeded option
Benoit Tellier [Sun, 20 Jun 2021 03:29:17 +0000 (10:29 +0700)] 
MIME-298 DateTimeFieldLenientImpl: remove unneeded option

Removing it breaks no tests, as 0000 is the
default GMT.

This prevents one defensive copy of the
parsed entity thus gets parsing slightly
faster.

13 months agoMIME-303 Base64OutputStream is two time slower than its Java8 counterpart
Benoit Tellier [Mon, 21 Jun 2021 04:45:34 +0000 (11:45 +0700)] 
MIME-303 Base64OutputStream is two time slower than its Java8 counterpart

While looking and running mime4J benchmarks, I tried some alternative implementations for Base64 encoding / decoding.

Base64InputStream proved to be 20% faster than its Java8 counterpart.

However, throughtput went from 280 MB/s to 520 MB/s by switching to Java8 Base64.getMimeEncoder().wrap(...)

Tests pass and this speeds up message writing operations... Apache James can for instance benefit of it when composing JMAP messages with large attachments.

13 months agoMIME4J-298 Convert DateTimeFieldLenientImpl to DateTimeFormatter (#44)
Tellier Benoit [Sun, 20 Jun 2021 02:45:20 +0000 (09:45 +0700)] 
MIME4J-298 Convert DateTimeFieldLenientImpl to DateTimeFormatter (#44)

This allows:
 - Specifying all patterns at once, avoiding one parsing pass per pattern
 - DateTimeFormatter is thread safe, thus can be initialized once and reused

Special care have been taken to preserve previous behaviour (missing tests were added):
 - Accept extra input after the date
 - Relax cross-validation

13 months agoMIME4J-301 ContentTypeFieldImpl: more tests for extra semicolon in parameters
Benoit Tellier [Tue, 15 Jun 2021 07:13:21 +0000 (14:13 +0700)] 
MIME4J-301 ContentTypeFieldImpl: more tests for extra semicolon in parameters

13 months agoMIME4J-301 ContentTypeFieldImpl do fill a stacktrace when ended by a semicolon
Benoit Tellier [Tue, 15 Jun 2021 07:08:15 +0000 (14:08 +0700)] 
MIME4J-301 ContentTypeFieldImpl do fill a stacktrace when ended by a semicolon

While running some performance tests for the Apache James server, I noted a bunch of time spent filling some stacktraces while parsing some content types.

I noted that inputs like `Content-Type: text/plain;` was causing ContentTypeFieldImpl to fill some stacktraces while not preventing this class from doing a correct parsing.

As such, it make sense to me to consider such inputs as valid.

13 months agoMIME4J-302 Use lowercase when looking up known headers
Benoit Tellier [Fri, 18 Jun 2021 05:44:55 +0000 (12:44 +0700)] 
MIME4J-302 Use lowercase when looking up known headers

An optimization implemented in MaximalBodyDescriptor aims at reducing the costs of toLowerCase calls: upon known header names lookup the lowercase version of the field instead of the normal version to benefit optimizations (calling toLowerCase on a lowerCase string do not do allocation, it just iterates String content). It might be worth generalizing it.

13 months agoMIME4J-302 Parser should avoid multiple calls to "toLowerCase"
Benoit Tellier [Thu, 17 Jun 2021 08:13:20 +0000 (15:13 +0700)] 
MIME4J-302 Parser should avoid multiple calls to "toLowerCase"

I was surprised MIME4J parsing spends 18% of its time calling toLowerCase on header names. This represents 12% of allocated memory.

By holding the lowerCased name as part of the field name, and doing lazy initialization on it we can get this down to 6%.

14 months agoMIME4J-300 Set up an automated build for Apache MIME4J
Benoit Tellier [Fri, 28 May 2021 05:05:36 +0000 (12:05 +0700)] 
MIME4J-300 Set up an automated build for Apache MIME4J

14 months ago[WARNING] Remove unecessary toString calls
Benoit Tellier [Thu, 27 May 2021 07:46:56 +0000 (14:46 +0700)] 
[WARNING] Remove unecessary toString calls

The StringBuilder handles the conversion
itself.

14 months ago[WARNING] Group: iterations can be replaces by Collection::addAll
Benoit Tellier [Thu, 27 May 2021 07:46:13 +0000 (14:46 +0700)] 
[WARNING] Group: iterations can be replaces by Collection::addAll

This is likely to be more efficient.

14 months ago[WARNING] Manual calls to Math.max
Benoit Tellier [Thu, 27 May 2021 07:45:27 +0000 (14:45 +0700)] 
[WARNING] Manual calls to Math.max

Using Math.max is more explicit and thus
should be favored.

14 months ago[WARNING] Unneeded array boxing
Benoit Tellier [Thu, 27 May 2021 07:44:34 +0000 (14:44 +0700)] 
[WARNING] Unneeded array boxing

14 months ago[WARNING] Remove uneeded redundant interface qualifiers
Benoit Tellier [Thu, 27 May 2021 07:43:26 +0000 (14:43 +0700)] 
[WARNING] Remove uneeded redundant interface qualifiers

Idem, this was reported by intelliJ inspections.

14 months ago[WARNING] MessageBuilder::getReadDate infinitely recurse
Benoit Tellier [Thu, 27 May 2021 07:42:28 +0000 (14:42 +0700)] 
[WARNING] MessageBuilder::getReadDate infinitely recurse

This was reported by intelliJ as "likely a bug".
There is no shortcut to exit this infinite recursion.

The pattern applied with MIME4J-262, that is
to call the same method on the delegate
builder is not followed.

14 months ago[WARNING] Remove unused import
Benoit Tellier [Thu, 27 May 2021 07:37:51 +0000 (14:37 +0700)] 
[WARNING] Remove unused import

Run intelliJ inspection to find unused imports

14 months agoMerge pull request #17 from bwndai/encodeQ
Jochen Wiedmann [Tue, 25 May 2021 10:19:38 +0000 (12:19 +0200)] 
Merge pull request #17 from bwndai/encodeQ

MIME4J-273 Fix encoded word splitting point for EncodeQ method as well.

14 months agoMerge pull request #40 from chibenwa/MIME4J-299
Jochen Wiedmann [Tue, 25 May 2021 10:17:06 +0000 (12:17 +0200)] 
Merge pull request #40 from chibenwa/MIME4J-299

MIME4J-299 Access to the Header map

14 months agofixup! MIME4J-299 Access to the Header map 40/head
Benoit Tellier [Tue, 25 May 2021 08:25:07 +0000 (15:25 +0700)] 
fixup! MIME4J-299 Access to the Header map

14 months ago[REFACTORING] Pre-compile ContentLocationFieldImpl REGEX
Benoit Tellier [Mon, 24 May 2021 11:50:27 +0000 (18:50 +0700)] 
[REFACTORING] Pre-compile ContentLocationFieldImpl REGEX

Using String::replaceAll leads to recompile the regex on each calls.

14 months ago[REFACTORING] Pre-compile EncoderUtil::quote REGEX
Benoit Tellier [Mon, 24 May 2021 11:47:53 +0000 (18:47 +0700)] 
[REFACTORING] Pre-compile EncoderUtil::quote REGEX

Using String::replaceAll leads to recompile the regex on each calls.

14 months ago[REFACTORING] AbstractHeader was calling toLowerCase twice
Benoit Tellier [Mon, 24 May 2021 10:47:50 +0000 (17:47 +0700)] 
[REFACTORING] AbstractHeader was calling toLowerCase twice

This generates needless object allocation and uselessly huggs CPU

14 months ago[REFACTORING] AbstractEntityBuilder was colling toLowerCase twice
Benoit Tellier [Mon, 24 May 2021 00:30:27 +0000 (07:30 +0700)] 
[REFACTORING] AbstractEntityBuilder was colling toLowerCase twice

14 months ago[WARNING] Remove redundant string operations
Benoit Tellier [Sun, 23 May 2021 17:50:19 +0000 (00:50 +0700)] 
[WARNING] Remove redundant string operations

Run an intelliJ inspection to sole a warning

14 months agoMIME4J-299 Access to the Header map
Benoit Tellier [Tue, 25 May 2021 00:12:45 +0000 (07:12 +0700)] 
MIME4J-299 Access to the Header map

Preserving the "grouped by name" structure can ease the work of callers.

15 months agoMIME4J-255 Add method to allow setting of "no recurse" mode to underlying mime token...
Felix Knecht [Mon, 2 Nov 2015 13:43:33 +0000 (21:43 +0800)] 
MIME4J-255 Add method to allow setting of "no recurse" mode to underlying mime token stream

15 months agoMIME4J-297 0.8.4 release in the changelog
Benoit Tellier [Wed, 21 Apr 2021 10:49:32 +0000 (17:49 +0700)] 
MIME4J-297 0.8.4 release in the changelog

15 months agoMIME4J-297 Merge the changelog and the release notes together, drop 0.9.0
Benoit Tellier [Fri, 16 Apr 2021 03:30:22 +0000 (10:30 +0700)] 
MIME4J-297 Merge the changelog and the release notes together, drop 0.9.0

15 months agoMIME4J-297 Detail more the changelog pre-8.0.4 release
Benoit Tellier [Fri, 16 Apr 2021 03:25:08 +0000 (10:25 +0700)] 
MIME4J-297 Detail more the changelog pre-8.0.4 release

15 months ago[maven-release-plugin] prepare for next development iteration
Benoit Tellier [Wed, 14 Apr 2021 06:57:28 +0000 (13:57 +0700)] 
[maven-release-plugin] prepare for next development iteration

15 months ago[maven-release-plugin] prepare release apache-mime4j-project-0.8.4 apache-mime4j-project-0.8.4
Benoit Tellier [Wed, 14 Apr 2021 06:56:45 +0000 (13:56 +0700)] 
[maven-release-plugin] prepare release apache-mime4j-project-0.8.4

16 months agoMIME4J-296 Use Path instead of File in MboxIterator
Jason Cobb [Tue, 30 Mar 2021 21:18:41 +0000 (17:18 -0400)] 
MIME4J-296 Use Path instead of File in MboxIterator

16 months agoJAMES-3226 Ignore Antora doc missing licenses (#36)
Tellier Benoit [Tue, 30 Mar 2021 10:42:22 +0000 (17:42 +0700)] 
JAMES-3226 Ignore Antora doc missing licenses (#36)

16 months agoMIME4J-290 Fix build for recent mvn and JDK versions (#35)
Tyler Rockwood [Tue, 30 Mar 2021 10:41:58 +0000 (05:41 -0500)] 
MIME4J-290 Fix build for recent mvn and JDK versions (#35)

* [MIME4J-290] Fix build for recent mvn and JDK versions

* Remove unneed import

16 months agoMIME4J-295 Allow for overriding the specified charset when decoding q or b encoded...
Tyler Rockwood [Tue, 30 Mar 2021 10:41:35 +0000 (05:41 -0500)] 
MIME4J-295 Allow for overriding the specified charset when decoding q or b encoded words (#34)

* Allow for overriding the specified charset when decoding q or b encoded words.

It it very common to recieve mislabeled charsets for windows-1252, which usually end up
being ISO-8898-1. This is a minimal change allows our email servers to not have to rewrite
q-encoding, but doesn't change any default behaviors within Mime4J.

* Address review feedback

* Tighten up charset lookup method

16 months agoMIME4J-233 Fix ByteBufferInputStream read implementation (#33)
Jason Cobb [Mon, 22 Mar 2021 16:59:51 +0000 (12:59 -0400)] 
MIME4J-233 Fix ByteBufferInputStream read implementation (#33)

* Fix ByteBufferInputStream read implementation
* Check preconditions in read
* Add license to ByteBufferInputStreamTest

2 years agoJAMES-3226 #comment Added antora docs stub
Eugen Stan [Thu, 30 Jul 2020 23:08:24 +0000 (02:08 +0300)] 
JAMES-3226 #comment Added antora docs stub

2 years agoMIME4J-273 Add limit and position to LimitedInputStream exception message 32/head
Benoit Tellier [Mon, 6 Jul 2020 05:09:28 +0000 (12:09 +0700)] 
MIME4J-273 Add limit and position to LimitedInputStream exception message

2 years agoMIME4J-289 Upgrade maven-assembly-plugin 3.0.0 -> 3.1.1 29/head
Tran Tien Duc [Wed, 4 Sep 2019 02:11:58 +0000 (09:11 +0700)] 
MIME4J-289 Upgrade maven-assembly-plugin 3.0.0 -> 3.1.1

 - Use goals `single` instead of `attached` by the recommendation at
http://maven.apache.org/plugins-archives/maven-assembly-plugin-2.5.5/attached-mojo.html

2 years agoMIME4J-289 Upgrade apache parent pom version 18 -> 21
Tran Tien Duc [Wed, 4 Sep 2019 01:55:08 +0000 (08:55 +0700)] 
MIME4J-289 Upgrade apache parent pom version 18 -> 21

2 years agoMIME4J-289 Upgrade guava 18.0 -> 28.1-jre
Tran Tien Duc [Tue, 3 Sep 2019 11:35:26 +0000 (18:35 +0700)] 
MIME4J-289 Upgrade guava 18.0 -> 28.1-jre

2 years agoMIME4J-289 Upgrade slf4j-api 1.7.7 -> 1.7.28
Tran Tien Duc [Tue, 3 Sep 2019 11:34:38 +0000 (18:34 +0700)] 
MIME4J-289 Upgrade slf4j-api 1.7.7 -> 1.7.28

2 years agoMIME4J-289 Upgrade mockito 1.9.5 -> 3.0.0
Tran Tien Duc [Tue, 3 Sep 2019 11:31:41 +0000 (18:31 +0700)] 
MIME4J-289 Upgrade mockito 1.9.5 -> 3.0.0

2 years agoMIME4J-289 Upgrade assertj 1.7.1 -> 3.13.2
Tran Tien Duc [Tue, 3 Sep 2019 11:30:36 +0000 (18:30 +0700)] 
MIME4J-289 Upgrade assertj 1.7.1 -> 3.13.2

2 years agoMIME4J-289 Upgrade log4j 1.2.14 -> 1.2.17
Tran Tien Duc [Tue, 3 Sep 2019 11:27:42 +0000 (18:27 +0700)] 
MIME4J-289 Upgrade log4j 1.2.14 -> 1.2.17

2 years agoMIME4J-289 Upgrade junit 4.10 -> 4.12
Tran Tien Duc [Tue, 3 Sep 2019 11:23:53 +0000 (18:23 +0700)] 
MIME4J-289 Upgrade junit 4.10 -> 4.12

2 years agoMIME4J-289 Upgrade common-logging 1.1.1 -> 1.2
Tran Tien Duc [Tue, 3 Sep 2019 11:22:54 +0000 (18:22 +0700)] 
MIME4J-289 Upgrade common-logging 1.1.1 -> 1.2

2 years agoMIME4J-289 Upgrade common-io 2.4 -> 2.6
Tran Tien Duc [Tue, 3 Sep 2019 11:21:26 +0000 (18:21 +0700)] 
MIME4J-289 Upgrade common-io 2.4 -> 2.6

2 years agoMIME4J-289 Upgrade maven-jar-plugin 2.4 -> 3.1.2
Tran Tien Duc [Tue, 3 Sep 2019 11:19:11 +0000 (18:19 +0700)] 
MIME4J-289 Upgrade maven-jar-plugin 2.4 -> 3.1.2

2 years agoMIME4J-289 Upgrade maven-bundle-plugin 2.3.7 -> 4.2.1
Tran Tien Duc [Tue, 3 Sep 2019 11:16:51 +0000 (18:16 +0700)] 
MIME4J-289 Upgrade maven-bundle-plugin 2.3.7 -> 4.2.1

2 years agoMIME4J-289 Upgrade maven-compiler-plugin 3.0 -> 3.8.1
Tran Tien Duc [Tue, 3 Sep 2019 11:08:50 +0000 (18:08 +0700)] 
MIME4J-289 Upgrade maven-compiler-plugin 3.0 -> 3.8.1

3 years agoMIME4J-273 Fix encoded word splitting point for EncodeQ method as well.
Bowen Dai [Fri, 27 Apr 2018 17:12:32 +0000 (10:12 -0700)] 
MIME4J-273 Fix encoded word splitting point for EncodeQ method as well.

3 years agoMIME4J-287 Use JDK 1.8 28/head
Benoit Tellier [Fri, 22 Mar 2019 07:36:48 +0000 (14:36 +0700)] 
MIME4J-287 Use JDK 1.8

3 years agoCHANGELOG for MIME4J
Benoit Tellier [Fri, 22 Mar 2019 07:33:38 +0000 (14:33 +0700)] 
CHANGELOG for MIME4J

3 years agoCHANGELOG for MIME4J 27/head
Benoit Tellier [Tue, 19 Mar 2019 03:23:04 +0000 (10:23 +0700)] 
CHANGELOG for MIME4J

3 years ago[maven-release-plugin] prepare for next development iteration
Benoit Tellier [Thu, 14 Mar 2019 04:44:49 +0000 (11:44 +0700)] 
[maven-release-plugin] prepare for next development iteration

3 years ago[maven-release-plugin] prepare release apache-mime4j-project-0.8.3 apache-mime4j-project-0.8.3
Benoit Tellier [Thu, 14 Mar 2019 04:44:09 +0000 (11:44 +0700)] 
[maven-release-plugin] prepare release apache-mime4j-project-0.8.3

3 years agoMIME4J-283 DecoderUtil performance fix
Dmitry Potapov [Fri, 18 Jan 2019 15:17:43 +0000 (18:17 +0300)] 
MIME4J-283 DecoderUtil performance fix

3 years agoMerge remote-tracking branch 'dmak/MIME4J-280'
Antoine Duprat [Thu, 13 Sep 2018 06:57:47 +0000 (08:57 +0200)] 
Merge remote-tracking branch 'dmak/MIME4J-280'

4 years agoMIME4J-280 Wrapping the underlying exception rather then ignoring it. 20/head
Dmitry Katsubo [Wed, 23 May 2018 10:25:03 +0000 (12:25 +0200)] 
MIME4J-280 Wrapping the underlying exception rather then ignoring it.

4 years agoFix failing tests. 17/head
Bowen [Fri, 25 May 2018 04:29:43 +0000 (21:29 -0700)] 
Fix failing tests.

4 years agoMIME4J-279 Fixed JavaDoc errors to comply with Java8.
Dmitry Katsubo [Tue, 22 May 2018 10:17:11 +0000 (12:17 +0200)] 
MIME4J-279 Fixed JavaDoc errors to comply with Java8.

4 years agoAdd the lost self link for site of Mime4J doc
benwa [Tue, 22 May 2018 08:57:07 +0000 (15:57 +0700)] 
Add the lost self link for site of Mime4J doc

Reported and fixed by https://github.com/dongxuwang

4 years agoMIME4J-263 decoding encoded words with empty encoded-text
Artur Jablonski [Fri, 18 Aug 2017 09:51:40 +0000 (11:51 +0200)] 
MIME4J-263 decoding encoded words with empty encoded-text

4 years agoMIME4J-270 Using "alternative" as default subtype.
Dmitry Katsubo [Tue, 22 May 2018 07:42:07 +0000 (09:42 +0200)] 
MIME4J-270 Using "alternative" as default subtype.

4 years agoFix encoded word splitting point for EncodeQ method as well.
Bowen Dai [Fri, 27 Apr 2018 17:12:32 +0000 (10:12 -0700)] 
Fix encoded word splitting point for EncodeQ method as well.

4 years ago[maven-release-plugin] prepare for next development iteration
benwa [Fri, 27 Apr 2018 08:47:58 +0000 (15:47 +0700)] 
[maven-release-plugin] prepare for next development iteration

4 years ago[maven-release-plugin] prepare release apache-mime4j-project-0.8.2 apache-mime4j-project-0.8.2
benwa [Fri, 27 Apr 2018 08:47:22 +0000 (15:47 +0700)] 
[maven-release-plugin] prepare release apache-mime4j-project-0.8.2

4 years agoMIME4J-273 Update encodeB encoding bytes splitting point.
Bowen [Sat, 14 Apr 2018 05:15:31 +0000 (22:15 -0700)] 
MIME4J-273 Update encodeB encoding bytes splitting point.

EncoderUtil.encodeIfNecessary(<unicode string>, EncoderUtil.Usage.TEXT_TOKEN, <number less than 10>) is broken in some cases, such as : https://issues.apache.org/jira/projects/MIME4J/issues/MIME4J-250?filter=allopenissues

The culprit is line
String part1 = text.substring(0, text.length() / 2);
Since the breaking point can be in between one unicode character. Once the string is breaking into two part, part1 will have a broken tail and part2 will have a broken head in this case.

Update test for failing testEncodeEncodedWordSplitForUnicode. Changed parameter is to force word split.

4 years agoMIME4J-272 Implicit DOM builder calls
benwa [Mon, 9 Apr 2018 03:06:56 +0000 (10:06 +0700)] 
MIME4J-272 Implicit DOM builder calls

4 years agoMIME4J-271 Make possible to define a Content-Type parameter
Matthieu Baechler [Wed, 28 Mar 2018 15:01:14 +0000 (17:01 +0200)] 
MIME4J-271 Make possible to define a Content-Type parameter

4 years agoMIME4J-269 Expose a convenient 100 Mo limited "permissive" mime config limit
benwa [Tue, 13 Mar 2018 02:36:55 +0000 (09:36 +0700)] 
MIME4J-269 Expose a convenient 100 Mo limited "permissive" mime config limit

This aims at remaining very permissive while still denying a single email to use all JVM memory.

4 years agoMIME4J-268 DefaultMessageWriter should expose a convenient *asBytes* method
benwa [Fri, 9 Mar 2018 07:29:07 +0000 (14:29 +0700)] 
MIME4J-268 DefaultMessageWriter should expose a convenient *asBytes* method

4 years agoMIME4J-269 Introduce a Lenient default mimeConfig object
benwa [Fri, 9 Mar 2018 07:23:06 +0000 (14:23 +0700)] 
MIME4J-269 Introduce a Lenient default mimeConfig object

4 years agoMIME4J-267 DateTimeFieldLenientImpl should support date with no timezones.
benwa [Wed, 17 Jan 2018 09:08:40 +0000 (16:08 +0700)] 
MIME4J-267 DateTimeFieldLenientImpl should support date with no timezones.

5 years agoJAMES-1789 Remove mention to SVN
benwa [Thu, 15 Jun 2017 00:58:38 +0000 (07:58 +0700)] 
JAMES-1789 Remove mention to SVN

5 years ago[maven-release-plugin] prepare for next development iteration
benwa [Fri, 9 Jun 2017 02:49:22 +0000 (09:49 +0700)] 
[maven-release-plugin] prepare for next development iteration

5 years ago[maven-release-plugin] prepare release apache-mime4j-project-0.8.1 apache-mime4j-project-0.8.1
benwa [Fri, 9 Jun 2017 02:48:48 +0000 (09:48 +0700)] 
[maven-release-plugin] prepare release apache-mime4j-project-0.8.1

5 years agoJAMES-2045 DateTimeFieldImpl should assume 19xx century when date without century... 13/head
benwa [Mon, 5 Jun 2017 11:03:53 +0000 (18:03 +0700)] 
JAMES-2045 DateTimeFieldImpl should assume 19xx century when date without century >= 70

5 years agoJAMES-2045 LenientDateTimeField should support partial years
benwa [Mon, 5 Jun 2017 06:54:26 +0000 (13:54 +0700)] 
JAMES-2045 LenientDateTimeField should support partial years

5 years agoJAMES-2045 Correct DateTimeTests
benwa [Mon, 5 Jun 2017 02:02:30 +0000 (09:02 +0700)] 
JAMES-2045 Correct DateTimeTests