Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
505 commits
Select commit Hold shift + click to select a range
d759c96
Latest applicable dependency updates (Hibernate ORM 5.2.4, Gson 2.8, …
jhoeller Oct 31, 2016
d859826
ASM-generated class names get interned for better memory allocation
jhoeller Oct 31, 2016
baa7aec
Polishing
jhoeller Oct 31, 2016
653f35a
Upgrade to H2 1.4.193 and Derby 10.13.1.1
jhoeller Oct 31, 2016
ade139f
Polishing
jhoeller Oct 31, 2016
77e00f1
Polishing
jhoeller Oct 31, 2016
38cd1ec
Rework compilation of OpNE/OpEQ SpEL operators
aclement Nov 1, 2016
5baf32c
Upgrade to Caffeine 2.3.4
jhoeller Nov 2, 2016
56bb20d
Upgrade to HtmlUnit 2.23 and JSONAssert 1.4
jhoeller Nov 2, 2016
17863df
AnnotatedElementAdapter explicitly declares isAnnotationPresent method
jhoeller Nov 2, 2016
8f4ec35
Check SockJS session type
rstoyanchev Nov 3, 2016
2bb3522
ReloadableResourceBundleMessageSource sets file timestamp on merged h…
jhoeller Nov 3, 2016
9e67ba8
Consistent support for early placeholder resolution in properties loc…
jhoeller Nov 3, 2016
0554797
Polishing
jhoeller Nov 3, 2016
e83c116
ApplicationListenerDetector ignores non-managed bean instances
jhoeller Nov 3, 2016
7e7504f
Polishing
jhoeller Nov 3, 2016
9be1710
@Async docs explicitly mention ListenableFuture and CompletableFuture
jhoeller Nov 4, 2016
2ac682e
Upgrade to Joda-Time 2.9.5
jhoeller Nov 4, 2016
fe0249b
Polishing
jhoeller Nov 4, 2016
e26d350
Upgrade to OkHttp 3.4.2 and Tiles 3.0.7
jhoeller Nov 4, 2016
fd7045a
Polishing
jhoeller Nov 7, 2016
b42d731
Consistent throwing of BeanCreationExceptions (and reflection excepti…
jhoeller Nov 7, 2016
3d2e4c3
Refined throwing of BeanCreationExceptions (and reflection exceptions)
jhoeller Nov 7, 2016
db1a84e
Polishing
jhoeller Nov 7, 2016
37f4f43
Consistent 4.x style NoClassDefFoundError handling
jhoeller Nov 7, 2016
3a1334e
Next Development Version
spring-builds Nov 7, 2016
7ffed85
ASM-generated class names get interned for better memory allocation
jhoeller Nov 8, 2016
62631bf
Detect invalid configuration for autoGrowCollectionLimit on DataBinder
jhoeller Nov 8, 2016
1608d05
Polishing
jhoeller Nov 4, 2016
5285f53
Fix TLS detection in URLs for Netty Client RequestFactory
mp911de Nov 9, 2016
f089809
Polish doc
snicoll Nov 16, 2016
8f19650
Avoid locking in WebSocket session "close" callback
rstoyanchev Nov 24, 2016
646a574
Deprecate ResourceServlet
rstoyanchev Nov 24, 2016
bc29fb5
Do not execute ResourceUrlEncodingFilter only once per request
bclozel Nov 16, 2016
9755ae3
PayloadArgumentResolver has useDefaultResolution flag
rstoyanchev Nov 28, 2016
dd3b9c7
ResponseEntity headers builder casts body to any type
rstoyanchev Nov 28, 2016
872d6ef
HtmlUnitRequestBuilder detects form encoding type
rstoyanchev Nov 28, 2016
ac30bcb
WebSocketServerSockJsSession uses dedicated disconnect lock
jhoeller Nov 21, 2016
8de100b
Implement allocation-friendly method to get user count in SimpUserReg…
dreis2211 Nov 21, 2016
b53ee13
JdbcUtils explicitly extracts SQL date/time for JSR-310 LocalDate/Time
jhoeller Nov 22, 2016
f22a4a4
No warn logging for propagated original exception
jhoeller Nov 22, 2016
5ca10b1
Consistent ExpressionException-style quoting of expression string and…
jhoeller Nov 24, 2016
a7ba63d
Shared DefaultConversionService instance for simple fallback purposes
jhoeller Nov 24, 2016
7ac9f92
Various DefaultListableBeanFactory clarifications
jhoeller Nov 30, 2016
cbc512f
Efficient type plus annotation comparisons during converter retrieval
jhoeller Nov 30, 2016
17f7f1f
Consistent catching of Throwable for introspection failures
jhoeller Nov 30, 2016
af41dd1
Efficient ISO_LOCAL_* variants for printing LocalDate/LocalTime/Local…
jhoeller Nov 30, 2016
66aeeed
Test injection point match for narrow target return type
jhoeller Nov 30, 2016
2b02935
Consistent use of "URI variables" terminology
jhoeller Dec 1, 2016
f16d453
PathMatchingResourcePatternResolver converts manifest entries to abso…
jhoeller Dec 1, 2016
5fee5f3
Polishing
jhoeller Dec 1, 2016
149acda
@UsesJava8
jhoeller Dec 1, 2016
1ded1e3
Latest dependency updates (Caffeine 2.3.5, Hibernate ORM 5.2.5, Joda-…
jhoeller Dec 1, 2016
0028b29
Polishing
jhoeller Dec 1, 2016
eb97335
Polishing
jhoeller Dec 1, 2016
9d37472
Fix Netty4ClientHttpRequestFactory POST/PUT requests
bclozel Dec 6, 2016
e707c40
Add consumes attribute to @GetMapping
bedrin Dec 7, 2016
5700d65
Append "data:" after line breaks for SSE JSON data fields
sdeleuze Nov 30, 2016
69ba85b
Backport of STOMP message header encoding improvements
rstoyanchev Dec 8, 2016
305cea2
Update websocket support for Jetty 9.3+
bclozel Dec 8, 2016
75034c3
Revert "Update websocket support for Jetty 9.3+"
bclozel Dec 8, 2016
35b0c8b
Update websocket support for Jetty 9.3+
bclozel Dec 9, 2016
1a6dc86
Allow RedirectAttributes on ExceptionHandlers
bclozel Dec 9, 2016
b59455b
Do not include URL hash in resource paths
bclozel Dec 12, 2016
14de29c
Improve VersionResourceResolve javadoc
bclozel Dec 13, 2016
b14d189
MockRestRequestMatchers can match query params
rstoyanchev Dec 13, 2016
e16d753
Allow athentication at the STOMP level
rstoyanchev Dec 9, 2016
5e774e0
Add Support for ForwardedHeaderFilter sendRedirect
Dec 14, 2016
71977e8
Consistent use of "URI variables" terminology
jhoeller Dec 8, 2016
5ccc8e3
SpEL docs: supported literals, null comparisons
jhoeller Dec 8, 2016
04af30d
JPA/Hibernate docs: transaction management, JTA setup
jhoeller Dec 8, 2016
ced7503
Revised forClass argument names
jhoeller Dec 8, 2016
c6663f5
HttpInvokerClientInterceptor propagates client-side Error as-is
jhoeller Dec 8, 2016
4e41f74
Explicit support for retrieving enum values
jhoeller Dec 8, 2016
dd3c370
ImportRegistry properly tracks excluded superclasses
jhoeller Dec 9, 2016
84d8135
MimeType parsing properly handles quoted semicolons
jhoeller Dec 9, 2016
0296c7c
Stronger explanation of default rollback rules
jhoeller Dec 9, 2016
54c7a9e
Revised Jetty 9.3 vs 9.4 differentiation
jhoeller Dec 9, 2016
5115c61
CommonsMultipartFile.getOriginalFilename() can be configured to prese…
jhoeller Dec 9, 2016
4571975
Collection injection may refer back to factory methods on same bean a…
jhoeller Dec 9, 2016
8190e78
SQLErrorCodesFactory provides unregisterDatabase method
jhoeller Dec 12, 2016
934fffe
AutowiredAnnotationBeanPostProcessor tolerates annotated no-arg const…
jhoeller Dec 12, 2016
442d8a6
TypeDescriptor properly narrows ResolvableType for non-typed collecti…
jhoeller Dec 12, 2016
f3cc4ab
@RequestBody supports java.util.Optional
jhoeller Dec 13, 2016
d15df34
Avoid proxy replacement for generic return type signatures
jhoeller Dec 14, 2016
f0fdff1
OkHttpClientHttpRequestFactory allows POST request without body
jhoeller Dec 14, 2016
f0c3d50
Defensively catch IllegalStateException from match attempts (for comp…
jhoeller Dec 14, 2016
271b0ab
LocaleContextHolder provides support for framework-level default sett…
jhoeller Dec 15, 2016
faab4f9
Consistent DeferredResultHandler invocation outside of result lock
jhoeller Dec 15, 2016
b9c4f1f
ResolvableType-based matching respects generic factory method return …
jhoeller Dec 17, 2016
8310eb3
Latest dependency updates (OkHttp 3.5, Jackson 2.8.5, Jetty 9.3.14, T…
jhoeller Dec 19, 2016
307e37a
Flexible setMessageCodesResolver and deprecated setExtractOldValueFor…
jhoeller Dec 19, 2016
2d83ca6
JdbcTemplate consistently delegates to getColumnMapRowMapper
jhoeller Dec 19, 2016
594f4d5
RestTemplate provides patchForObject operations
jhoeller Dec 19, 2016
b5f2e56
Polishing
jhoeller Dec 19, 2016
a92ae4b
Fixed backport gaps
jhoeller Dec 19, 2016
1e58c80
MBeanExporter silently ignores null beans
jhoeller Dec 19, 2016
a5ce965
ConfigurationClassPostProcessor programmatically registers unified Im…
jhoeller Dec 20, 2016
935671a
Defensively catch any exception from match attempts (for compatibilit…
jhoeller Dec 20, 2016
8662c61
Polishing
jhoeller Dec 20, 2016
9cb4de8
Polishing
jhoeller Dec 20, 2016
8d55c7d
Backported DataBinder configuration tests
jhoeller Dec 21, 2016
709d4ba
Avoid explicit DecoratedObjectFactory setup in JettyRequestUpgradeStr…
jhoeller Dec 21, 2016
bd7fee5
Upgrade to Hibernate ORM 5.2.6
jhoeller Dec 21, 2016
e2d6e70
Normalize resource URL in ResourceServlet
bclozel Dec 21, 2016
a88436c
Next Development Version
spring-builds Dec 21, 2016
41b834f
Consistent ClassLoader propagation and ConcurrentHashMap setup for As…
jhoeller Dec 22, 2016
afe0228
Reintroduced initDefaultStrategies callback for compatibility with ol…
jhoeller Dec 22, 2016
fa2bfdd
Remove unused Log object from MessageHeaderAccessor
jhoeller Dec 22, 2016
505480c
LinkedCaseInsensitiveMap delegates to LinkedHashMap instead of extend…
jhoeller Dec 23, 2016
4a84ee0
ConfigurationClassParser enforces @Bean declaration order through ASM…
jhoeller Dec 23, 2016
99226e0
Polishing
jhoeller Dec 23, 2016
28e114b
Clarify programmatic contract (no annotation-driven injection)
jhoeller Dec 26, 2016
4b01840
Expose reflection metadata with ASM-driven method order
jhoeller Dec 26, 2016
9a39a25
Detect generic type match behind interface-based proxy as well
jhoeller Dec 26, 2016
f949461
Polishing
jhoeller Dec 26, 2016
dd2b6a0
Avoid NPE in AutoProxyRegistrar when no attribute found
sdeleuze Dec 27, 2016
d77ab67
AbstractNestablePropertyAccessor's setPropertyValue refactored into s…
jhoeller Dec 26, 2016
20aaa88
PATCH does not work with the standard JDK HTTP library
jhoeller Dec 27, 2016
243e21a
Backport streamlined ClassPathBeanDefinitionScanner setup
jhoeller Dec 27, 2016
d44bc27
Avoid FactoryBean initialization on isSingleton check for decorated b…
jhoeller Dec 28, 2016
794580f
TypeDescriptor efficiently matches equal annotations as well
jhoeller Dec 28, 2016
fd21e0e
@Scheduled reliably applies after other post-processors and shuts dow…
jhoeller Dec 29, 2016
050f2c7
Track bean dependencies for calls between @Bean methods within @Confi…
jhoeller Dec 29, 2016
26a4aef
Polishing
jhoeller Dec 29, 2016
b6108e3
Upgrade to ASM 5.2
jhoeller Dec 30, 2016
8fc65ab
Clarified setAutowireCandidate semantics (plus attribute reordering i…
jhoeller Dec 30, 2016
7f05c2a
Fix default content-type for ResourceRegion HTTP responses
bclozel Jan 2, 2017
131d2c2
Remove String#toCharArray from ScriptUtils
marschall Dec 31, 2016
523370b
Fix ForwardedHeaderFilter with non-empty contextPath
Jan 3, 2017
55b44b4
Avoid use of double constructor of BigDecimal
marschall Dec 31, 2016
f7d1260
Remove use of Boolean constructors
marschall Dec 31, 2016
db7b74f
Implement MessagingException.toString()
garyrussell Jan 4, 2017
e9a87de
LinkedCaseInsensitiveMap provides case-insensitive keySet again
jhoeller Jan 12, 2017
de7eea4
GenericTableMetaDataProvider falls back to single schema as default
jhoeller Jan 12, 2017
2f2ef00
BeanDefinitionBuilder supports factory method on factory bean
jhoeller Jan 12, 2017
5afc3a3
Map resolution for multiple beans applies to plain Map interface decl…
jhoeller Jan 12, 2017
72a7636
AbstractMessageSource does not attempt to format code-as-default-message
jhoeller Jan 12, 2017
de611cb
SpringValidatorAdapter properly handles HV-5-style list constraint vi…
jhoeller Jan 12, 2017
c5500b2
MockHttpServletRequestBuilder supports multiple locales
jhoeller Jan 12, 2017
5982f73
Improve performance of StringUtils.capitalize()
jhoeller Jan 12, 2017
cc53d59
MySQLMaxValueIncrementer supports "useNewConnection" mode for INNODB …
jhoeller Jan 12, 2017
8b96009
Introduce media types for application/rss+xml
jhoeller Jan 12, 2017
70a980d
Polishing
jhoeller Jan 12, 2017
0b81340
Upgrade to Joda-Time 2.9.7
jhoeller Jan 12, 2017
1521094
MimeTypeUtils constants cleanup: deprecated web media types
jhoeller Jan 12, 2017
7f12730
Polishing
jhoeller Jan 12, 2017
cce8471
MockHttpServletRequestBuilder reliably detects form body content type…
jhoeller Jan 16, 2017
24ebd15
Introspect FactoryBean class declaration if no early instantiation po…
jhoeller Jan 16, 2017
0655d73
SimpleApplicationEventMulticaster defensively handles ClassCastExcept…
jhoeller Jan 16, 2017
8656e30
Revised InvocableHandlerMethod exception messages (controller vs endp…
jhoeller Jan 16, 2017
8c62a2f
Polishing
jhoeller Jan 16, 2017
53e2d7d
Upgrade to Objenesis 2.5
jhoeller Jan 16, 2017
d1c0ea7
Set MockSessionCookieConfig#maxAge default to -1
vpavic Jan 16, 2017
f79baec
Polishing
jhoeller Jan 16, 2017
caebe72
Proper resolution of Optional.empty() for header arguments
jhoeller Jan 17, 2017
28c7f65
Add SNI support in Netty4ClientHttpRequestFactory
bclozel Jan 17, 2017
391ebc8
Correct reference to XJC classpath
jhoeller Jan 17, 2017
6deccf1
Reference documentation for Groovy bean definition DSL
jhoeller Jan 17, 2017
315698b
Clarified cookieMaxAge default
jhoeller Jan 17, 2017
d92f697
Remove outdated groovy-bean-definition-dsl id in whats-new
jhoeller Jan 17, 2017
48f57e3
Explicitly manage event loop in Reactor2TcpStompClient
rstoyanchev Jan 17, 2017
64d4afa
SimpleApplicationEventMulticaster defensively swallows ClassCastExcep…
jhoeller Jan 17, 2017
4beeeb8
ContentCachingRequestWrapper supports content cache limit
jhoeller Jan 17, 2017
801b93a
Clarify WebContentInterceptor path mappings and efficiently match them
jhoeller Jan 17, 2017
fcead67
Add locking to AbstractRequestExpectationManager
rstoyanchev Jan 17, 2017
75daf78
Well-known names for beans in message broker XML config
rstoyanchev Jan 17, 2017
77bb7e6
Add accessor methods to HttpPutFormContentFilter
rstoyanchev Jan 17, 2017
ffb2959
Polishing
jhoeller Jan 17, 2017
09c5958
Polishing
jhoeller Jan 17, 2017
78a23be
Polish Reactor2TcpStompClient
rstoyanchev Jan 18, 2017
35b67a5
Upgrade to Tomcat 8.5.11
bclozel Jan 20, 2017
f9a4856
Backport log4j doc improvements
snicoll Jan 20, 2017
c8b0ff2
Add ExpectedCount#never()
rstoyanchev Jan 20, 2017
70a1ecb
Documentation update related to Reactor version
rstoyanchev Jan 23, 2017
4f690ee
Drop classes folder (accidentally added in 35b67a5)
jhoeller Jan 23, 2017
155bbb8
Clear nonAnnotatedClasses cache in afterSingletonsInstantiated
jhoeller Jan 23, 2017
f7c3b81
Only expose ASM-driven method order if the methods match
jhoeller Jan 23, 2017
9b221f5
Document further configuration class restrictions
jhoeller Jan 23, 2017
9e4d74c
Consider abstract classes with @Lookup methods as candidate components
jhoeller Jan 23, 2017
fb31919
DispatcherServet.checkMultipart considers MultipartException cause as…
jhoeller Jan 23, 2017
2024b37
HiddenHttpMethodFilter defensively proceeds with original request in …
jhoeller Jan 23, 2017
bddcc66
WebSocketSession.getExtensions consistently exposes unmodifiable/empt…
jhoeller Jan 23, 2017
fcfacd9
Polishing
jhoeller Jan 23, 2017
e2d06ea
Deprecate outdated abstractions/delegates in core/util
jhoeller Jan 23, 2017
4af6d58
Upgrade to Objenesis 2.5.1
jhoeller Jan 23, 2017
b97e7d5
Revised CookieLocaleResolver parse exception handling
jhoeller Jan 24, 2017
3304efd
Consistent type variable resolution for arrays/collections (in partic…
jhoeller Jan 24, 2017
a98a618
HandlerMethod pre-resolves parameter types at construction time
jhoeller Jan 25, 2017
b386be1
Next Development Version
spring-builds Jan 25, 2017
28849e0
Revisit Assert to avoid single-arg assert methods (with refined messa…
jhoeller Jan 30, 2017
b40f016
Latest dependency updates (OkHttp 3.6, Apache HttpClient 4.5.3)
jhoeller Jan 31, 2017
e3be94c
Add headers in InterceptingClientHttpRequest
jhoeller Jan 31, 2017
8207c53
Polishing
jhoeller Jan 31, 2017
3ef6697
Refined assertion messages
jhoeller Jan 31, 2017
dec1c93
SettableListenableFuture consistently tracks cancellation state
jhoeller Jan 31, 2017
e3cd5c8
SettableListenableFuture centralizes state in ListenableFutureTask su…
jhoeller Feb 2, 2017
d401057
MockHttpServletRequest returns empty BufferedReader in case of no con…
jhoeller Feb 2, 2017
6014ca9
ServletRequestMethodArgumentResolver validates argument type match
jhoeller Feb 2, 2017
d5daa8e
Skip default Content-Length if Transfer-Encoding header has been set
jhoeller Feb 2, 2017
e038631
Support for read-only transactions through explicit SET TRANSACTION s…
jhoeller Feb 2, 2017
c15d687
Polishing
jhoeller Feb 2, 2017
1fcb260
Honour ErrorHandler if `Cache.put` fails
dbrimley Jan 11, 2017
15b174a
Polish contribution
snicoll Feb 6, 2017
dde9e27
Polish
snicoll Feb 6, 2017
56abc4a
Fix Javadoc in ContentResultMatchers
msysyamamoto Feb 9, 2017
e80c251
Update copyright header
snicoll Feb 9, 2017
941f3e7
Clear synchronization before triggering afterCompletion callbacks
jhoeller Feb 10, 2017
d6216fb
Consistent logging in ignoreResourceNotFound scenarios
jhoeller Feb 10, 2017
da7d79b
Test for ObjectFactory injection at constructor level
jhoeller Feb 10, 2017
eff285e
MockHttpServletRequest exposes "HTTP/1.1" as default protocol
jhoeller Feb 10, 2017
5f90a7e
Delegate to common ClassUtils.getQualifiedName
jhoeller Feb 10, 2017
6e93834
Correct explanation of example patterns
jhoeller Feb 10, 2017
5017c05
Polishing
jhoeller Feb 10, 2017
e24c530
Upgrade to Undertow 1.3.27
jhoeller Feb 10, 2017
08b9e7b
Avoid duplicate Content-Length headers in Netty client
bclozel Feb 13, 2017
7d7c5c9
Fix typo
hengyunabc Feb 14, 2017
4f52174
Update copyright header
snicoll Feb 14, 2017
4d2360e
Defensively ignore multipart parsing failure in case of error dispatch
jhoeller Feb 13, 2017
0623172
Consistently support CompletionStage next to CompletableFuture
jhoeller Feb 15, 2017
860e2bc
Revised isInstanceOf/isAssignable message concatenation
jhoeller Feb 16, 2017
c3cc42d
Avoid double encoding of URIs
jhoeller Feb 16, 2017
7ed4884
Recent dialects for MySQL and SQL Server (as far as possible in 4.3.x)
jhoeller Feb 16, 2017
b0ef80c
Polishing
jhoeller Feb 16, 2017
6417ed4
Latest dependency updates (Apache HttpAsyncClient 4.1.3, BeanShell 2.…
jhoeller Feb 16, 2017
427fd9b
OracleTableMetaDataProvider tries Connection.unwrap as well
jhoeller Feb 16, 2017
dfa8a7c
Polishing
jhoeller Feb 16, 2017
7879bdf
Fix compilation of SpEL elvis/ternary expressions
aclement Feb 6, 2017
9834c42
MutableMessageHeaders serializes itself as regular MessageHeaders
jhoeller Feb 17, 2017
0f71f58
Polishing
jhoeller Feb 17, 2017
45b27a8
Ignore HEAD requests in ShallowEtagHeaderFilter
bclozel Feb 20, 2017
fd568f3
Improve allowNullValue handling when a null value is provided
snicoll Feb 20, 2017
278199d
Revert "Improve allowNullValue handling when a null value is provided"
snicoll Feb 20, 2017
f117b80
ServletRequestMethodArgumentResolver passes null references through (…
jhoeller Feb 20, 2017
35e37f6
Polishing
jhoeller Feb 20, 2017
f1133a8
Upgrade to Hibernate ORM 5.2.8
jhoeller Feb 20, 2017
ba0484f
Add equals/hashcode for STOMP Subscription
rstoyanchev Feb 21, 2017
34a0857
Polishing
jhoeller Feb 21, 2017
1db4208
Use String#isEmpty()
stonio Feb 21, 2017
e5010a8
Test for expected behavior of getAllMergedAnnotations vs findAllMerge…
jhoeller Feb 22, 2017
a48a956
ConfigurationClassEnhancer explicitly handles non-interceptable Facto…
jhoeller Feb 22, 2017
c734c3a
Polishing
jhoeller Feb 22, 2017
e6a51e3
Upgrade to Jackson 2.8.7
jhoeller Feb 22, 2017
e9de3bb
Fix wrong access modifier in MockMvc standalone setup
rstoyanchev Feb 23, 2017
d69fb06
Skip transaction/caching metadata retrieval for java.lang.Object methods
jhoeller Feb 28, 2017
ce3cf32
Tests for annotation lookups in interfaces (currently ignored for CGL…
jhoeller Feb 28, 2017
b945e0f
Polishing
jhoeller Feb 28, 2017
c3f1313
Upgrade to Groovy 2.4.9
jhoeller Feb 28, 2017
42561df
Release version 4.3.7.RELEASE
spring-builds Mar 1, 2017
4555cf5
JRuby fixed object access, message is private, switched to getMessage()
wltjr Mar 3, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 4 additions & 5 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,15 +88,14 @@ present in the framework.
1. Preserve existing formatting; i.e. do not reformat code for its own sake
1. Search the codebase using `git grep` and other tools to discover common
naming conventions, etc.
1. Latin-1 (ISO-8859-1) encoding for Java sources; use `native2ascii` to convert
if necessary
1. UTF-8 encoding for Java sources


### Add Apache license header to all new classes

```java
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -124,11 +123,11 @@ modified a file in 2015 whose header still reads:
* Copyright 2002-2011 the original author or authors.
```

Then be sure to update it to 2015 accordingly:
Then be sure to update it to 2016 accordingly:

```java
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2016 the original author or authors.
```

### Use @since tags for newly-added public API types and methods
Expand Down
Loading