Commit Graph

374 Commits

Author SHA1 Message Date
Norman Maurer
c668469d3c [maven-release-plugin] prepare for next development iteration 2015-07-21 09:50:59 +02:00
Norman Maurer
22fcfe7c94 [maven-release-plugin] prepare release netty-3.9.9.Final 2015-07-21 09:50:53 +02:00
Norman Maurer
a227f9e93e [maven-release-plugin] prepare for next development iteration 2015-05-08 16:58:03 +02:00
Norman Maurer
e9c8d38db7 [maven-release-plugin] prepare release netty-3.9.8.Final 2015-05-08 16:57:58 +02:00
Norman Maurer
ef3a31d6ab [maven-release-plugin] prepare for next development iteration 2015-05-08 10:21:13 +02:00
Norman Maurer
4e7c962aa3 [maven-release-plugin] prepare release netty-3.9.7.Final 2015-05-08 10:21:08 +02:00
Trustin Lee
c44c5a0453 [maven-release-plugin] prepare for next development iteration 2014-12-17 13:07:25 +09:00
Trustin Lee
f2fdcc9d4f [maven-release-plugin] prepare release netty-3.9.6.Final 2014-12-17 13:07:17 +09:00
Trustin Lee
55c2701120 Work around the Javadoc failure in JDK 8
Motivation:

Since JDK 1.8, javadoc has enabled a new feature called 'doclint', which
fails the build when javadoc has markup problems and more.

Modifications:

Do not fail the build until we fix our API documentation.

Result:

No more build failure because of malformed Javadoc
2014-11-12 01:10:05 +09:00
Trustin Lee
d708a13d67 Rename from 'The Netty project' to 'Netty'
Motivation:

Sonar uses the project name in the pom.xml as the project name. (no pun
intended) 4.x and master uses 'Netty' as the project name, so we should
be consistent.

Modifications:

Rename the project from 'The Netty project' to 'Netty'

Result:

Prettier SonarQube result
2014-11-03 20:12:16 +09:00
Trustin Lee
b804c9c34f [maven-release-plugin] prepare for next development iteration 2014-10-30 19:59:35 +09:00
Trustin Lee
977692b19b [maven-release-plugin] prepare release netty-3.9.5.Final 2014-10-30 19:59:19 +09:00
Trustin Lee
ee168cc97c Fix build issues
Motivation:

When a the surefire plugin launches a new JVM, it does not specify any
limit on its maximum heap size.  In a machine with less RAM, this is a
problem because it often tries to consume too much RAM.

Modifications:

- Specify -Xmx256m option when running a test
- Fix a build failure due to the outdated APIviz

Result:

Higher build stability
2014-10-30 17:59:38 +09:00
Frederic Bregier
bbbcb9a706 V3.9 - Fix "=" character in HttpPostRequestDecoder
Motivation
Issue #3004 shows that "=" character was not supported as it should in
the HttpPostRequestDecoder in form-data boundary.

Modifications:
Add 2 methods in StringUtil

split with maxParm argument: String split with max parts only (to prevent multiple '=' to
be source of extra split while not needed)
substringAfter: String part after delimiter (since first part is not needed)
Use those methods in HttpPostRequestDecoder. Change and the
HttpPostRequestDecoderTest to check using a boundary beginning with "=".

Results:
The fix implies more stability and fix the issue.
2014-10-22 14:07:29 +09:00
Trustin Lee
7569aa6404 [maven-release-plugin] prepare for next development iteration 2014-08-26 17:16:17 +09:00
Trustin Lee
79c0e1ee6b [maven-release-plugin] prepare release netty-3.9.4.Final 2014-08-26 17:16:10 +09:00
Trustin Lee
50c948cce3 [maven-release-plugin] prepare for next development iteration 2014-08-06 11:54:18 -07:00
Trustin Lee
617d376dc0 [maven-release-plugin] prepare release netty-3.9.3.Final 2014-08-06 11:54:14 -07:00
Lin Gao
e43df3dd30 Update dependency from org.jboss.logging:jboss-logging-spi:2.1.2.GA to org.jboss.logging:jboss-logging:3.1.4.GA 2014-07-02 15:10:53 +09:00
Norman Maurer
764e95d34d [maven-release-plugin] prepare for next development iteration 2014-06-11 11:16:21 +02:00
Norman Maurer
3ca6c4d938 [maven-release-plugin] prepare release netty-3.9.2.Final 2014-06-11 11:16:16 +02:00
Trustin Lee
ac17fa081b Require Maven 3.1.1 or above
.. because the build fails with an older Maven version due to Eclipse
Aether issues
2014-06-04 03:16:34 +09:00
Trustin Lee
18264346f6 Upgrade to netty-tcnative 1.1.30.Fork2 to support Windows 2014-05-28 10:55:03 +09:00
Trustin Lee
f97e81c305 Upgrade os-maven-plugin to fix an issue with IntelliJ IDEA on Windows 2014-05-27 04:40:58 +09:00
Trustin Lee
9ab8898db1 Use a forked exec-maven-plugin instead of maven-antrun-plugin
Motivation:

