-
Notifications
You must be signed in to change notification settings - Fork 3
/
TODO.txt
146 lines (78 loc) · 4.79 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
Get classes for package/sub classes in package
https://github.com/dandelion/dandelion/blob/1.0.0/dandelion-core/src/main/java/com/github/dandelion/core/util/ClassUtils.java
Throwables
Build method to strip out stack trace elements that don't match a pattern. Thus
Spring apps for example could strip out all the proxy classes for example making
the stack trace more useable.
xpertss.text
StringPrepException can go and be replaced by SyntaxException or ParseException
Get rid of FastDateFormat... And cache
Completely rework MapMessageFormat to make it more efficient and thread-safe
Consider building a thread-safe immutable NumberFormatter.
Complete work on DateFormatter
To parse general time zone names I need to load a set of Long names to
timezone id, and short names to timezone id for a given locale. That
mapping should be locale specific. For example CST would map to China
Standard Time with a china locale while it would map to Central Standard
Time with a US/Canada/Central/South America locales.
Ideally I would take these keys and create a Trie where I could navigate
down the tree character by character until I reach a dead end (error case)
or I reach a node with a mapping. The mapping of course would allow me to
get the Timezone by ID which I could then use to set zone offset and dst
offset on the calendar.
Some how I need to load these resource bundles and parse them into Trie
and cache them during rules creation and pass the appropriate one for
style = SHORT or style = LONG for the given locale.
DateFormatter
DateFormatter[en_US, America/New_York, eeee, nnnn d, yyyy h:mm:ss a z] = 35182 micros
DateFormatter[en_US, America/New_York, nnnn d, yyyy h:mm:ss a z] = 181 micros
DateFormatter[en_US, America/New_York, nnn d, yyyy h:mm:ss a] = 173 micros
DateFormatter[en_US, America/New_York, n/d/yy h:mm a] = 1603 micros
The above just doesn't make any sense. Why does the simplest format take longer to
parse than the two that preceded it. I can say that two new classes are loaded to
handle two digit years and unpadded months. Other than that we are talking about
13 rules for the 173 micros pattern and 11 rules for the 1603 micros pattern.
RFC 2822
Must use English words for Abbreviated day and Abbreviated Month
Must use +/- 4 Digit Offset (no colon)
Seconds are optional
hour/minute/second are always zero padded if less than 10
year is always 4 digits
Leading Day of week abbreviation along with following comma are optional
Day number can be one or two digits
RFC 1123
Day number can be one or two digits
Year parse can be 2 or 4 digit, format is always 4 digit
Timezones are formatted as +/- 4 digit offset no colon
Timezones may be parsed as above or GMT, UT, EST, EDT, etc..
No military timezones (RFC822 specified them wrong)
At least support Z for military timezone = GMT
Leading Day of week abbreviation along with following comma are optional
Hour/minute/second are always 2 digit
Seconds are optional
English abbreviated Months are always used
RFC 822
Get rid of this one. The main difference is that it only supports 2 digit years
NOTE RFC822 was replaced by RFC2822
RFC822 allowed the us of EST/EDT etc where the new spec dictates offset
numerics
RFC822 dictated 2 digit years while RFC1123 updated this to support 4
digit years.
RFC1123 requires output using numeric zone offsets but must support
named zone input (CST, etc.. Noted that military zones were incorrect
in the RFC822 spec).
Maybe impl a DateStyle class (similar to BooleanStyle) which impls some of the standard
date formats.
http://www.w3.org/TR/NOTE-datetime
http://www.hackcraft.net/web/datetime/
ISO 8601, RFC-2822, RFC-1123 updates RFC-822
What do I want to do with PhaseBarrier?
Clean up javadocs on PhaseBarrier. Add awaitTermination() method which waits until there are no
parties remaining. Test the hell out of it. Possibly remove the parent/child functionality.
boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException
Set/Map I would love to have a means to create any impl Concurrent, CopyOnWrite, Hash, LinkedHash,
etc and apply as a property that it use identity vs equals() comparison. It might also be nice if
we could specify if values/keys are weak or soft references.
Complete work on caching system. Needs to be capable of supporting maximumSize, weak/soft values,
and weak keys.
I kind of like the idea of Clock as implemented in the new java.time package