Skip to content

Latest commit

 

History

History
161 lines (99 loc) · 4.17 KB

Notes.org

File metadata and controls

161 lines (99 loc) · 4.17 KB

xio 0.13.0

must have

open tracing

  • [X] setup openzipkin/brave
  • Proper integration with opentracing might have to wait as it appears that they are engaged in some serious bikeshedding.

set proper semantic tags

move concrete trailhead classes into http package

streamline ssl usage

  • server
    • [X] by default secure http connections unless configured not to
    • [X] use http 426 to inform cleartext clients that they need to secure
    • [X] use alpn to negotiate http protocol
  • client
    • [X] by default secure http connections unless configured not to
  • [X] fix performance issues with xio ssl
  • [X] fail fast if OpenSsl is not available

nice to have

clean up test data in reference.conf, etc.

better openzipkin/brave integration

custom CurrentTraceContext

better thread state management

remove dead build tools

clean up javadoc linting errors

add http Recipes

  • [X] copy recipes over from xrpc

hide netty http traps in http Recipes

better usage of findbugs annotations

bump checkstyle version and setup maven to checkstyle

clean up links to google styleguide

stop vendoring style guide

InetSocketAddress fixed in java7 update

use getHostString instead of getAddress().getHostName()

Naming conventions

  • Put Xio in front of a class name to avoid clashing with an existing class name
    • good example XioServerBootstrap uses netty ServerBootstrap
    • bad example XioBasePipeline doesn’t use anything called BasePipeline and does not clash

package naming conventions

  • com.xjeffrose.xio
    • core: put common classes here
      • client: base classes for clients here
      • server: base classes for servers here
    • http: put http common classes here
      • client: http classes for clients here
      • server: http classes for servers here

speeding up maven invocation

drip

brew install drip

~/.mavenrc

JAVACMD=/usr/local/bin/drip
JAVA_HOME="$(/usr/libexec/java_home)"
MAVEN_OPTS="-ea -Xmx512m"

JVM startup time appears to be negligable

maven jvm options per project

project

use phabricator?

Hocon and Config docs

ontology

think about classifying the semantics of traffic replay

PEM/ASN.1

Creating pkcs8 private key pem files

openssl pkcs8 -in foo.pem -inform PEM -outform PEM -out pkcs8.pem -topk8 -passout pass: -nocrypt

various http/2 and ssl notes

HSTS isn’t going to help us unless we’re dealing with browsers:

Server can force client to upgrade with 426

JDK doesn’t do ALPN

ALPN allows the server to upgrade the request to http/2 after TLS has been negotiated.

http/1.1 allows for an upgrade header

http implementation guidelines

java source code formatting

google java style formatter

diff/merge clutter

diamond operators

javadoc generation

java imports sorting

channel future listener -> lambda