maven-antrun-plugin does not redirect stdin, and thus it's impossible to
run interactive examples such as securechat-client and telnet-client.
org.codehaus.mojo:exec-maven-plugin redirects stdin, but it buffers
stdout and stderr, and thus an application output is not flushed timely.

Modifications:

Deploy a forked version of exec-maven-plugin which flushes output
buffers in a timely manner.

Result:

Interactive examples work.  Launches faster than maven-antrun-plugin.
2014-05-23 20:09:15 +09:00
Trustin Lee
500ba1c724 Hide unwanted debug logs and warnings from Maven plugins 2014-05-22 18:31:43 +09:00
Trustin Lee
5c7581ed9f Use maven-antrun-plugin instead of exec-maven-plugin
Motivation:

exec-maven-plugin does not flush stdout and stderr, making the console
output from the examples invisible to users

Modification:

Use maven-antrun-plugin instead

Result:

A user sees the output from the examples immediately.
2014-05-22 18:24:52 +09:00
Trustin Lee
ba28679775 Clean up the examples
Motivation:

The examples have not been updated since long time ago, showing various
issues fixed in this commit.

Modifications:

- Overall simplification to reduce LoC
  - Use system properties to get options instead of parsing args.
  - Minimize option validation
  - Just use System.out/err instead of Logger
  - Do not pass config as parameters - just access it directly
  - Move the main logic to main(String[]) instead of creating a new
    instance meaninglessly
    - Update netty-build-21 to make checkstyle not complain
  - Remove 'throws Exception' clause if possible
- Line wrap at 120 (previously at 80)
- Add an option to enable SSL for most examples
- Use ChannelFuture.sync() instead of await()
- Use System.out for the actual result. Use System.err otherwise.
- Delete examples that are not very useful:
  - websocket/html5
  - websocketx/sslserver
  - localecho/multithreaded
- Add run-example.sh which simplifies launching an example from command
  line

Result:

Shorter and simpler examples.  A user can focus more on what it actually
does than miscellaneous stuff.  A user can launch an example very
easily.
2014-05-22 17:52:23 +09:00
Trustin Lee
8672603a1d Add unified NextProtoNego extension support to SslContext
Motivation:

- OpenSslEngine and JDK SSLEngine (+ Jetty NPN) have different APIs to
  support NextProtoNego extension.
  - It is impossible to configure NPN with SslContext when the provider
    type is JDK.

Modification:

- Implement NextProtoNego extension by overriding the behavior of
  SSLSession.getProtocol() for both OpenSSLEngine and JDK SSLEngine.
  - SSLEngine.getProtocol() returns a string delimited by a colon (':')
    where the first component is the transport protosol (e.g. TLSv1.2)
    and the second component is the name of the application protocol
- Remove the direct reference of Jetty NPN classes from the examples
- Add SslContext.newApplicationProtocolSelector

Result:

- A user can now use both JDK SSLEngine and OpenSslEngine for NPN-based
  protocols such as HTTP2 and SPDY
2014-05-21 17:38:52 +09:00
Trustin Lee
1295c22469 Update os-maven-plugin again to address an IDEA integration issue 2014-05-19 01:31:46 +09:00
Trustin Lee
30a2956398 Upgrade os-maven-plugin to the latest version 2014-05-18 17:31:55 +09:00
Trustin Lee
cb4020d4be Provide convenient universal API to enable SSL/TLS
Motivation:

Although 4cff4b99fd introduced
OpenSslEngine and its helper classes, a user has to write two different
copies of SSL initialization code that does pretty much same job,
because the initialization procedure between JDK SSLEngine and
OpenSslEngine are different.

Modifications:

- Replace OpenSslContextBuilder with SslContext which provides the
  unified API for creating an SSL context
  - SslContext allows you to create a new SSLEngine or a new SslHandler
    with your PKCS#8 key and X.509 certificate chain.
- Merge OpenSslBufferPool into SslBufferPool
  - Add an option to preallocate the pool
  - Add an option to allocate direct buffers
  - When OpenSSL is in use, preallocate direct buffers, which is close
    to what OpenSslBufferPool does.
- Add JdkSslContext which is a simple wrapper of JDK's SSLContext
  - The specified PKCS#8 key and X.509 certificate chain are converted
    to JDK KeyStore in instantiation time.
  - Like OpenSslServerContext, it uses sensible default cipher suites now.
- A user does not specify certPath and caPath separately anymore. He or
  she has to merge them into a single file.  I find this more logical
  because previously ca file's first entry and cert file were always same.
- Clean up SSL tests to demonstrate the advantage of this change
  - AbstractSocketSsl*Test now uses SslContext.new*Context() to
    configure both the client and the server side.  We did this only for
    the server side previously and had to use different certificates for
    JDK SSLEngine and OpenSslEngine, but not anymore.
- Add ApplicationProtocolSelector to ensure the future support for NPN
  (NextProtoNego) and ALPN (Application Layer Protocol Negotiation) on
  the client-side.
- Add SimpleTrustManagerFactory to help a user write a
  TrustManagerFactory easily, which should be useful for those who need
  to write an alternative verification mechanism. For example, we can
  use it to implement an unsafe TrustManagerFactory that accepts
  self-signed certificates for testing purposes.
- Add InsecureTrustManagerFactory and FingerprintTrustManager for quick
  and dirty testing
- Add SelfSignedCertificate class which generates a self-signed X.509
  certificate very easily.
- Update all our examples to use SslContext.newClient/ServerContext()
- Found that OpenSslEngine performs unnecessary memory copy - optimized
  it.
- SslHandler now logs the chosen cipher suite when handshake is
  finished.

Result:

- Cleaner unified API for configuring an SSL client and an SSL server
  regardless of its internal implementation.
- When native libraries are available, OpenSSL-based SSLEngine
  implementation is selected automatically to take advantage of its
  performance benefit.
- Examples take advantage of this modification and thus are cleaner.
2014-05-17 19:40:48 +09:00
Trustin Lee
4cff4b99fd Add OpenSslEngine
Motivation:

Some users already use an SSLEngine implementation in finagle-native. It
wraps OpenSSL to get higher SSL performance.  However, to take advantage
of it, finagle-native must be compiled manually, and it means we cannot
pull it in as a dependency and thus we cannot test our SslHandler
against the OpenSSL-based SSLEngine.  For an instance, we had #2216.

Modifications:

- Pull netty-tcnative in as an optional dependency.
  http://netty.io/wiki/forked-tomcat-native.html
- Backport NativeLibraryLoader from 4.0
- Move OpenSSL-based SSLEngine implementation into our code base.
  - Copied from finagle-native; originally written by @jpinner et al.
  - Overall cleanup by @trustin.
- Run all SslHandler tests with both default SSLEngine and OpenSslEngine
2014-05-13 19:04:54 +09:00
Trustin Lee
b954f6e85d Upgrade netty-build to 20
- Preparation for merging openssl branch
- Also upgrade oss-parent to the latest version
2014-05-07 22:47:56 +09:00
Norman Maurer
00bf5eb898 [maven-release-plugin] prepare for next development iteration 2014-04-30 15:46:20 +02:00
Norman Maurer
1e4fa0565a [maven-release-plugin] prepare release netty-3.9.1.Final 2014-04-30 15:46:14 +02:00
Trustin Lee
fc9a794613 [maven-release-plugin] prepare for next development iteration 2013-12-22 19:45:29 +09:00
Trustin Lee
a06d4dddd5 [maven-release-plugin] prepare release netty-3.9.0.Final 2013-12-22 19:45:19 +09:00
Trustin Lee
1fc171b58d [maven-release-plugin] prepare for next development iteration 2013-11-07 18:18:42 +09:00
Trustin Lee
6e67ddeed7 [maven-release-plugin] prepare release netty-3.8.0.Final 2013-11-07 18:18:34 +09:00
Trustin Lee
cc9c7d1607 Bump the version number to 3.8.0.Final 2013-10-17 20:31:19 +09:00
Trustin Lee
df97732483 [maven-release-plugin] prepare for next development iteration 2013-09-05 23:14:49 +09:00
Trustin Lee
5b2cb54bb6 [maven-release-plugin] prepare release netty-3.7.0.Final 2013-09-05 23:14:39 +09:00
Trustin Lee
e0aabbddf2 Next version will be 3.7.0.Final 2013-06-25 11:08:33 +09:00
Norman Maurer
7364317a01 [maven-release-plugin] prepare for next development iteration 2013-05-15 08:04:54 +02:00
Norman Maurer
90e1eb23ea [maven-release-plugin] prepare release netty-3.6.6.Final 2013-05-15 08:04:43 +02:00
Norman Maurer
524007efe0 [maven-release-plugin] prepare for next development iteration 2013-04-09 10:18:55 +02:00
Norman Maurer
1ad09202c9 [maven-release-plugin] prepare release netty-3.6.5.Final 2013-04-09 10:18:47 +02:00
Trustin Lee
08ec96e4f4 [maven-release-plugin] prepare for next development iteration 2013-04-05 09:21:17 +09:00
Trustin Lee
06418640a1 [maven-release-plugin] prepare release netty-3.6.4.Final 2013-04-05 09:21:05 +09:00