├── CHANGELOG.md
├── docs
├── mkdocs.yml
└── images
│ ├── netifi.png
│ └── proteus.png
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── proteus-client
├── gradle
│ └── dependency-locks
│ │ ├── protobuf.lockfile
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── protobufToolsLocator_protoc.lockfile
│ │ ├── testProtobuf.lockfile
│ │ ├── protobufToolsLocator_rsocketRpc.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── compile.lockfile
│ │ └── compileClasspath.lockfile
└── src
│ ├── test
│ ├── resources
│ │ └── log4j2.xml
│ └── proto
│ │ └── io
│ │ └── netifi
│ │ └── proteus
│ │ └── testing
│ │ └── protobuf
│ │ └── simpleservice.proto
│ └── main
│ └── java
│ └── io
│ └── netifi
│ └── proteus
│ ├── rsocket
│ ├── ProteusSocket.java
│ ├── transport
│ │ └── BrokerAddressSelectors.java
│ ├── UnwrappingRSocket.java
│ ├── AbstractUnwrappingRSocket.java
│ └── WeightedRSocket.java
│ └── ProteusBrokerService.java
├── proteus-tracing-idl
├── gradle
│ └── dependency-locks
│ │ ├── compile.lockfile
│ │ ├── testProtobuf.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── protobuf.lockfile
│ │ ├── testCompile.lockfile
│ │ └── testCompileClasspath.lockfile
├── build.gradle
└── src
│ └── main
│ └── proto
│ └── proteus
│ └── tracing.proto
├── proteus-vizceral-idl
├── gradle
│ └── dependency-locks
│ │ ├── compile.lockfile
│ │ ├── testProtobuf.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── protobuf.lockfile
│ │ ├── testCompile.lockfile
│ │ └── testCompileClasspath.lockfile
├── build.gradle
└── src
│ └── main
│ └── proto
│ └── proteus
│ └── vizceral.proto
├── proteus-auth
├── gradle
│ └── dependency-locks
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── testCompileClasspath.lockfile
│ │ └── testRuntimeClasspath.lockfile
├── src
│ ├── test
│ │ ├── resources
│ │ │ └── log4j2.xml
│ │ └── java
│ │ │ └── io
│ │ │ └── netifi
│ │ │ └── proteus
│ │ │ └── auth
│ │ │ └── hashing
│ │ │ └── PBKDF2WithHmacSHA1AccessTokenHasherTest.java
│ └── main
│ │ └── java
│ │ └── io
│ │ └── netifi
│ │ └── proteus
│ │ └── auth
│ │ ├── hashing
│ │ ├── AccessTokenHashType.java
│ │ ├── AccessTokenHasher.java
│ │ └── PBKDF2WithHmacSHA1AccessTokenHasher.java
│ │ ├── exception
│ │ └── AuthenticationDeniedException.java
│ │ └── SessionUtil.java
└── build.gradle
├── proteus-broker-info-idl
├── gradle
│ └── dependency-locks
│ │ ├── compile.lockfile
│ │ ├── testProtobuf.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── protobuf.lockfile
│ │ ├── testCompile.lockfile
│ │ └── testCompileClasspath.lockfile
└── build.gradle
├── proteus-broker-mgmt-idl
├── gradle
│ └── dependency-locks
│ │ ├── compile.lockfile
│ │ ├── protobuf.lockfile
│ │ ├── testProtobuf.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── testCompile.lockfile
│ │ └── testCompileClasspath.lockfile
├── build.gradle
└── src
│ └── main
│ └── proto
│ └── proteus
│ └── cluster_mgmt.proto
├── proteus-common
├── gradle
│ └── dependency-locks
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── testCompileClasspath.lockfile
│ │ └── testRuntimeClasspath.lockfile
├── src
│ ├── main
│ │ └── java
│ │ │ └── io
│ │ │ └── netifi
│ │ │ └── proteus
│ │ │ └── common
│ │ │ ├── stats
│ │ │ ├── Quantile.java
│ │ │ ├── Median.java
│ │ │ └── Ewma.java
│ │ │ ├── time
│ │ │ └── Clock.java
│ │ │ └── tags
│ │ │ ├── Tag.java
│ │ │ └── ImmutableTag.java
│ └── jmh
│ │ └── java
│ │ └── io
│ │ └── netifi
│ │ └── proteus
│ │ └── common
│ │ └── stats
│ │ ├── EwmaPerf.java
│ │ └── QuantilePerf.java
├── build.gradle
└── jmh.gradle
├── proteus-frames
├── gradle
│ └── dependency-locks
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── testCompileClasspath.lockfile
│ │ └── testRuntimeClasspath.lockfile
├── build.gradle
└── src
│ ├── test
│ └── java
│ │ └── io
│ │ └── netifi
│ │ └── proteus
│ │ └── frames
│ │ ├── FrameHeaderFlyweightTest.java
│ │ ├── BroadcastFlyweightTest.java
│ │ ├── GroupFlyweightTest.java
│ │ ├── BrokerSetupFlyweightTest.java
│ │ └── ShardFlyweightTest.java
│ └── main
│ └── java
│ └── io
│ └── netifi
│ └── proteus
│ └── frames
│ ├── FrameType.java
│ ├── AuthorizationWrapperFlyweight.java
│ └── FrameHeaderFlyweight.java
├── proteus-metrics-influx
├── gradle
│ └── dependency-locks
│ │ ├── testProtobuf.lockfile
│ │ ├── annotationProcessor.lockfile
│ │ ├── protobuf.lockfile
│ │ ├── protobufToolsLocator_protoc.lockfile
│ │ ├── protobufToolsLocator_rsocketRpc.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── compile.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── testCompile.lockfile
│ │ └── testCompileClasspath.lockfile
├── src
│ └── main
│ │ └── resources
│ │ └── log4j2.xml
└── build.gradle
├── proteus-tracing-openzipkin
├── gradle
│ └── dependency-locks
│ │ ├── protobuf.lockfile
│ │ ├── testProtobuf.lockfile
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── protobufToolsLocator_protoc.lockfile
│ │ ├── protobufToolsLocator_rsocketRpc.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── compile.lockfile
│ │ └── compileClasspath.lockfile
├── src
│ ├── main
│ │ ├── resources
│ │ │ └── log4j2.xml
│ │ └── java
│ │ │ └── io
│ │ │ └── netifi
│ │ │ └── proteus
│ │ │ └── tracing
│ │ │ └── ProteusTracerSupplier.java
│ └── test
│ │ └── resources
│ │ └── zipkin_trace.json
└── build.gradle
├── proteus-discovery
├── gradle
│ └── dependency-locks
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── testCompileClasspath.lockfile
│ │ └── testRuntimeClasspath.lockfile
├── build.gradle
└── src
│ └── main
│ └── java
│ └── io
│ └── netifi
│ └── proteus
│ └── discovery
│ ├── DiscoveryConfig.java
│ ├── DiscoveryStrategy.java
│ └── StaticListDiscoveryStrategy.java
├── proteus-metrics-micrometer
├── gradle
│ └── dependency-locks
│ │ ├── testProtobuf.lockfile
│ │ ├── annotationProcessor.lockfile
│ │ ├── protobuf.lockfile
│ │ ├── protobufToolsLocator_protoc.lockfile
│ │ ├── protobufToolsLocator_rsocketRpc.lockfile
│ │ ├── compile.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── testCompile.lockfile
│ │ └── testCompileClasspath.lockfile
├── src
│ └── main
│ │ ├── resources
│ │ └── log4j2.xml
│ │ └── java
│ │ └── io
│ │ └── netifi
│ │ └── proteus
│ │ └── micrometer
│ │ └── ProteusOperatingSystemMetrics.java
└── build.gradle
├── proteus-metrics-prometheus
├── gradle
│ └── dependency-locks
│ │ ├── testProtobuf.lockfile
│ │ ├── annotationProcessor.lockfile
│ │ ├── protobuf.lockfile
│ │ ├── protobufToolsLocator_protoc.lockfile
│ │ ├── protobufToolsLocator_rsocketRpc.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── compile.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── testCompile.lockfile
│ │ └── testCompileClasspath.lockfile
├── src
│ └── main
│ │ └── resources
│ │ └── log4j2.xml
└── build.gradle
├── proteus-discovery-aws
├── gradle
│ └── dependency-locks
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── testCompileClasspath.lockfile
│ │ └── testRuntimeClasspath.lockfile
└── build.gradle
├── proteus-discovery-consul
├── gradle
│ └── dependency-locks
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ ├── compileClasspath.lockfile
│ │ ├── testCompileClasspath.lockfile
│ │ └── testRuntimeClasspath.lockfile
└── build.gradle
├── proteus-discovery-kubernetes
├── gradle
│ └── dependency-locks
│ │ ├── annotationProcessor.lockfile
│ │ ├── testAnnotationProcessor.lockfile
│ │ ├── googleJavaFormat1.6.lockfile
│ │ └── compileClasspath.lockfile
└── build.gradle
├── resources
└── HEADER
├── settings.gradle
├── .travis.yml
├── gradle.properties
├── artifactory.gradle
├── README.md
├── bintray.gradle
├── ci
└── travis.sh
├── .gitignore
├── proteus-bom
└── README.md
└── gradlew.bat
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/mkdocs.yml:
--------------------------------------------------------------------------------
1 | site_name: Netifi Proteus Java
2 | repo_url: https://github.com/netifi/proteus-java
3 |
--------------------------------------------------------------------------------
/docs/images/netifi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netifi-proteus/proteus-java/HEAD/docs/images/netifi.png
--------------------------------------------------------------------------------
/docs/images/proteus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netifi-proteus/proteus-java/HEAD/docs/images/proteus.png
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/netifi-proteus/proteus-java/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-vizceral-idl/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-auth/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-broker-info-idl/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-common/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-frames/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-vizceral-idl/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-auth/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-broker-info-idl/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-common/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-frames/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery-aws/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery-aws/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery-consul/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery-consul/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery-kubernetes/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/annotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-discovery-kubernetes/gradle/dependency-locks/testAnnotationProcessor.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 |
--------------------------------------------------------------------------------
/proteus-common/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | javax.inject:javax.inject:1
5 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | javax.inject:javax.inject:1
5 |
--------------------------------------------------------------------------------
/proteus-vizceral-idl/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | javax.inject:javax.inject:1
5 |
--------------------------------------------------------------------------------
/proteus-broker-info-idl/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | javax.inject:javax.inject:1
5 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | javax.inject:javax.inject:1
5 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-vizceral-idl/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-broker-info-idl/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/protobufToolsLocator_protoc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protoc:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/testProtobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-protobuf-idl:0.2.13.3
5 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Dec 06 23:55:01 PST 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.2.1-all.zip
7 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-metrics-idl:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/protobufToolsLocator_protoc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protoc:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-metrics-idl:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/protobuf.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-metrics-idl:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/protobufToolsLocator_rsocketRpc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/protobufToolsLocator_protoc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protoc:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/protobufToolsLocator_protoc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protoc:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/protobufToolsLocator_protoc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protoc:3.6.1
5 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/protobufToolsLocator_rsocketRpc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/protobufToolsLocator_rsocketRpc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/protobufToolsLocator_rsocketRpc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/protobufToolsLocator_rsocketRpc.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
5 |
--------------------------------------------------------------------------------
/proteus-auth/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.netty:netty-buffer:4.1.31.Final
5 | io.netty:netty-common:4.1.31.Final
6 | javax.inject:javax.inject:1
7 |
--------------------------------------------------------------------------------
/proteus-discovery/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.projectreactor:reactor-core:3.2.6.RELEASE
5 | javax.inject:javax.inject:1
6 | org.reactivestreams:reactive-streams:1.0.2
7 | org.slf4j:slf4j-api:1.7.25
8 |
--------------------------------------------------------------------------------
/proteus-frames/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | io.netty:netty-buffer:4.1.31.Final
5 | io.netty:netty-common:4.1.31.Final
6 | io.projectreactor:reactor-core:3.2.6.RELEASE
7 | io.rsocket:rsocket-core:0.11.17.2
8 | javax.inject:javax.inject:1
9 | org.reactivestreams:reactive-streams:1.0.2
10 |
--------------------------------------------------------------------------------
/resources/HEADER:
--------------------------------------------------------------------------------
1 | Copyright 2019 The Proteus Authors
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'proteus-java'
2 |
3 | include 'proteus-auth'
4 | include 'proteus-broker-info-idl'
5 | include 'proteus-broker-mgmt-idl'
6 | include 'proteus-frames'
7 | include 'proteus-client'
8 | include 'proteus-common'
9 | include 'proteus-discovery'
10 | include 'proteus-discovery-aws'
11 | include 'proteus-discovery-consul'
12 | include 'proteus-discovery-kubernetes'
13 | include 'proteus-metrics-micrometer'
14 | include 'proteus-metrics-influx'
15 | include 'proteus-metrics-prometheus'
16 | include 'proteus-tracing-openzipkin'
17 | include 'proteus-tracing-idl'
18 | include 'proteus-vizceral-idl'
19 | include 'proteus-bom'
20 |
--------------------------------------------------------------------------------
/proteus-auth/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-common/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-discovery/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-frames/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-discovery-aws/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-discovery-consul/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-discovery-kubernetes/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/googleJavaFormat1.6.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.errorprone:javac-shaded:9+181-r4173-1
7 | com.google.googlejavaformat:google-java-format:1.6
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | org.checkerframework:checker-qual:2.5.2
13 | org.codehaus.mojo:animal-sniffer-annotations:1.17
14 |
--------------------------------------------------------------------------------
/proteus-auth/src/test/resources/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/proteus-client/src/test/resources/log4j2.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/proteus-auth/build.gradle:
--------------------------------------------------------------------------------
1 | description = 'Netifi Proteus Authentication Utilities'
2 |
3 | dependencies {
4 | compile project (':proteus-common')
5 | compile 'io.netty:netty-buffer'
6 |
7 | compileOnly 'javax.inject:javax.inject'
8 |
9 | testCompile 'junit:junit'
10 | testCompile 'javax.inject:javax.inject'
11 | testCompile 'io.projectreactor:reactor-test'
12 | testCompile "com.google.protobuf:protobuf-java"
13 | testCompile 'org.hdrhistogram:HdrHistogram'
14 | testCompile 'org.apache.logging.log4j:log4j-api'
15 | testCompile 'org.apache.logging.log4j:log4j-core'
16 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
17 | testCompile 'io.rsocket:rsocket-transport-netty'
18 | testCompile 'io.rsocket:rsocket-transport-local'
19 | testCompile 'org.mockito:mockito-core'
20 | }
--------------------------------------------------------------------------------
/proteus-frames/build.gradle:
--------------------------------------------------------------------------------
1 | description = 'Netifi Proteus Frames'
2 |
3 | dependencies {
4 | implementation project(':proteus-common')
5 | implementation 'io.rsocket:rsocket-core'
6 |
7 | compileOnly 'javax.inject:javax.inject'
8 |
9 | testCompile 'junit:junit'
10 | testCompile 'javax.inject:javax.inject'
11 | testCompile 'io.projectreactor:reactor-test'
12 | testCompile "com.google.protobuf:protobuf-java"
13 | testCompile 'org.hdrhistogram:HdrHistogram'
14 | testCompile 'org.apache.logging.log4j:log4j-api'
15 | testCompile 'org.apache.logging.log4j:log4j-core'
16 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
17 | testCompile 'io.rsocket:rsocket-transport-netty'
18 | testCompile 'io.rsocket:rsocket-transport-local'
19 | testCompile 'org.mockito:mockito-core'
20 | }
--------------------------------------------------------------------------------
/proteus-client/src/main/java/io/netifi/proteus/rsocket/ProteusSocket.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.rsocket;
17 |
18 | import io.rsocket.RSocket;
19 |
20 | public interface ProteusSocket extends RSocket {}
21 |
--------------------------------------------------------------------------------
/proteus-discovery/build.gradle:
--------------------------------------------------------------------------------
1 | description = 'Netifi Proteus Discovery Library'
2 |
3 | dependencies {
4 | implementation project(':proteus-common')
5 | implementation 'io.projectreactor:reactor-core'
6 | implementation 'org.slf4j:slf4j-api'
7 | compileOnly 'javax.inject:javax.inject'
8 |
9 | testCompile 'junit:junit'
10 | testCompile 'javax.inject:javax.inject'
11 | testCompile 'io.projectreactor:reactor-test'
12 | testCompile "com.google.protobuf:protobuf-java"
13 | testCompile 'org.hdrhistogram:HdrHistogram'
14 | testCompile 'org.apache.logging.log4j:log4j-api'
15 | testCompile 'org.apache.logging.log4j:log4j-core'
16 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
17 | testCompile 'io.rsocket:rsocket-transport-netty'
18 | testCompile 'io.rsocket:rsocket-transport-local'
19 | testCompile 'org.mockito:mockito-core'
20 | }
21 |
--------------------------------------------------------------------------------
/proteus-auth/src/main/java/io/netifi/proteus/auth/hashing/AccessTokenHashType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.auth.hashing;
17 |
18 | /** */
19 | public enum AccessTokenHashType {
20 | PBKDF2WithHmacSHA1
21 | }
22 |
--------------------------------------------------------------------------------
/proteus-discovery/src/main/java/io/netifi/proteus/discovery/DiscoveryConfig.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.discovery;
17 |
18 | public interface DiscoveryConfig {
19 | Class getDiscoveryStrategyClass();
20 | }
21 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | description = 'Netifi Proteus Tracing IDL'
4 |
5 | dependencies {
6 | protobuf "com.google.protobuf:protobuf-java"
7 | compileOnly 'javax.inject:javax.inject'
8 |
9 | testCompile 'junit:junit'
10 | testCompile 'javax.inject:javax.inject'
11 | testCompile 'io.projectreactor:reactor-test'
12 | testCompile "com.google.protobuf:protobuf-java"
13 | testCompile 'org.hdrhistogram:HdrHistogram'
14 | testCompile 'org.apache.logging.log4j:log4j-api'
15 | testCompile 'org.apache.logging.log4j:log4j-core'
16 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
17 | testCompile 'io.rsocket:rsocket-transport-netty'
18 | testCompile 'io.rsocket:rsocket-transport-local'
19 | testCompile 'org.mockito:mockito-core'
20 | }
21 |
22 | protobuf {
23 | protoc {
24 | artifact = "com.google.protobuf:protoc"
25 | }
26 | generateProtoTasks {
27 | all()*.enabled = false
28 | }
29 | }
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: java
2 | sudo: required
3 | jdk: oraclejdk8
4 | script: ci/travis.sh
5 | before_cache:
6 | - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
7 | notifications:
8 | email: false
9 | slack:
10 | secure: Cu+GeTIBNIXH+SCidpbtbU5C82K3Car8V2St47mJvxiI7spWvUm+LXWS1x8L8ylR2zE8lE3NYjSPCDVSOxBh3ixCE804Lasb6eAfQ4dZ0zUMCEZuKa/xfunN10y/ZrgTiclVF7dmfEkll0Jv48bJSSXBk0iArnbKb3HGKudPsTVLeJySNGbZXFx9+fkZRYXieh+V1R9aeKLFtiMzNk7IuLwb64fhAqYtEJXBmax47BZiH98vu8LjWeGvszAuXyzrCzeOOS713nPqoeA2RRa15YhasFZcPHQFduwY+yl8ljCqr3JKx5qjpi8LozWfH4BqDlo7WgaYFATts1d4A1lAnfBYrAbfiIxNyFuAVLzm2MjlqjkowVe7C5BBlfltmJQhD8ZQeKF3OWn/wq/VARGu55MvcjicVixM+vafzah0LJr511gEhvydSZnLnaoJvIP3JK5FASRokMQQ+qA4OS0wCdZxzvEea/KOZ+DnABGhA2BaJSNyetCB9Lbzmb0UeSdz8eKCRmV6JJrqFn/8mgkYDOlDo6CqsUa2iX73sPa0GOBIaNvRjbyaJMvxHdDuO8iM3WOcSB5iu/E+ep6mYqOrLfyrkX2aUlBbgP9Ld8/2Ayf33yW5YBjiPBe6R89DOuqYtImk7Sw6RDazXEicKyghtSufvjw5lG2dh/XG1RbupoE=
11 | cache:
12 | directories:
13 | - "$HOME/.gradle/caches/"
14 | - "$HOME/.gradle/wrapper/"
15 | - "$HOME/.m2"
16 |
--------------------------------------------------------------------------------
/proteus-auth/src/main/java/io/netifi/proteus/auth/exception/AuthenticationDeniedException.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.auth.exception;
17 |
18 | /** */
19 | public class AuthenticationDeniedException extends RuntimeException {
20 | @Override
21 | public synchronized Throwable fillInStackTrace() {
22 | return this;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/proteus-broker-info-idl/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | description = 'Netifi Proteus Broker Info IDL'
4 |
5 | dependencies {
6 | protobuf "com.google.protobuf:protobuf-java"
7 | compileOnly 'javax.inject:javax.inject'
8 |
9 | testCompile 'junit:junit'
10 | testCompile 'javax.inject:javax.inject'
11 | testCompile 'io.projectreactor:reactor-test'
12 | testCompile "com.google.protobuf:protobuf-java"
13 | testCompile 'org.hdrhistogram:HdrHistogram'
14 | testCompile 'org.apache.logging.log4j:log4j-api'
15 | testCompile 'org.apache.logging.log4j:log4j-core'
16 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
17 | testCompile 'io.rsocket:rsocket-transport-netty'
18 | testCompile 'io.rsocket:rsocket-transport-local'
19 | testCompile 'org.mockito:mockito-core'
20 | }
21 |
22 | protobuf {
23 | protoc {
24 | artifact = "com.google.protobuf:protoc"
25 | }
26 | generateProtoTasks {
27 | all()*.enabled = false
28 | }
29 | }
--------------------------------------------------------------------------------
/proteus-discovery-consul/build.gradle:
--------------------------------------------------------------------------------
1 | description = 'Netifi Proteus Discovery Library For Consul'
2 |
3 | dependencies {
4 | implementation project(':proteus-common')
5 | implementation project(':proteus-discovery')
6 | implementation 'com.orbitz.consul:consul-client:1.3.0'
7 | implementation 'io.projectreactor:reactor-core'
8 | implementation 'org.slf4j:slf4j-api'
9 | compileOnly 'javax.inject:javax.inject'
10 |
11 | testCompile 'junit:junit'
12 | testCompile 'javax.inject:javax.inject'
13 | testCompile 'io.projectreactor:reactor-test'
14 | testCompile "com.google.protobuf:protobuf-java"
15 | testCompile 'org.hdrhistogram:HdrHistogram'
16 | testCompile 'org.apache.logging.log4j:log4j-api'
17 | testCompile 'org.apache.logging.log4j:log4j-core'
18 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
19 | testCompile 'io.rsocket:rsocket-transport-netty'
20 | testCompile 'io.rsocket:rsocket-transport-local'
21 | testCompile 'org.mockito:mockito-core'
22 | }
23 |
--------------------------------------------------------------------------------
/proteus-discovery-kubernetes/build.gradle:
--------------------------------------------------------------------------------
1 | description = 'Netifi Proteus Discovery Library For Kubernetes'
2 |
3 | dependencies {
4 | implementation project(':proteus-common')
5 | implementation project(':proteus-discovery')
6 | implementation 'io.kubernetes:client-java:3.0.0'
7 | implementation 'io.projectreactor:reactor-core'
8 | implementation 'org.slf4j:slf4j-api'
9 | compileOnly 'javax.inject:javax.inject'
10 |
11 | testCompile 'junit:junit'
12 | testCompile 'javax.inject:javax.inject'
13 | testCompile 'io.projectreactor:reactor-test'
14 | testCompile "com.google.protobuf:protobuf-java"
15 | testCompile 'org.hdrhistogram:HdrHistogram'
16 | testCompile 'org.apache.logging.log4j:log4j-api'
17 | testCompile 'org.apache.logging.log4j:log4j-core'
18 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
19 | testCompile 'io.rsocket:rsocket-transport-netty'
20 | testCompile 'io.rsocket:rsocket-transport-local'
21 | testCompile 'org.mockito:mockito-core'
22 | }
23 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | description = 'Netifi Proteus Broker Management IDL'
4 |
5 | dependencies {
6 | protobuf project (':proteus-broker-info-idl')
7 |
8 | compileOnly 'javax.inject:javax.inject'
9 |
10 | testCompile 'junit:junit'
11 | testCompile 'javax.inject:javax.inject'
12 | testCompile 'io.projectreactor:reactor-test'
13 | testCompile "com.google.protobuf:protobuf-java"
14 | testCompile 'org.hdrhistogram:HdrHistogram'
15 | testCompile 'org.apache.logging.log4j:log4j-api'
16 | testCompile 'org.apache.logging.log4j:log4j-core'
17 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
18 | testCompile 'io.rsocket:rsocket-transport-netty'
19 | testCompile 'io.rsocket:rsocket-transport-local'
20 | testCompile 'org.mockito:mockito-core'
21 | }
22 |
23 | protobuf {
24 | protoc {
25 | artifact = "com.google.protobuf:protoc"
26 | }
27 | generateProtoTasks {
28 | all()*.enabled = false
29 | }
30 | }
--------------------------------------------------------------------------------
/proteus-vizceral-idl/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | description = 'Netifi Proteus Vizceral IDL'
4 |
5 | dependencies {
6 | protobuf 'com.google.protobuf:protobuf-java'
7 |
8 | compileOnly 'javax.inject:javax.inject'
9 |
10 | testCompile 'junit:junit'
11 | testCompile 'javax.inject:javax.inject'
12 | testCompile 'io.projectreactor:reactor-test'
13 | testCompile "com.google.protobuf:protobuf-java"
14 | testCompile 'org.hdrhistogram:HdrHistogram'
15 | testCompile 'org.apache.logging.log4j:log4j-api'
16 | testCompile 'org.apache.logging.log4j:log4j-core'
17 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
18 | testCompile 'io.rsocket:rsocket-transport-netty'
19 | testCompile 'io.rsocket:rsocket-transport-local'
20 | testCompile 'org.mockito:mockito-core'
21 | }
22 |
23 | protobuf {
24 | protoc {
25 | artifact = "com.google.protobuf:protoc"
26 | }
27 | generateProtoTasks {
28 | all()*.enabled = false
29 | }
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | group=io.netifi.proteus
2 | version=1.6.1
3 |
4 | awssdkVersion=2.4.13
5 | assertjVersion=3.12.1
6 | braveOpentracingVersion=0.33.10
7 | commonsIoVersion=2.6
8 | commonsValidatorVersion=1.6
9 | flywayVersion=5.2.4
10 | guavaVersion=27.0.1-jre
11 | hamcrestVersion=1.3
12 | hdrhistogramVersion=2.1.10
13 | jacksonProtobufVersion=0.9.10-jackson2.9-proto3
14 | jacksonVersion=2.9.8
15 | javaxAnnotationVersion=1.3.2
16 | javaxInjectVersion=1
17 | jctoolsVersion=2.1.2
18 | junitJupiterVersion=5.4.0
19 | junitVersion=4.12
20 | log4j2Version=2.11.2
21 | micrometerVersion=1.0.6
22 | mockitoVersion=2.25.0
23 | nettyTcnativeVersion=2.0.18.Final
24 | nettyVersion=4.1.31.Final
25 | opentracingVersion=0.31.0
26 | postgresqlVersion=42.2.5
27 | protobufVersion=3.6.1
28 | reactorBomVersion=Californium-SR5
29 | roaringbitmapVersion=0.7.42
30 | rxjava2JdbcVersion=0.2.4
31 | spectatorVersion=0.61.0
32 | typesafeConfigVersion=1.3.3
33 | slf4jVersion=1.7.25
34 | zipkinSenderVersion=2.7.6
35 |
36 | rsocketVersion=0.11.17.2
37 | rsocketRpcVersion=0.2.13.3
--------------------------------------------------------------------------------
/proteus-discovery-aws/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | io.projectreactor:reactor-core:3.2.6.RELEASE
8 | javax.inject:javax.inject:1
9 | org.reactivestreams:reactive-streams:1.0.2
10 | org.slf4j:slf4j-api:1.7.25
11 | software.amazon.awssdk:annotations:2.4.13
12 | software.amazon.awssdk:auth:2.4.13
13 | software.amazon.awssdk:aws-core:2.4.13
14 | software.amazon.awssdk:aws-query-protocol:2.4.13
15 | software.amazon.awssdk:ec2:2.4.13
16 | software.amazon.awssdk:http-client-spi:2.4.13
17 | software.amazon.awssdk:profiles:2.4.13
18 | software.amazon.awssdk:protocol-core:2.4.13
19 | software.amazon.awssdk:regions:2.4.13
20 | software.amazon.awssdk:sdk-core:2.4.13
21 | software.amazon.awssdk:utils:2.4.13
22 | software.amazon:flow:1.7
23 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/src/main/resources/log4j2.xml:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/proteus-discovery-aws/build.gradle:
--------------------------------------------------------------------------------
1 | description = 'Netifi Proteus Discovery Library For AWS'
2 |
3 | dependencyManagement {
4 | imports {
5 | mavenBom 'software.amazon.awssdk:bom:2.4.13'
6 | }
7 | }
8 |
9 | dependencies {
10 | implementation project(':proteus-common')
11 | implementation project(':proteus-discovery')
12 | implementation 'software.amazon.awssdk:ec2'
13 | implementation 'io.projectreactor:reactor-core'
14 | implementation 'org.slf4j:slf4j-api'
15 |
16 | compileOnly 'javax.inject:javax.inject'
17 |
18 | testCompile 'junit:junit'
19 | testCompile 'javax.inject:javax.inject'
20 | testCompile 'io.projectreactor:reactor-test'
21 | testCompile "com.google.protobuf:protobuf-java"
22 | testCompile 'org.hdrhistogram:HdrHistogram'
23 | testCompile 'org.apache.logging.log4j:log4j-api'
24 | testCompile 'org.apache.logging.log4j:log4j-core'
25 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
26 | testCompile 'io.rsocket:rsocket-transport-netty'
27 | testCompile 'io.rsocket:rsocket-transport-local'
28 | testCompile 'org.mockito:mockito-core'
29 | }
30 |
--------------------------------------------------------------------------------
/proteus-common/src/main/java/io/netifi/proteus/common/stats/Quantile.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | * Copyright 2016 Netflix, Inc.
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 | package io.netifi.proteus.common.stats;
18 |
19 | public interface Quantile {
20 | /** @return the estimation of the current value of the quantile */
21 | double estimation();
22 |
23 | /**
24 | * Insert a data point `x` in the quantile estimator.
25 | *
26 | * @param x the data point to add.
27 | */
28 | void insert(double x);
29 | }
30 |
--------------------------------------------------------------------------------
/proteus-client/src/main/java/io/netifi/proteus/ProteusBrokerService.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus;
17 |
18 | import io.netifi.proteus.common.tags.Tags;
19 | import io.netifi.proteus.rsocket.ProteusSocket;
20 | import io.netty.buffer.ByteBuf;
21 |
22 | interface ProteusBrokerService {
23 | ProteusSocket group(CharSequence group, Tags tags);
24 |
25 | ProteusSocket broadcast(CharSequence group, Tags tags);
26 |
27 | ProteusSocket shard(CharSequence group, ByteBuf shardKey, Tags tags);
28 | }
29 |
--------------------------------------------------------------------------------
/proteus-common/src/main/java/io/netifi/proteus/common/time/Clock.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.common.time;
17 |
18 | import java.util.concurrent.TimeUnit;
19 |
20 | @FunctionalInterface
21 | public interface Clock {
22 | long getEpochTime();
23 |
24 | default long elapsedSince(long timestamp) {
25 | long t = getEpochTime();
26 | return Math.max(0L, t - timestamp);
27 | }
28 |
29 | default TimeUnit unit() {
30 | return TimeUnit.MILLISECONDS;
31 | }
32 |
33 | Clock DEFAULT = System::currentTimeMillis;
34 | }
35 |
--------------------------------------------------------------------------------
/proteus-common/src/main/java/io/netifi/proteus/common/tags/Tag.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2017 Pivotal Software, Inc.
3 | *
4 | *
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 | * except in compliance with the License. You may obtain a copy of the License at
6 | *
7 | *
http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | *
Unless required by applicable law or agreed to in writing, software distributed under the
10 | * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
11 | * express or implied. See the License for the specific language governing permissions and
12 | * limitations under the License.
13 | */
14 | package io.netifi.proteus.common.tags;
15 |
16 | /**
17 | * Key/value pair representing a dimension of a meter used to classify and drill into measurements.
18 | *
19 | * @author Jon Schneider
20 | */
21 | public interface Tag extends Comparable {
22 | String getKey();
23 |
24 | String getValue();
25 |
26 | static Tag of(String key, String value) {
27 | return new ImmutableTag(key, value);
28 | }
29 |
30 | @Override
31 | default int compareTo(Tag o) {
32 | return getKey().compareTo(o.getKey());
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/proteus-common/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'io.morethan.jmhreport'
3 | id 'me.champeau.gradle.jmh'
4 | }
5 |
6 | description = 'Netifi Proteus Common'
7 |
8 | dependencies {
9 | compileOnly 'javax.inject:javax.inject'
10 |
11 | testCompile 'junit:junit'
12 | testCompile 'javax.inject:javax.inject'
13 | testCompile 'io.projectreactor:reactor-test'
14 | testCompile "com.google.protobuf:protobuf-java"
15 | testCompile 'org.hdrhistogram:HdrHistogram'
16 | testCompile 'org.apache.logging.log4j:log4j-api'
17 | testCompile 'org.apache.logging.log4j:log4j-core'
18 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
19 | testCompile 'io.rsocket:rsocket-transport-netty'
20 | testCompile 'io.rsocket:rsocket-transport-local'
21 | testCompile 'org.mockito:mockito-core'
22 | testCompile 'junit:junit'
23 | }
24 |
25 | apply from: 'jmh.gradle'
26 |
27 | license {
28 | excludes([
29 | "**/*net/HostAndPort.java",
30 | "**/*stats/Ewma.java",
31 | "**/*stats/FrugalQuantile.java",
32 | "**/*stats/Median.java",
33 | "**/*stats/Quantile.java",
34 | "**/*tags/ImmutableTag.java",
35 | "**/*tags/Tag.java",
36 | "**/*tags/Tags.java",
37 | "**/*net/HostAndPortTest.java"
38 | ])
39 | }
--------------------------------------------------------------------------------
/proteus-discovery-consul/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.8
8 | com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
9 | com.google.code.findbugs:jsr305:3.0.2
10 | com.google.errorprone:error_prone_annotations:2.2.0
11 | com.google.guava:failureaccess:1.0.1
12 | com.google.guava:guava:27.0.1-jre
13 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
14 | com.google.j2objc:j2objc-annotations:1.1
15 | com.orbitz.consul:consul-client:1.3.0
16 | com.squareup.okhttp3:okhttp:3.9.0
17 | com.squareup.okio:okio:1.13.0
18 | com.squareup.retrofit2:converter-jackson:2.3.0
19 | com.squareup.retrofit2:retrofit:2.3.0
20 | io.projectreactor:reactor-core:3.2.6.RELEASE
21 | javax.inject:javax.inject:1
22 | org.apache.commons:commons-lang3:3.4
23 | org.checkerframework:checker-qual:2.5.2
24 | org.codehaus.mojo:animal-sniffer-annotations:1.17
25 | org.reactivestreams:reactive-streams:1.0.2
26 | org.slf4j:slf4j-api:1.7.25
27 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | description = 'Netifi Proteus Prometheus Integration'
4 |
5 | dependencies {
6 | compile project (':proteus-client')
7 | compile 'io.rsocket.rpc:rsocket-rpc-protobuf'
8 | protobuf "io.rsocket.rpc:rsocket-rpc-metrics-idl"
9 | compile 'io.micrometer:micrometer-registry-influx'
10 |
11 | compile 'com.google.guava:guava'
12 |
13 | testCompile 'org.apache.logging.log4j:log4j-api'
14 | testCompile 'org.apache.logging.log4j:log4j-core'
15 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
16 | }
17 |
18 | protobuf {
19 | generatedFilesBaseDir = "${projectDir}/src/generated"
20 |
21 | protoc {
22 | artifact = "com.google.protobuf:protoc"
23 | }
24 | plugins {
25 | rsocketRpc {
26 | artifact = "io.rsocket.rpc:rsocket-rpc-protobuf"
27 | }
28 | }
29 | generateProtoTasks {
30 | all().each { task ->
31 | // Recompile protos when build.gradle has been changed, because
32 | // it's possible the version of protoc has been changed.
33 | task.inputs.file "${rootProject.projectDir}/build.gradle"
34 | task.plugins {
35 | rsocketRpc {}
36 | }
37 | }
38 | }
39 | }
40 |
41 | clean {
42 | delete protobuf.generatedFilesBaseDir
43 | }
--------------------------------------------------------------------------------
/proteus-client/src/main/java/io/netifi/proteus/rsocket/transport/BrokerAddressSelectors.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.rsocket.transport;
17 |
18 | import io.netifi.proteus.broker.info.Broker;
19 | import java.net.InetSocketAddress;
20 | import java.util.function.Function;
21 |
22 | public class BrokerAddressSelectors {
23 | public static Function TCP_ADDRESS =
24 | broker -> InetSocketAddress.createUnresolved(broker.getTcpAddress(), broker.getTcpPort());
25 | public static Function WEBSOCKET_ADDRESS =
26 | broker ->
27 | InetSocketAddress.createUnresolved(
28 | broker.getWebSocketAddress(), broker.getWebSocketPort());
29 | }
30 |
--------------------------------------------------------------------------------
/proteus-common/jmh.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2015-2018 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | dependencies {
18 | jmh 'org.openjdk.jmh:jmh-core'
19 | jmh 'org.openjdk.jmh:jmh-generator-annprocess'
20 | }
21 |
22 | jmhCompileGeneratedClasses.enabled = false
23 |
24 | jmh {
25 | includeTests = false
26 | profilers = ['gc']
27 | resultFormat = 'JSON'
28 |
29 | jvmArgs = ['-XX:+UnlockCommercialFeatures', '-XX:+FlightRecorder']
30 | // jvmArgsAppend = ['-XX:+UseG1GC', '-Xms4g', '-Xmx4g']
31 | }
32 |
33 | jmhJar {
34 | from project.configurations.jmh
35 | }
36 |
37 | tasks.jmh.finalizedBy tasks.jmhReport
38 |
39 | jmhReport {
40 | jmhResultPath = project.file('build/reports/jmh/results.json')
41 | jmhReportOutput = project.file('build/reports/jmh')
42 | }
43 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/src/main/proto/proteus/tracing.proto:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright 2019 The Proteus Authors
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | syntax = "proto3";
16 |
17 | package io.netifi.proteus.tracing;
18 |
19 | import "zipkin/proto3/zipkin.proto";
20 | import "google/protobuf/empty.proto";
21 |
22 | option java_package = "io.netifi.proteus.tracing";
23 | option java_outer_classname = "ProteusTracingServices";
24 | option java_multiple_files = true;
25 |
26 | message Ack {}
27 |
28 | message Trace {
29 | repeated zipkin.proto3.Span spans = 1;
30 | }
31 |
32 | message Traces {
33 | repeated Trace traces = 1;
34 | }
35 |
36 | message TracesRequest {
37 | int32 lookbackSeconds = 1;
38 | }
39 |
40 | service ProteusTracingService {
41 |
42 | rpc StreamSpans (stream zipkin.proto3.Span) returns (Ack) {}
43 | }
44 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | com.typesafe:config:1.3.3
6 | io.micrometer:micrometer-core:1.0.6
7 | io.netty:netty-buffer:4.1.31.Final
8 | io.netty:netty-codec-http2:4.1.31.Final
9 | io.netty:netty-codec-http:4.1.31.Final
10 | io.netty:netty-codec-socks:4.1.31.Final
11 | io.netty:netty-codec:4.1.31.Final
12 | io.netty:netty-common:4.1.31.Final
13 | io.netty:netty-handler-proxy:4.1.31.Final
14 | io.netty:netty-handler:4.1.31.Final
15 | io.netty:netty-resolver:4.1.31.Final
16 | io.netty:netty-tcnative:2.0.18.Final
17 | io.netty:netty-transport-native-epoll:4.1.31.Final
18 | io.netty:netty-transport-native-unix-common:4.1.31.Final
19 | io.netty:netty-transport:4.1.31.Final
20 | io.opentracing:opentracing-api:0.31.0
21 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
22 | io.projectreactor:reactor-core:3.2.6.RELEASE
23 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
24 | io.rsocket:rsocket-core:0.11.17.2
25 | io.rsocket:rsocket-transport-netty:0.11.17.2
26 | javax.annotation:javax.annotation-api:1.3.2
27 | javax.inject:javax.inject:1
28 | org.hdrhistogram:HdrHistogram:2.1.10
29 | org.latencyutils:LatencyUtils:2.0.3
30 | org.reactivestreams:reactive-streams:1.0.2
31 | org.slf4j:slf4j-api:1.7.25
32 |
--------------------------------------------------------------------------------
/proteus-auth/src/main/java/io/netifi/proteus/auth/SessionUtil.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.auth;
17 |
18 | import io.netty.buffer.ByteBuf;
19 |
20 | /** Generates a shared secret based on a string input. */
21 | public abstract class SessionUtil {
22 | public static final SessionUtil instance() {
23 | return new DefaultSessionUtil();
24 | }
25 |
26 | public abstract byte[] generateSessionToken(byte[] key, ByteBuf data, long count);
27 |
28 | public abstract int generateRequestToken(byte[] sessionToken, ByteBuf message, long count);
29 |
30 | public abstract boolean validateMessage(
31 | byte[] sessionToken, ByteBuf message, int requestToken, long count);
32 |
33 | public abstract long getThirtySecondsStepsFromEpoch();
34 | }
35 |
--------------------------------------------------------------------------------
/proteus-client/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | com.typesafe:config:1.3.3
6 | io.micrometer:micrometer-core:1.0.6
7 | io.netty:netty-buffer:4.1.31.Final
8 | io.netty:netty-codec-http2:4.1.31.Final
9 | io.netty:netty-codec-http:4.1.31.Final
10 | io.netty:netty-codec-socks:4.1.31.Final
11 | io.netty:netty-codec:4.1.31.Final
12 | io.netty:netty-common:4.1.31.Final
13 | io.netty:netty-handler-proxy:4.1.31.Final
14 | io.netty:netty-handler:4.1.31.Final
15 | io.netty:netty-resolver:4.1.31.Final
16 | io.netty:netty-tcnative:2.0.18.Final
17 | io.netty:netty-transport-native-epoll:4.1.31.Final
18 | io.netty:netty-transport-native-unix-common:4.1.31.Final
19 | io.netty:netty-transport:4.1.31.Final
20 | io.opentracing:opentracing-api:0.31.0
21 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
22 | io.projectreactor:reactor-core:3.2.6.RELEASE
23 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
24 | io.rsocket:rsocket-core:0.11.17.2
25 | io.rsocket:rsocket-transport-netty:0.11.17.2
26 | javax.annotation:javax.annotation-api:1.3.2
27 | javax.inject:javax.inject:1
28 | org.hdrhistogram:HdrHistogram:2.1.10
29 | org.latencyutils:LatencyUtils:2.0.3
30 | org.reactivestreams:reactive-streams:1.0.2
31 | org.slf4j:slf4j-api:1.7.25
32 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/src/main/proto/proteus/cluster_mgmt.proto:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright 2019 The Proteus Authors
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | syntax = "proto3";
16 |
17 | package io.netifi.proteus.broker.info;
18 |
19 | import "google/protobuf/empty.proto";
20 | import "proteus/broker_mgmt.proto";
21 | import "proteus/broker_info.proto";
22 |
23 | option java_package = "io.netifi.proteus.cluster.mgmt";
24 | option java_outer_classname = "ClusterManagement";
25 | option java_multiple_files = true;
26 |
27 | service ClusterManagementService {
28 | // Closes connections to a specific set of destinations across broker cluster
29 | rpc closeDestination (stream io.netifi.proteus.broker.info.Destination) returns (Ack) {}
30 |
31 | // Closes all connections to a specific group cluster-wide
32 | rpc closeGroup (stream io.netifi.proteus.broker.info.Group) returns (Ack) {}
33 | }
--------------------------------------------------------------------------------
/proteus-auth/src/test/java/io/netifi/proteus/auth/hashing/PBKDF2WithHmacSHA1AccessTokenHasherTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.auth.hashing;
17 |
18 | import java.util.concurrent.ThreadLocalRandom;
19 | import org.junit.Assert;
20 | import org.junit.Test;
21 |
22 | public class PBKDF2WithHmacSHA1AccessTokenHasherTest {
23 | @Test
24 | public void testHash() {
25 | PBKDF2WithHmacSHA1AccessTokenHasher hasher = new PBKDF2WithHmacSHA1AccessTokenHasher();
26 | byte[] salt = new byte[20];
27 | byte[] accessToken = new byte[20];
28 | ThreadLocalRandom.current().nextBytes(salt);
29 | ThreadLocalRandom.current().nextBytes(accessToken);
30 | byte[] hash = hasher.hash(salt, accessToken);
31 |
32 | Assert.assertNotNull(hash);
33 | Assert.assertTrue(hash.length > 0);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/proteus-frames/src/test/java/io/netifi/proteus/frames/FrameHeaderFlyweightTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | import io.netty.buffer.ByteBuf;
19 | import io.netty.buffer.ByteBufAllocator;
20 | import org.junit.Assert;
21 | import org.junit.Test;
22 |
23 | public class FrameHeaderFlyweightTest {
24 | @Test
25 | public void testEncoding() {
26 | short major = 50;
27 | short minor = 50;
28 | ByteBuf byteBuf =
29 | FrameHeaderFlyweight.encodeFrameHeader(
30 | ByteBufAllocator.DEFAULT, major, minor, FrameType.DESTINATION_SETUP);
31 |
32 | Assert.assertEquals(major, FrameHeaderFlyweight.majorVersion(byteBuf));
33 | Assert.assertEquals(minor, FrameHeaderFlyweight.minorVersion(byteBuf));
34 | Assert.assertEquals(FrameType.DESTINATION_SETUP, FrameHeaderFlyweight.frameType(byteBuf));
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/gradle/dependency-locks/testCompile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-auth/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-auth/gradle/dependency-locks/testRuntimeClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-broker-info-idl/gradle/dependency-locks/testCompile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/gradle/dependency-locks/testCompile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-common/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-common/gradle/dependency-locks/testRuntimeClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-frames/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-frames/gradle/dependency-locks/testRuntimeClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-vizceral-idl/gradle/dependency-locks/testCompile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-discovery/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-discovery/gradle/dependency-locks/testRuntimeClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-tracing-idl/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-vizceral-idl/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-broker-info-idl/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-broker-mgmt-idl/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | io.netty:netty-buffer:4.1.31.Final
6 | io.netty:netty-codec-http2:4.1.31.Final
7 | io.netty:netty-codec-http:4.1.31.Final
8 | io.netty:netty-codec-socks:4.1.31.Final
9 | io.netty:netty-codec:4.1.31.Final
10 | io.netty:netty-common:4.1.31.Final
11 | io.netty:netty-handler-proxy:4.1.31.Final
12 | io.netty:netty-handler:4.1.31.Final
13 | io.netty:netty-resolver:4.1.31.Final
14 | io.netty:netty-transport-native-epoll:4.1.31.Final
15 | io.netty:netty-transport-native-unix-common:4.1.31.Final
16 | io.netty:netty-transport:4.1.31.Final
17 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
18 | io.projectreactor:reactor-core:3.2.6.RELEASE
19 | io.projectreactor:reactor-test:3.2.6.RELEASE
20 | io.rsocket:rsocket-core:0.11.17.2
21 | io.rsocket:rsocket-transport-local:0.11.17.2
22 | io.rsocket:rsocket-transport-netty:0.11.17.2
23 | javax.inject:javax.inject:1
24 | junit:junit:4.12
25 | net.bytebuddy:byte-buddy-agent:1.9.7
26 | net.bytebuddy:byte-buddy:1.9.7
27 | org.apache.logging.log4j:log4j-api:2.11.2
28 | org.apache.logging.log4j:log4j-core:2.11.2
29 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
30 | org.hamcrest:hamcrest-core:1.3
31 | org.hdrhistogram:HdrHistogram:2.1.10
32 | org.mockito:mockito-core:2.25.0
33 | org.objenesis:objenesis:2.6
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | com.typesafe:config:1.3.3
6 | io.micrometer:micrometer-core:1.0.6
7 | io.micrometer:micrometer-registry-prometheus:1.0.6
8 | io.netty:netty-buffer:4.1.31.Final
9 | io.netty:netty-codec-http2:4.1.31.Final
10 | io.netty:netty-codec-http:4.1.31.Final
11 | io.netty:netty-codec-socks:4.1.31.Final
12 | io.netty:netty-codec:4.1.31.Final
13 | io.netty:netty-common:4.1.31.Final
14 | io.netty:netty-handler-proxy:4.1.31.Final
15 | io.netty:netty-handler:4.1.31.Final
16 | io.netty:netty-resolver:4.1.31.Final
17 | io.netty:netty-tcnative:2.0.18.Final
18 | io.netty:netty-transport-native-epoll:4.1.31.Final
19 | io.netty:netty-transport-native-unix-common:4.1.31.Final
20 | io.netty:netty-transport:4.1.31.Final
21 | io.opentracing:opentracing-api:0.31.0
22 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
23 | io.projectreactor:reactor-core:3.2.6.RELEASE
24 | io.prometheus:simpleclient:0.4.0
25 | io.prometheus:simpleclient_common:0.4.0
26 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
27 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
28 | io.rsocket:rsocket-core:0.11.17.2
29 | io.rsocket:rsocket-transport-netty:0.11.17.2
30 | javax.annotation:javax.annotation-api:1.3.2
31 | javax.inject:javax.inject:1
32 | org.hdrhistogram:HdrHistogram:2.1.10
33 | org.latencyutils:LatencyUtils:2.0.3
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | com.typesafe:config:1.3.3
6 | io.micrometer:micrometer-core:1.0.6
7 | io.micrometer:micrometer-registry-prometheus:1.0.6
8 | io.netty:netty-buffer:4.1.31.Final
9 | io.netty:netty-codec-http2:4.1.31.Final
10 | io.netty:netty-codec-http:4.1.31.Final
11 | io.netty:netty-codec-socks:4.1.31.Final
12 | io.netty:netty-codec:4.1.31.Final
13 | io.netty:netty-common:4.1.31.Final
14 | io.netty:netty-handler-proxy:4.1.31.Final
15 | io.netty:netty-handler:4.1.31.Final
16 | io.netty:netty-resolver:4.1.31.Final
17 | io.netty:netty-tcnative:2.0.18.Final
18 | io.netty:netty-transport-native-epoll:4.1.31.Final
19 | io.netty:netty-transport-native-unix-common:4.1.31.Final
20 | io.netty:netty-transport:4.1.31.Final
21 | io.opentracing:opentracing-api:0.31.0
22 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
23 | io.projectreactor:reactor-core:3.2.6.RELEASE
24 | io.prometheus:simpleclient:0.4.0
25 | io.prometheus:simpleclient_common:0.4.0
26 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
27 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
28 | io.rsocket:rsocket-core:0.11.17.2
29 | io.rsocket:rsocket-transport-netty:0.11.17.2
30 | javax.annotation:javax.annotation-api:1.3.2
31 | javax.inject:javax.inject:1
32 | org.hdrhistogram:HdrHistogram:2.1.10
33 | org.latencyutils:LatencyUtils:2.0.3
34 | org.reactivestreams:reactive-streams:1.0.2
35 | org.slf4j:slf4j-api:1.7.25
36 |
--------------------------------------------------------------------------------
/proteus-frames/src/main/java/io/netifi/proteus/frames/FrameType.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | /** */
19 | public enum FrameType {
20 | UNDEFINED(0x00),
21 | BROKER_SETUP(0x01),
22 | DESTINATION_SETUP(0x02),
23 | GROUP(0x03),
24 | BROADCAST(0x04),
25 | SHARD(0x05),
26 | AUTHORIZATION_WRAPPER(0x06);
27 |
28 | private static FrameType[] typesById;
29 |
30 | private final int id;
31 |
32 | /** Index types by id for indexed lookup. */
33 | static {
34 | int max = 0;
35 |
36 | for (FrameType t : values()) {
37 | max = Math.max(t.id, max);
38 | }
39 |
40 | typesById = new FrameType[max + 1];
41 |
42 | for (FrameType t : values()) {
43 | typesById[t.id] = t;
44 | }
45 | }
46 |
47 | FrameType(int id) {
48 | this.id = id;
49 | }
50 |
51 | public int getEncodedType() {
52 | return id;
53 | }
54 |
55 | public static FrameType from(int id) {
56 | return typesById[id];
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/artifactory.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2015-2018 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | if (project.hasProperty('netifiArtifactoryUsername') && project.hasProperty('netifiArtifactoryPassword')) {
18 |
19 | subprojects {
20 | plugins.withId('com.jfrog.artifactory') {
21 | artifactory {
22 | publish {
23 | contextUrl = 'https://artifactory.netifiinc.com/artifactory'
24 |
25 | repository {
26 | repoKey = version.contains('SNAPSHOT') ? 'libs-snapshot-local' : 'libs-release-local'
27 |
28 | // Credentials for oss.jfrog.org are a user's Bintray credentials
29 | username = project.property('netifiArtifactoryUsername')
30 | password = project.property('netifiArtifactoryPassword')
31 | }
32 |
33 | defaults {
34 | publications('mavenJava')
35 | }
36 | }
37 | }
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/proteus-discovery/src/main/java/io/netifi/proteus/discovery/DiscoveryStrategy.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.discovery;
17 |
18 | import io.netifi.proteus.common.net.HostAndPort;
19 | import java.lang.reflect.Constructor;
20 | import java.util.Collection;
21 | import java.util.Objects;
22 | import reactor.core.Exceptions;
23 | import reactor.core.publisher.Mono;
24 |
25 | public interface DiscoveryStrategy {
26 |
27 | static DiscoveryStrategy getInstance(DiscoveryConfig discoveryConfig) {
28 | Objects.requireNonNull(discoveryConfig);
29 | try {
30 | Class discoveryStrategyClass = discoveryConfig.getDiscoveryStrategyClass();
31 | Constructor discoveryStrategyClassConstructor =
32 | discoveryStrategyClass.getConstructor(discoveryConfig.getClass());
33 | return (DiscoveryStrategy) discoveryStrategyClassConstructor.newInstance(discoveryConfig);
34 |
35 | } catch (Exception e) {
36 | throw Exceptions.propagate(e);
37 | }
38 | }
39 |
40 | Mono extends Collection> discoverNodes();
41 | }
42 |
--------------------------------------------------------------------------------
/proteus-frames/src/test/java/io/netifi/proteus/frames/BroadcastFlyweightTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | import io.netifi.proteus.common.tags.Tags;
19 | import io.netty.buffer.ByteBuf;
20 | import io.netty.buffer.ByteBufAllocator;
21 | import io.netty.buffer.ByteBufUtil;
22 | import io.netty.buffer.Unpooled;
23 | import org.junit.Assert;
24 | import org.junit.Test;
25 |
26 | public class BroadcastFlyweightTest {
27 |
28 | @Test
29 | public void testEncoding() {
30 | ByteBuf metadata = Unpooled.wrappedBuffer("metadata".getBytes());
31 | Tags tags = Tags.of("tag", "tag");
32 | ByteBuf byteBuf = BroadcastFlyweight.encode(ByteBufAllocator.DEFAULT, "group", metadata, tags);
33 |
34 | Assert.assertEquals("group", BroadcastFlyweight.group(byteBuf));
35 | System.out.println(ByteBufUtil.prettyHexDump(BroadcastFlyweight.metadata(byteBuf)));
36 | Assert.assertTrue(ByteBufUtil.equals(metadata, BroadcastFlyweight.metadata(byteBuf)));
37 | Assert.assertEquals(tags, BroadcastFlyweight.tags(byteBuf));
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/proteus-frames/src/test/java/io/netifi/proteus/frames/GroupFlyweightTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | import io.netifi.proteus.common.tags.Tags;
19 | import io.netty.buffer.ByteBuf;
20 | import io.netty.buffer.ByteBufAllocator;
21 | import io.netty.buffer.ByteBufUtil;
22 | import io.netty.buffer.Unpooled;
23 | import org.junit.Assert;
24 | import org.junit.Test;
25 |
26 | public class GroupFlyweightTest {
27 | @Test
28 | public void testEncoding() {
29 |
30 | ByteBuf metadata = Unpooled.wrappedBuffer("metadata".getBytes());
31 | Tags tags = Tags.of("com.netifi.destination", "toDestination");
32 | ByteBuf byteBuf = GroupFlyweight.encode(ByteBufAllocator.DEFAULT, "group", metadata, tags);
33 |
34 | System.out.println(ByteBufUtil.prettyHexDump(GroupFlyweight.metadata(byteBuf)));
35 | Assert.assertEquals("group", GroupFlyweight.group(byteBuf));
36 | Assert.assertTrue(ByteBufUtil.equals(metadata, GroupFlyweight.metadata(byteBuf)));
37 | Assert.assertEquals(tags, GroupFlyweight.tags(byteBuf));
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/proteus-frames/src/test/java/io/netifi/proteus/frames/BrokerSetupFlyweightTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | import io.netty.buffer.ByteBuf;
19 | import io.netty.buffer.ByteBufAllocator;
20 | import io.netty.buffer.ByteBufUtil;
21 | import io.netty.buffer.Unpooled;
22 | import org.junit.Assert;
23 | import org.junit.Test;
24 |
25 | public class BrokerSetupFlyweightTest {
26 | @Test
27 | public void testEncoding() {
28 | ByteBuf authToken = Unpooled.wrappedBuffer("access token".getBytes());
29 |
30 | ByteBuf byteBuf =
31 | BrokerSetupFlyweight.encode(
32 | ByteBufAllocator.DEFAULT, "brokerId", "clusterId", Long.MAX_VALUE, authToken);
33 |
34 | Assert.assertEquals("brokerId", BrokerSetupFlyweight.brokerId(byteBuf));
35 | Assert.assertEquals("clusterId", BrokerSetupFlyweight.clusterId(byteBuf));
36 | Assert.assertEquals(Long.MAX_VALUE, BrokerSetupFlyweight.accessKey(byteBuf));
37 | authToken.resetReaderIndex();
38 | Assert.assertTrue(ByteBufUtil.equals(authToken, BrokerSetupFlyweight.accessToken(byteBuf)));
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/proteus-frames/src/main/java/io/netifi/proteus/frames/AuthorizationWrapperFlyweight.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | import io.netty.buffer.ByteBuf;
19 | import io.netty.buffer.ByteBufAllocator;
20 |
21 | public class AuthorizationWrapperFlyweight {
22 |
23 | public static ByteBuf encode(ByteBufAllocator allocator, long accessKey, ByteBuf innerFrame) {
24 |
25 | ByteBuf byteBuf =
26 | FrameHeaderFlyweight.encodeFrameHeader(allocator, FrameType.AUTHORIZATION_WRAPPER);
27 |
28 | byteBuf.writeLong(accessKey).writeBytes(innerFrame);
29 |
30 | return byteBuf;
31 | }
32 |
33 | public static long accessKey(ByteBuf byteBuf) {
34 | int offset = FrameHeaderFlyweight.BYTES;
35 |
36 | return byteBuf.getLong(offset);
37 | }
38 |
39 | public static ByteBuf innerFrame(ByteBuf byteBuf) {
40 | int offset = FrameHeaderFlyweight.BYTES;
41 | offset += Long.BYTES;
42 |
43 | byteBuf.markReaderIndex();
44 | byteBuf.skipBytes(offset);
45 | ByteBuf slice = byteBuf.slice();
46 | byteBuf.resetReaderIndex();
47 | return slice;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | dependencies {
4 | compile project (':proteus-client')
5 | compile "io.rsocket.rpc:rsocket-rpc-protobuf"
6 | protobuf "io.rsocket.rpc:rsocket-rpc-metrics-idl"
7 | compile 'io.micrometer:micrometer-registry-atlas'
8 |
9 | compileOnly 'javax.inject:javax.inject'
10 |
11 | testCompile 'junit:junit'
12 | testCompile 'javax.inject:javax.inject'
13 | testCompile 'io.projectreactor:reactor-test'
14 | testCompile "com.google.protobuf:protobuf-java"
15 | testCompile 'org.hdrhistogram:HdrHistogram'
16 | testCompile 'org.apache.logging.log4j:log4j-api'
17 | testCompile 'org.apache.logging.log4j:log4j-core'
18 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
19 | testCompile 'io.rsocket:rsocket-transport-netty'
20 | testCompile 'io.rsocket:rsocket-transport-local'
21 | testCompile 'org.mockito:mockito-core'
22 | }
23 |
24 | googleJavaFormat {
25 | exclude 'src/*'
26 | }
27 |
28 | protobuf {
29 | generatedFilesBaseDir = "${projectDir}/src/generated"
30 |
31 | protoc {
32 | artifact = "com.google.protobuf:protoc"
33 | }
34 | plugins {
35 | rsocketRpc {
36 | artifact = "io.rsocket.rpc:rsocket-rpc-protobuf"
37 | }
38 | }
39 | generateProtoTasks {
40 | all().each { task ->
41 | // Recompile protos when build.gradle has been changed, because
42 | // it's possible the version of protoc has been changed.
43 | task.inputs.file "${rootProject.projectDir}/build.gradle"
44 | task.plugins {
45 | rsocketRpc {}
46 | }
47 | }
48 | }
49 | }
50 |
51 | clean {
52 | delete protobuf.generatedFilesBaseDir
53 | }
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/src/test/resources/zipkin_trace.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "traceId": "f66bbb5affbc4681",
4 | "parentId": "f66bbb5affbc4681",
5 | "id": "c38820a7e5e4ac2a",
6 | "name": "sayhello",
7 | "timestamp": 1536152552580050,
8 | "duration": 365,
9 | "localEndpoint": {
10 | "serviceName": "quickstart.services.helloservices",
11 | "ipv4": "192.168.1.104"
12 | },
13 | "annotations": [
14 | {
15 | "timestamp": 1536152552580000,
16 | "value": "onSubscribe"
17 | },
18 | {
19 | "timestamp": 1536152552581000,
20 | "value": "onComplete"
21 | }
22 | ],
23 | "tags": {
24 | "com.netifi.destination": "helloservice-f0ada6e3-60fa-42b0-b6fd-e5e065bed989",
25 | "group": "quickstart.services.helloservices",
26 | "rsocket.rpc.role": "server",
27 | "rsocket.rpc.version": "",
28 | "rsocket.service": "io.netifi.proteus.quickstart.service.HelloService"
29 | }
30 | },
31 | {
32 | "traceId": "f66bbb5affbc4681",
33 | "id": "f66bbb5affbc4681",
34 | "name": "sayhello",
35 | "timestamp": 1536152552578061,
36 | "duration": 5122,
37 | "localEndpoint": {
38 | "serviceName": "quickstart.clients",
39 | "ipv4": "192.168.1.104"
40 | },
41 | "annotations": [
42 | {
43 | "timestamp": 1536152552578000,
44 | "value": "onSubscribe"
45 | },
46 | {
47 | "timestamp": 1536152552582000,
48 | "value": "onComplete"
49 | }
50 | ],
51 | "tags": {
52 | "com.netifi.destination": "client1",
53 | "group": "quickstart.clients",
54 | "rsocket.rpc.role": "client",
55 | "rsocket.rpc.version": "",
56 | "rsocket.service": "io.netifi.proteus.quickstart.service.HelloService"
57 | }
58 | }
59 | ]
--------------------------------------------------------------------------------
/proteus-auth/src/main/java/io/netifi/proteus/auth/hashing/AccessTokenHasher.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.auth.hashing;
17 |
18 | import java.util.Arrays;
19 |
20 | /** Implementations of this interface are used to hash access tokens. */
21 | public interface AccessTokenHasher {
22 | static AccessTokenHasher instance(AccessTokenHashType type) {
23 | switch (type) {
24 | case PBKDF2WithHmacSHA1:
25 | return PBKDF2WithHmacSHA1AccessTokenHasher.INSTANCE;
26 | default:
27 | throw new IllegalArgumentException("unsupported hash type: " + type);
28 | }
29 | }
30 |
31 | static AccessTokenHasher defaultInstance() {
32 | return AccessTokenHasher.instance(AccessTokenHashType.PBKDF2WithHmacSHA1);
33 | }
34 |
35 | /**
36 | * Hashes a 160-bit access token
37 | *
38 | * @param salt long used to salt the hash
39 | * @param accessToken access token to hash
40 | * @return hashed access token
41 | */
42 | byte[] hash(byte[] salt, byte[] accessToken);
43 |
44 | default boolean verify(byte[] salt, byte[] accessToken, byte[] hash) {
45 | byte[] computed = hash(salt, accessToken);
46 | return Arrays.equals(hash, computed);
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/proteus-frames/src/test/java/io/netifi/proteus/frames/ShardFlyweightTest.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | import io.netifi.proteus.common.tags.Tags;
19 | import io.netty.buffer.ByteBuf;
20 | import io.netty.buffer.ByteBufAllocator;
21 | import io.netty.buffer.ByteBufUtil;
22 | import io.netty.buffer.Unpooled;
23 | import org.junit.Assert;
24 | import org.junit.Test;
25 |
26 | public class ShardFlyweightTest {
27 | @Test
28 | public void testEncoding() {
29 | ByteBuf metadata = Unpooled.wrappedBuffer("metadata".getBytes());
30 | ByteBuf shardKey = Unpooled.wrappedBuffer("shardKey".getBytes());
31 | Tags tags = Tags.of("tag", "tag");
32 | ByteBuf byteBuf =
33 | ShardFlyweight.encode(ByteBufAllocator.DEFAULT, "group", metadata, shardKey, tags);
34 |
35 | Assert.assertEquals("group", ShardFlyweight.group(byteBuf));
36 | System.out.println(ByteBufUtil.prettyHexDump(ShardFlyweight.metadata(byteBuf)));
37 | Assert.assertTrue(ByteBufUtil.equals(metadata, ShardFlyweight.metadata(byteBuf)));
38 | Assert.assertTrue(ByteBufUtil.equals(shardKey, ShardFlyweight.shardKey(byteBuf)));
39 | Assert.assertEquals(tags, ShardFlyweight.tags(byteBuf));
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/proteus-vizceral-idl/src/main/proto/proteus/vizceral.proto:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright 2019 The Proteus Authors
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | syntax = "proto3";
16 |
17 | package io.netifi.proteus.vizceral;
18 |
19 | import "google/protobuf/empty.proto";
20 |
21 | option java_package = "io.netifi.proteus.vizceral";
22 | option java_outer_classname = "VizceralProto";
23 | option java_multiple_files = true;
24 |
25 | message Notice {
26 | int32 severity = 1;
27 | string title = 2;
28 | string link = 3;
29 | }
30 |
31 | message Metrics {
32 | double danger = 1;
33 | double normal = 2;
34 | double warning = 3;
35 | }
36 |
37 | message Connection {
38 | string source = 1;
39 | string target = 2;
40 | Metrics metrics = 3;
41 | repeated Notice notices = 4;
42 | int64 updated = 5;
43 | }
44 |
45 | message Node {
46 | string renderer = 1;
47 | string name = 2;
48 | string entryNode = 3;
49 | double maxVolume = 4;
50 | string class = 5;
51 | int64 updated = 6;
52 | repeated Node nodes = 7;
53 | repeated Connection connections = 8;
54 | string displayName = 9;
55 | repeated string metadata = 10;
56 | }
57 |
58 | service VizceralService {
59 |
60 | rpc Visualisations (google.protobuf.Empty) returns (stream Node) {}
61 | }
62 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Netifi Proteus Java
2 | This project has been moved to https://github.com/netifi/netifi-java
3 |
4 | [](https://gitter.im/netifi/general)
5 |
6 |
7 | ## Build from Source
8 | 1. Run the following Gradle command to build the project:
9 |
10 | $ ./gradlew clean build
11 |
12 | ## Updating Dependencies
13 | The proteus-java build uses [Dependencies Lock strategy](https://docs.gradle.org/current/userguide/dependency_locking.html)
14 | Which keeps all dependencies versions snapshot in one file. Such a strategy allows avoiding caveats with libs versions and prevent accidental introduction of new dependencies in the project.
15 |
16 | In order to update the dependencies versions, it is required to run the project build with
17 | additional command as in the following sample
18 |
19 | $ ./gradlew clean build --write-locks
20 |
21 |
22 | ## Documentation
23 |
24 | ## Bugs and Feedback
25 |
26 | For bugs, questions, and discussions please use the [Github Issues](https://github.com/proteus/proteus-java/issues).
27 |
28 | ## License
29 | Copyright 2017 [Netifi Inc.](https://www.netifi.com)
30 |
31 | Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
32 |
33 | http://www.apache.org/licenses/LICENSE-2.0
34 |
35 | Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
36 |
--------------------------------------------------------------------------------
/proteus-common/src/main/java/io/netifi/proteus/common/tags/ImmutableTag.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Copyright 2017 Pivotal Software, Inc.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5 | * except in compliance with the License. You may obtain a copy of the License at
6 | *
7 | *
http://www.apache.org/licenses/LICENSE-2.0
8 | *
9 | *
Unless required by applicable law or agreed to in writing, software distributed under the
10 | * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
11 | * express or implied. See the License for the specific language governing permissions and
12 | * limitations under the License.
13 | */
14 | package io.netifi.proteus.common.tags;
15 |
16 | import static java.util.Objects.requireNonNull;
17 |
18 | import java.util.Objects;
19 |
20 | public class ImmutableTag implements Tag {
21 | private String key;
22 | private String value;
23 |
24 | public ImmutableTag(String key, String value) {
25 | requireNonNull(key);
26 | requireNonNull(value);
27 | this.key = key;
28 | this.value = value;
29 | }
30 |
31 | @Override
32 | public String getKey() {
33 | return key;
34 | }
35 |
36 | @Override
37 | public String getValue() {
38 | return value;
39 | }
40 |
41 | @Override
42 | public boolean equals(Object o) {
43 | if (this == o) return true;
44 | if (o == null || getClass() != o.getClass()) return false;
45 | Tag that = (Tag) o;
46 | return Objects.equals(key, that.getKey()) && Objects.equals(value, that.getValue());
47 | }
48 |
49 | @Override
50 | public int hashCode() {
51 | int result = key.hashCode();
52 | result = 31 * result + value.hashCode();
53 | return result;
54 | }
55 |
56 | @Override
57 | public String toString() {
58 | return "tag(" + key + "=" + value + ")";
59 | }
60 | }
61 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.9.8
8 | com.google.protobuf:protobuf-java:3.6.1
9 | com.netflix.spectator:spectator-api:0.61.0
10 | com.netflix.spectator:spectator-ext-sandbox:0.61.0
11 | com.netflix.spectator:spectator-reg-atlas:0.61.0
12 | com.typesafe:config:1.3.3
13 | io.micrometer:micrometer-core:1.0.6
14 | io.micrometer:micrometer-registry-atlas:1.0.6
15 | io.netty:netty-buffer:4.1.31.Final
16 | io.netty:netty-codec-http2:4.1.31.Final
17 | io.netty:netty-codec-http:4.1.31.Final
18 | io.netty:netty-codec-socks:4.1.31.Final
19 | io.netty:netty-codec:4.1.31.Final
20 | io.netty:netty-common:4.1.31.Final
21 | io.netty:netty-handler-proxy:4.1.31.Final
22 | io.netty:netty-handler:4.1.31.Final
23 | io.netty:netty-resolver:4.1.31.Final
24 | io.netty:netty-tcnative:2.0.18.Final
25 | io.netty:netty-transport-native-epoll:4.1.31.Final
26 | io.netty:netty-transport-native-unix-common:4.1.31.Final
27 | io.netty:netty-transport:4.1.31.Final
28 | io.opentracing:opentracing-api:0.31.0
29 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
30 | io.projectreactor:reactor-core:3.2.6.RELEASE
31 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
32 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
33 | io.rsocket:rsocket-core:0.11.17.2
34 | io.rsocket:rsocket-transport-netty:0.11.17.2
35 | javax.annotation:javax.annotation-api:1.3.2
36 | javax.inject:javax.inject:1
37 | org.hdrhistogram:HdrHistogram:2.1.10
38 | org.latencyutils:LatencyUtils:2.0.3
39 | org.reactivestreams:reactive-streams:1.0.2
40 | org.slf4j:slf4j-api:1.7.25
41 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.9.8
8 | com.google.protobuf:protobuf-java:3.6.1
9 | com.netflix.spectator:spectator-api:0.61.0
10 | com.netflix.spectator:spectator-ext-sandbox:0.61.0
11 | com.netflix.spectator:spectator-reg-atlas:0.61.0
12 | com.typesafe:config:1.3.3
13 | io.micrometer:micrometer-core:1.0.6
14 | io.micrometer:micrometer-registry-atlas:1.0.6
15 | io.netty:netty-buffer:4.1.31.Final
16 | io.netty:netty-codec-http2:4.1.31.Final
17 | io.netty:netty-codec-http:4.1.31.Final
18 | io.netty:netty-codec-socks:4.1.31.Final
19 | io.netty:netty-codec:4.1.31.Final
20 | io.netty:netty-common:4.1.31.Final
21 | io.netty:netty-handler-proxy:4.1.31.Final
22 | io.netty:netty-handler:4.1.31.Final
23 | io.netty:netty-resolver:4.1.31.Final
24 | io.netty:netty-tcnative:2.0.18.Final
25 | io.netty:netty-transport-native-epoll:4.1.31.Final
26 | io.netty:netty-transport-native-unix-common:4.1.31.Final
27 | io.netty:netty-transport:4.1.31.Final
28 | io.opentracing:opentracing-api:0.31.0
29 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
30 | io.projectreactor:reactor-core:3.2.6.RELEASE
31 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
32 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
33 | io.rsocket:rsocket-core:0.11.17.2
34 | io.rsocket:rsocket-transport-netty:0.11.17.2
35 | javax.annotation:javax.annotation-api:1.3.2
36 | javax.inject:javax.inject:1
37 | org.hdrhistogram:HdrHistogram:2.1.10
38 | org.latencyutils:LatencyUtils:2.0.3
39 | org.reactivestreams:reactive-streams:1.0.2
40 | org.slf4j:slf4j-api:1.7.25
41 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.guava:failureaccess:1.0.1
7 | com.google.guava:guava:27.0.1-jre
8 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
9 | com.google.j2objc:j2objc-annotations:1.1
10 | com.google.protobuf:protobuf-java:3.6.1
11 | com.typesafe:config:1.3.3
12 | io.micrometer:micrometer-core:1.0.6
13 | io.micrometer:micrometer-registry-influx:1.0.6
14 | io.netty:netty-buffer:4.1.31.Final
15 | io.netty:netty-codec-http2:4.1.31.Final
16 | io.netty:netty-codec-http:4.1.31.Final
17 | io.netty:netty-codec-socks:4.1.31.Final
18 | io.netty:netty-codec:4.1.31.Final
19 | io.netty:netty-common:4.1.31.Final
20 | io.netty:netty-handler-proxy:4.1.31.Final
21 | io.netty:netty-handler:4.1.31.Final
22 | io.netty:netty-resolver:4.1.31.Final
23 | io.netty:netty-tcnative:2.0.18.Final
24 | io.netty:netty-transport-native-epoll:4.1.31.Final
25 | io.netty:netty-transport-native-unix-common:4.1.31.Final
26 | io.netty:netty-transport:4.1.31.Final
27 | io.opentracing:opentracing-api:0.31.0
28 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
29 | io.projectreactor:reactor-core:3.2.6.RELEASE
30 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
31 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
32 | io.rsocket:rsocket-core:0.11.17.2
33 | io.rsocket:rsocket-transport-netty:0.11.17.2
34 | javax.annotation:javax.annotation-api:1.3.2
35 | javax.inject:javax.inject:1
36 | org.checkerframework:checker-qual:2.5.2
37 | org.codehaus.mojo:animal-sniffer-annotations:1.17
38 | org.hdrhistogram:HdrHistogram:2.1.10
39 | org.latencyutils:LatencyUtils:2.0.3
40 | org.reactivestreams:reactive-streams:1.0.2
41 | org.slf4j:slf4j-api:1.7.25
42 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.guava:failureaccess:1.0.1
7 | com.google.guava:guava:27.0.1-jre
8 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
9 | com.google.j2objc:j2objc-annotations:1.1
10 | com.google.protobuf:protobuf-java:3.6.1
11 | com.typesafe:config:1.3.3
12 | io.micrometer:micrometer-core:1.0.6
13 | io.micrometer:micrometer-registry-influx:1.0.6
14 | io.netty:netty-buffer:4.1.31.Final
15 | io.netty:netty-codec-http2:4.1.31.Final
16 | io.netty:netty-codec-http:4.1.31.Final
17 | io.netty:netty-codec-socks:4.1.31.Final
18 | io.netty:netty-codec:4.1.31.Final
19 | io.netty:netty-common:4.1.31.Final
20 | io.netty:netty-handler-proxy:4.1.31.Final
21 | io.netty:netty-handler:4.1.31.Final
22 | io.netty:netty-resolver:4.1.31.Final
23 | io.netty:netty-tcnative:2.0.18.Final
24 | io.netty:netty-transport-native-epoll:4.1.31.Final
25 | io.netty:netty-transport-native-unix-common:4.1.31.Final
26 | io.netty:netty-transport:4.1.31.Final
27 | io.opentracing:opentracing-api:0.31.0
28 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
29 | io.projectreactor:reactor-core:3.2.6.RELEASE
30 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
31 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
32 | io.rsocket:rsocket-core:0.11.17.2
33 | io.rsocket:rsocket-transport-netty:0.11.17.2
34 | javax.annotation:javax.annotation-api:1.3.2
35 | javax.inject:javax.inject:1
36 | org.checkerframework:checker-qual:2.5.2
37 | org.codehaus.mojo:animal-sniffer-annotations:1.17
38 | org.hdrhistogram:HdrHistogram:2.1.10
39 | org.latencyutils:LatencyUtils:2.0.3
40 | org.reactivestreams:reactive-streams:1.0.2
41 | org.slf4j:slf4j-api:1.7.25
42 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/src/main/java/io/netifi/proteus/tracing/ProteusTracerSupplier.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.tracing;
17 |
18 | import brave.Tracing;
19 | import brave.opentracing.BraveTracer;
20 | import io.netifi.proteus.Proteus;
21 | import io.netifi.proteus.rsocket.ProteusSocket;
22 | import io.opentracing.Tracer;
23 | import java.util.Optional;
24 | import java.util.function.Supplier;
25 | import javax.inject.Inject;
26 | import javax.inject.Named;
27 |
28 | @Named("ProteusTracerSupplier")
29 | public class ProteusTracerSupplier implements Supplier {
30 | private final Tracer tracer;
31 |
32 | @Inject
33 | public ProteusTracerSupplier(Proteus proteus, Optional tracingGroup) {
34 | ProteusSocket proteusSocket = proteus.group(tracingGroup.orElse("com.netifi.proteus.tracing"));
35 |
36 | ProteusTracingServiceClient client = new ProteusTracingServiceClient(proteusSocket);
37 | ProteusReporter reporter =
38 | new ProteusReporter(client, proteus.getGroupName(), proteus.getTags());
39 |
40 | Tracing tracing = Tracing.newBuilder().spanReporter(reporter).build();
41 |
42 | tracer = BraveTracer.create(tracing);
43 | }
44 |
45 | @Override
46 | public Tracer get() {
47 | return tracer;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/src/main/java/io/netifi/proteus/micrometer/ProteusOperatingSystemMetrics.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.micrometer;
17 |
18 | import io.micrometer.core.instrument.MeterRegistry;
19 | import io.micrometer.core.instrument.Tag;
20 | import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
21 | import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
22 | import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
23 | import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
24 | import io.micrometer.core.instrument.binder.system.FileDescriptorMetrics;
25 | import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
26 | import io.micrometer.core.instrument.binder.system.UptimeMetrics;
27 |
28 | public class ProteusOperatingSystemMetrics {
29 | public ProteusOperatingSystemMetrics(MeterRegistry registry, Iterable tags) {
30 | new JvmMemoryMetrics(tags).bindTo(registry);
31 | new JvmGcMetrics(tags).bindTo(registry);
32 | new JvmThreadMetrics(tags).bindTo(registry);
33 | new ClassLoaderMetrics(tags).bindTo(registry);
34 | new ProcessorMetrics(tags).bindTo(registry);
35 | new UptimeMetrics(tags).bindTo(registry);
36 | new FileDescriptorMetrics(tags).bindTo(registry);
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/proteus-auth/src/main/java/io/netifi/proteus/auth/hashing/PBKDF2WithHmacSHA1AccessTokenHasher.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.auth.hashing;
17 |
18 | import java.security.spec.KeySpec;
19 | import java.util.Base64;
20 | import javax.crypto.SecretKey;
21 | import javax.crypto.SecretKeyFactory;
22 | import javax.crypto.spec.PBEKeySpec;
23 |
24 | /**
25 | * {@link AccessTokenHasher} implementation that uses the PBKDF2WithHmacSHA1 algorithm. It uses 4096
26 | * and produces a 256-bit hash
27 | */
28 | class PBKDF2WithHmacSHA1AccessTokenHasher implements AccessTokenHasher {
29 | static final PBKDF2WithHmacSHA1AccessTokenHasher INSTANCE =
30 | new PBKDF2WithHmacSHA1AccessTokenHasher();
31 |
32 | @Override
33 | public byte[] hash(byte[] salt, byte[] accessToken) {
34 | try {
35 | SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
36 | Base64.Encoder encoder = Base64.getEncoder();
37 | char[] chars = encoder.encodeToString(accessToken).toCharArray();
38 | KeySpec keySpec = new PBEKeySpec(chars, salt, 4096, 256);
39 | SecretKey secretKey = factory.generateSecret(keySpec);
40 | return secretKey.getEncoded();
41 | } catch (Exception e) {
42 | throw new RuntimeException(e);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | description = 'Netifi Proteus Prometheus Integration'
4 |
5 | dependencies {
6 | compile project (':proteus-client')
7 | compile 'io.rsocket.rpc:rsocket-rpc-protobuf'
8 | protobuf "io.rsocket.rpc:rsocket-rpc-metrics-idl"
9 | compile 'io.micrometer:micrometer-registry-prometheus'
10 | compileOnly 'javax.inject:javax.inject'
11 |
12 | testCompile 'junit:junit'
13 | testCompile 'javax.inject:javax.inject'
14 | testCompile 'io.projectreactor:reactor-test'
15 | testCompile "com.google.protobuf:protobuf-java"
16 | testCompile 'org.hdrhistogram:HdrHistogram'
17 | testCompile 'org.apache.logging.log4j:log4j-api'
18 | testCompile 'org.apache.logging.log4j:log4j-core'
19 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
20 | testCompile 'io.rsocket:rsocket-transport-netty'
21 | testCompile 'io.rsocket:rsocket-transport-local'
22 | testCompile 'org.mockito:mockito-core'
23 |
24 | testCompile 'org.apache.logging.log4j:log4j-api'
25 | testCompile 'org.apache.logging.log4j:log4j-core'
26 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
27 | }
28 |
29 | protobuf {
30 | generatedFilesBaseDir = "${projectDir}/src/generated"
31 |
32 | protoc {
33 | artifact = "com.google.protobuf:protoc"
34 | }
35 | plugins {
36 | rsocketRpc {
37 | artifact = "io.rsocket.rpc:rsocket-rpc-protobuf"
38 | }
39 | }
40 | generateProtoTasks {
41 | all().each { task ->
42 | // Recompile protos when build.gradle has been changed, because
43 | // it's possible the version of protoc has been changed.
44 | task.inputs.file "${rootProject.projectDir}/build.gradle"
45 | task.plugins {
46 | rsocketRpc {}
47 | }
48 | }
49 | }
50 | }
51 |
52 | clean {
53 | delete protobuf.generatedFilesBaseDir
54 | }
--------------------------------------------------------------------------------
/proteus-discovery-kubernetes/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.github.stephenc.jcip:jcip-annotations:1.0-1
5 | com.google.code.findbugs:jsr305:3.0.2
6 | com.google.code.gson:gson:2.8.0
7 | com.google.errorprone:error_prone_annotations:2.2.0
8 | com.google.guava:failureaccess:1.0.1
9 | com.google.guava:guava:27.0.1-jre
10 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
11 | com.google.j2objc:j2objc-annotations:1.1
12 | com.google.protobuf:protobuf-java:3.6.1
13 | com.microsoft.azure:adal4j:1.6.0
14 | com.nimbusds:lang-tag:1.4.4
15 | com.nimbusds:nimbus-jose-jwt:7.1
16 | com.nimbusds:oauth2-oidc-sdk:5.24.1
17 | com.squareup.okhttp:logging-interceptor:2.7.5
18 | com.squareup.okhttp:okhttp-ws:2.7.5
19 | com.squareup.okhttp:okhttp:2.7.5
20 | com.squareup.okio:okio:1.6.0
21 | commons-codec:commons-codec:1.11
22 | io.kubernetes:client-java-api:3.0.0
23 | io.kubernetes:client-java-proto:3.0.0
24 | io.kubernetes:client-java:3.0.0
25 | io.projectreactor:reactor-core:3.2.6.RELEASE
26 | io.sundr:builder-annotations:0.9.2
27 | io.sundr:resourcecify-annotations:0.9.2
28 | io.sundr:sundr-codegen:0.9.2
29 | io.sundr:sundr-core:0.9.2
30 | io.swagger:swagger-annotations:1.5.12
31 | javax.activation:activation:1.1
32 | javax.inject:javax.inject:1
33 | javax.mail:mail:1.4.7
34 | joda-time:joda-time:2.9.3
35 | net.minidev:json-smart:1.3.1
36 | org.apache.commons:commons-collections4:4.1
37 | org.apache.commons:commons-compress:1.18
38 | org.apache.commons:commons-lang3:3.7
39 | org.bouncycastle:bcpkix-jdk15on:1.59
40 | org.bouncycastle:bcprov-ext-jdk15on:1.59
41 | org.bouncycastle:bcprov-jdk15on:1.59
42 | org.checkerframework:checker-qual:2.5.2
43 | org.codehaus.mojo:animal-sniffer-annotations:1.17
44 | org.joda:joda-convert:1.2
45 | org.reactivestreams:reactive-streams:1.0.2
46 | org.slf4j:slf4j-api:1.7.25
47 | org.yaml:snakeyaml:1.19
48 |
--------------------------------------------------------------------------------
/bintray.gradle:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2015-2018 the original author or authors.
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | if (project.hasProperty('bintrayUser') && project.hasProperty('bintrayKey')) {
18 |
19 | subprojects {
20 | plugins.withId('com.jfrog.bintray') {
21 | bintray {
22 | user = project.property('bintrayUser')
23 | key = project.property('bintrayKey')
24 |
25 | publications = ['mavenJava']
26 |
27 | //dryRun = true
28 | publish = (osdetector.os == 'osx')
29 | override = true
30 |
31 | pkg {
32 | repo = 'netifi-oss'
33 | name = project.name
34 | userOrg = 'netifi'
35 | desc = "${project.description}"
36 | websiteUrl = 'https://github.com/netifi-proteus/proteus-java'
37 | issueTrackerUrl = 'https://github.com/netifi-proteus/proteus-java/issues'
38 | vcsUrl = 'https://github.com/netifi-proteus/proteus-java.git'
39 | licenses = ['Apache-2.0']
40 | githubRepo = 'netifi-proteus/proteus-java'
41 | githubReleaseNotesFile = 'CHANGELOG.md'
42 |
43 | version {
44 | name = "$project.version".toString()
45 | }
46 | }
47 | }
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/ci/travis.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # This script will build the project.
3 |
4 | echo -e "TRAVIS_BRANCH=$TRAVIS_BRANCH"
5 | echo -e "TRAVIS_TAG=$TRAVIS_TAG"
6 | echo -e "TRAVIS_COMMIT=${TRAVIS_COMMIT::7}"
7 | echo -e "TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST"
8 |
9 | if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
10 | # Pull Request
11 | echo -e "Build Pull Request #$TRAVIS_PULL_REQUEST => Branch [$TRAVIS_BRANCH]"
12 | ./gradlew clean build --stacktrace --refresh-dependencies
13 | elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "develop" ] && [ "$TRAVIS_TAG" == "" ]; then
14 | # Develop Branch
15 | echo -e 'Build Branch with Snapshot => Branch ['$TRAVIS_BRANCH']'
16 | export ORG_GRADLE_PROJECT_releaseType=snapshot
17 | ./gradlew -PversionSuffix=".BUILD-SNAPSHOT" clean build artifactoryPublish --stacktrace --refresh-dependencies
18 | elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [[ "$TRAVIS_BRANCH" == release/* ]] && [ "$TRAVIS_TAG" == "" ]; then
19 | # Release Branch
20 | echo -e 'Build Branch for Release => Branch ['$TRAVIS_BRANCH']'
21 | ./gradlew -PversionSuffix="-RC" clean build artifactoryPublish --stacktrace --refresh-dependencies
22 | elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then
23 | # Master Branch
24 | echo -e 'Build Master for Release => Branch ['$TRAVIS_BRANCH']'
25 | export ORG_GRADLE_PROJECT_releaseType=release
26 | ./gradlew clean build --stacktrace --refresh-dependencies
27 | elif [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_TAG" != "" ]; then
28 | # Tag
29 | echo -e 'Build Tag for Release => Tag ['$TRAVIS_TAG']'
30 | export ORG_GRADLE_PROJECT_releaseType=release
31 | ./gradlew clean build bintrayUpload --stacktrace --refresh-dependencies
32 | else
33 | # Feature Branch
34 | echo -e 'Build Branch => Branch ['$TRAVIS_BRANCH']'
35 | export ORG_GRADLE_PROJECT_releaseType=snapshot
36 | ./gradlew clean -PversionSuffix=".BUILD-SNAPSHOT" build artifactoryPublish --stacktrace --refresh-dependencies
37 | fi
38 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/testCompile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | com.typesafe:config:1.3.3
6 | io.micrometer:micrometer-core:1.0.6
7 | io.micrometer:micrometer-registry-prometheus:1.0.6
8 | io.netty:netty-buffer:4.1.31.Final
9 | io.netty:netty-codec-http2:4.1.31.Final
10 | io.netty:netty-codec-http:4.1.31.Final
11 | io.netty:netty-codec-socks:4.1.31.Final
12 | io.netty:netty-codec:4.1.31.Final
13 | io.netty:netty-common:4.1.31.Final
14 | io.netty:netty-handler-proxy:4.1.31.Final
15 | io.netty:netty-handler:4.1.31.Final
16 | io.netty:netty-resolver:4.1.31.Final
17 | io.netty:netty-tcnative:2.0.18.Final
18 | io.netty:netty-transport-native-epoll:4.1.31.Final
19 | io.netty:netty-transport-native-unix-common:4.1.31.Final
20 | io.netty:netty-transport:4.1.31.Final
21 | io.opentracing:opentracing-api:0.31.0
22 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
23 | io.projectreactor:reactor-core:3.2.6.RELEASE
24 | io.projectreactor:reactor-test:3.2.6.RELEASE
25 | io.prometheus:simpleclient:0.4.0
26 | io.prometheus:simpleclient_common:0.4.0
27 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
28 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
29 | io.rsocket:rsocket-core:0.11.17.2
30 | io.rsocket:rsocket-transport-local:0.11.17.2
31 | io.rsocket:rsocket-transport-netty:0.11.17.2
32 | javax.annotation:javax.annotation-api:1.3.2
33 | javax.inject:javax.inject:1
34 | junit:junit:4.12
35 | net.bytebuddy:byte-buddy-agent:1.9.7
36 | net.bytebuddy:byte-buddy:1.9.7
37 | org.apache.logging.log4j:log4j-api:2.11.2
38 | org.apache.logging.log4j:log4j-core:2.11.2
39 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
40 | org.hamcrest:hamcrest-core:1.3
41 | org.hdrhistogram:HdrHistogram:2.1.10
42 | org.latencyutils:LatencyUtils:2.0.3
43 | org.mockito:mockito-core:2.25.0
44 | org.objenesis:objenesis:2.6
45 | org.reactivestreams:reactive-streams:1.0.2
46 | org.slf4j:slf4j-api:1.7.25
47 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.google.protobuf'
2 |
3 | description = 'Netifi Proteus Openzipkin Integration'
4 |
5 | dependencies {
6 | protobuf project (':proteus-tracing-idl')
7 | compile project (':proteus-client')
8 |
9 | compile "io.rsocket.rpc:rsocket-rpc-protobuf"
10 | compile 'io.projectreactor.addons:reactor-adapter'
11 | compile "com.google.protobuf:protobuf-java-util"
12 |
13 | compile 'io.opentracing:opentracing-api'
14 | compile 'io.opentracing.brave:brave-opentracing'
15 | compile 'com.fasterxml.jackson.core:jackson-databind'
16 | compile 'com.hubspot.jackson:jackson-datatype-protobuf'
17 | compileOnly 'javax.inject:javax.inject'
18 |
19 | testCompile 'junit:junit'
20 | testCompile 'javax.inject:javax.inject'
21 | testCompile 'io.projectreactor:reactor-test'
22 | testCompile "com.google.protobuf:protobuf-java"
23 | testCompile 'org.hdrhistogram:HdrHistogram'
24 | testCompile 'org.apache.logging.log4j:log4j-api'
25 | testCompile 'org.apache.logging.log4j:log4j-core'
26 | testCompile 'org.apache.logging.log4j:log4j-slf4j-impl'
27 | testCompile 'io.rsocket:rsocket-transport-netty'
28 | testCompile 'io.rsocket:rsocket-transport-local'
29 | testCompile 'org.mockito:mockito-core'
30 | }
31 |
32 | protobuf {
33 | generatedFilesBaseDir = "${projectDir}/src/generated"
34 |
35 | protoc {
36 | artifact = "com.google.protobuf:protoc"
37 | }
38 | plugins {
39 | rsocketRpc {
40 | artifact = "io.rsocket.rpc:rsocket-rpc-protobuf"
41 | }
42 | }
43 | generateProtoTasks {
44 | all().each { task ->
45 | // Recompile protos when build.gradle has been changed, because
46 | // it's possible the version of protoc has been changed.
47 | task.inputs.file "${rootProject.projectDir}/build.gradle"
48 | task.plugins {
49 | rsocketRpc {}
50 | }
51 | }
52 | }
53 | }
54 |
55 | clean {
56 | delete protobuf.generatedFilesBaseDir
57 | }
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/testCompile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.guava:failureaccess:1.0.1
7 | com.google.guava:guava:27.0.1-jre
8 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
9 | com.google.j2objc:j2objc-annotations:1.1
10 | com.google.protobuf:protobuf-java:3.6.1
11 | com.typesafe:config:1.3.3
12 | io.micrometer:micrometer-core:1.0.6
13 | io.micrometer:micrometer-registry-influx:1.0.6
14 | io.netty:netty-buffer:4.1.31.Final
15 | io.netty:netty-codec-http2:4.1.31.Final
16 | io.netty:netty-codec-http:4.1.31.Final
17 | io.netty:netty-codec-socks:4.1.31.Final
18 | io.netty:netty-codec:4.1.31.Final
19 | io.netty:netty-common:4.1.31.Final
20 | io.netty:netty-handler-proxy:4.1.31.Final
21 | io.netty:netty-handler:4.1.31.Final
22 | io.netty:netty-resolver:4.1.31.Final
23 | io.netty:netty-tcnative:2.0.18.Final
24 | io.netty:netty-transport-native-epoll:4.1.31.Final
25 | io.netty:netty-transport-native-unix-common:4.1.31.Final
26 | io.netty:netty-transport:4.1.31.Final
27 | io.opentracing:opentracing-api:0.31.0
28 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
29 | io.projectreactor:reactor-core:3.2.6.RELEASE
30 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
31 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
32 | io.rsocket:rsocket-core:0.11.17.2
33 | io.rsocket:rsocket-transport-netty:0.11.17.2
34 | javax.annotation:javax.annotation-api:1.3.2
35 | javax.inject:javax.inject:1
36 | org.apache.logging.log4j:log4j-api:2.11.2
37 | org.apache.logging.log4j:log4j-core:2.11.2
38 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
39 | org.checkerframework:checker-qual:2.5.2
40 | org.codehaus.mojo:animal-sniffer-annotations:1.17
41 | org.hdrhistogram:HdrHistogram:2.1.10
42 | org.latencyutils:LatencyUtils:2.0.3
43 | org.reactivestreams:reactive-streams:1.0.2
44 | org.slf4j:slf4j-api:1.7.25
45 |
--------------------------------------------------------------------------------
/proteus-metrics-prometheus/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.protobuf:protobuf-java:3.6.1
5 | com.typesafe:config:1.3.3
6 | io.micrometer:micrometer-core:1.0.6
7 | io.micrometer:micrometer-registry-prometheus:1.0.6
8 | io.netty:netty-buffer:4.1.31.Final
9 | io.netty:netty-codec-http2:4.1.31.Final
10 | io.netty:netty-codec-http:4.1.31.Final
11 | io.netty:netty-codec-socks:4.1.31.Final
12 | io.netty:netty-codec:4.1.31.Final
13 | io.netty:netty-common:4.1.31.Final
14 | io.netty:netty-handler-proxy:4.1.31.Final
15 | io.netty:netty-handler:4.1.31.Final
16 | io.netty:netty-resolver:4.1.31.Final
17 | io.netty:netty-tcnative:2.0.18.Final
18 | io.netty:netty-transport-native-epoll:4.1.31.Final
19 | io.netty:netty-transport-native-unix-common:4.1.31.Final
20 | io.netty:netty-transport:4.1.31.Final
21 | io.opentracing:opentracing-api:0.31.0
22 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
23 | io.projectreactor:reactor-core:3.2.6.RELEASE
24 | io.projectreactor:reactor-test:3.2.6.RELEASE
25 | io.prometheus:simpleclient:0.4.0
26 | io.prometheus:simpleclient_common:0.4.0
27 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
28 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
29 | io.rsocket:rsocket-core:0.11.17.2
30 | io.rsocket:rsocket-transport-local:0.11.17.2
31 | io.rsocket:rsocket-transport-netty:0.11.17.2
32 | javax.annotation:javax.annotation-api:1.3.2
33 | javax.inject:javax.inject:1
34 | junit:junit:4.12
35 | net.bytebuddy:byte-buddy-agent:1.9.7
36 | net.bytebuddy:byte-buddy:1.9.7
37 | org.apache.logging.log4j:log4j-api:2.11.2
38 | org.apache.logging.log4j:log4j-core:2.11.2
39 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
40 | org.hamcrest:hamcrest-core:1.3
41 | org.hdrhistogram:HdrHistogram:2.1.10
42 | org.latencyutils:LatencyUtils:2.0.3
43 | org.mockito:mockito-core:2.25.0
44 | org.objenesis:objenesis:2.6
45 | org.reactivestreams:reactive-streams:1.0.2
46 | org.slf4j:slf4j-api:1.7.25
47 |
--------------------------------------------------------------------------------
/proteus-metrics-influx/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.google.code.findbugs:jsr305:3.0.2
5 | com.google.errorprone:error_prone_annotations:2.2.0
6 | com.google.guava:failureaccess:1.0.1
7 | com.google.guava:guava:27.0.1-jre
8 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
9 | com.google.j2objc:j2objc-annotations:1.1
10 | com.google.protobuf:protobuf-java:3.6.1
11 | com.typesafe:config:1.3.3
12 | io.micrometer:micrometer-core:1.0.6
13 | io.micrometer:micrometer-registry-influx:1.0.6
14 | io.netty:netty-buffer:4.1.31.Final
15 | io.netty:netty-codec-http2:4.1.31.Final
16 | io.netty:netty-codec-http:4.1.31.Final
17 | io.netty:netty-codec-socks:4.1.31.Final
18 | io.netty:netty-codec:4.1.31.Final
19 | io.netty:netty-common:4.1.31.Final
20 | io.netty:netty-handler-proxy:4.1.31.Final
21 | io.netty:netty-handler:4.1.31.Final
22 | io.netty:netty-resolver:4.1.31.Final
23 | io.netty:netty-tcnative:2.0.18.Final
24 | io.netty:netty-transport-native-epoll:4.1.31.Final
25 | io.netty:netty-transport-native-unix-common:4.1.31.Final
26 | io.netty:netty-transport:4.1.31.Final
27 | io.opentracing:opentracing-api:0.31.0
28 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
29 | io.projectreactor:reactor-core:3.2.6.RELEASE
30 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
31 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
32 | io.rsocket:rsocket-core:0.11.17.2
33 | io.rsocket:rsocket-transport-netty:0.11.17.2
34 | javax.annotation:javax.annotation-api:1.3.2
35 | javax.inject:javax.inject:1
36 | org.apache.logging.log4j:log4j-api:2.11.2
37 | org.apache.logging.log4j:log4j-core:2.11.2
38 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
39 | org.checkerframework:checker-qual:2.5.2
40 | org.codehaus.mojo:animal-sniffer-annotations:1.17
41 | org.hdrhistogram:HdrHistogram:2.1.10
42 | org.latencyutils:LatencyUtils:2.0.3
43 | org.reactivestreams:reactive-streams:1.0.2
44 | org.slf4j:slf4j-api:1.7.25
45 |
--------------------------------------------------------------------------------
/proteus-discovery-aws/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.google.protobuf:protobuf-java:3.6.1
8 | io.netty:netty-buffer:4.1.31.Final
9 | io.netty:netty-codec-http2:4.1.31.Final
10 | io.netty:netty-codec-http:4.1.31.Final
11 | io.netty:netty-codec-socks:4.1.31.Final
12 | io.netty:netty-codec:4.1.31.Final
13 | io.netty:netty-common:4.1.31.Final
14 | io.netty:netty-handler-proxy:4.1.31.Final
15 | io.netty:netty-handler:4.1.31.Final
16 | io.netty:netty-resolver:4.1.31.Final
17 | io.netty:netty-transport-native-epoll:4.1.31.Final
18 | io.netty:netty-transport-native-unix-common:4.1.31.Final
19 | io.netty:netty-transport:4.1.31.Final
20 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
21 | io.projectreactor:reactor-core:3.2.6.RELEASE
22 | io.projectreactor:reactor-test:3.2.6.RELEASE
23 | io.rsocket:rsocket-core:0.11.17.2
24 | io.rsocket:rsocket-transport-local:0.11.17.2
25 | io.rsocket:rsocket-transport-netty:0.11.17.2
26 | javax.inject:javax.inject:1
27 | junit:junit:4.12
28 | net.bytebuddy:byte-buddy-agent:1.9.7
29 | net.bytebuddy:byte-buddy:1.9.7
30 | org.apache.logging.log4j:log4j-api:2.11.2
31 | org.apache.logging.log4j:log4j-core:2.11.2
32 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
33 | org.hamcrest:hamcrest-core:1.3
34 | org.hdrhistogram:HdrHistogram:2.1.10
35 | org.mockito:mockito-core:2.25.0
36 | org.objenesis:objenesis:2.6
37 | org.reactivestreams:reactive-streams:1.0.2
38 | org.slf4j:slf4j-api:1.7.25
39 | software.amazon.awssdk:annotations:2.4.13
40 | software.amazon.awssdk:auth:2.4.13
41 | software.amazon.awssdk:aws-core:2.4.13
42 | software.amazon.awssdk:aws-query-protocol:2.4.13
43 | software.amazon.awssdk:ec2:2.4.13
44 | software.amazon.awssdk:http-client-spi:2.4.13
45 | software.amazon.awssdk:profiles:2.4.13
46 | software.amazon.awssdk:protocol-core:2.4.13
47 | software.amazon.awssdk:regions:2.4.13
48 | software.amazon.awssdk:sdk-core:2.4.13
49 | software.amazon.awssdk:utils:2.4.13
50 | software.amazon:flow:1.7
51 |
--------------------------------------------------------------------------------
/proteus-common/src/main/java/io/netifi/proteus/common/stats/Median.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | * Copyright 2016 Netflix, Inc.
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 | package io.netifi.proteus.common.stats;
18 |
19 | /** This implementation gives better results because it considers more data-point. */
20 | public class Median extends FrugalQuantile {
21 | public Median() {
22 | super(0.5, 1.0);
23 | }
24 |
25 | public synchronized void reset() {
26 | super.reset(0.5);
27 | }
28 |
29 | @Override
30 | public synchronized void insert(double x) {
31 | if (sign == 0) {
32 | estimate = x;
33 | sign = 1;
34 | } else {
35 | if (x > estimate) {
36 | greaterThanZero(x);
37 | } else if (x < estimate) {
38 | lessThanZero(x);
39 | }
40 | }
41 | }
42 |
43 | private void greaterThanZero(double x) {
44 | step += sign;
45 |
46 | if (step > 0) {
47 | estimate += step;
48 | } else {
49 | estimate += 1;
50 | }
51 |
52 | if (estimate > x) {
53 | step += (x - estimate);
54 | estimate = x;
55 | }
56 |
57 | if (sign < 0) {
58 | step = 1;
59 | }
60 |
61 | sign = 1;
62 | }
63 |
64 | private void lessThanZero(double x) {
65 | step -= sign;
66 |
67 | if (step > 0) {
68 | estimate -= step;
69 | } else {
70 | estimate--;
71 | }
72 |
73 | if (estimate < x) {
74 | step += (estimate - x);
75 | estimate = x;
76 | }
77 |
78 | if (sign > 0) {
79 | step = 1;
80 | }
81 |
82 | sign = -1;
83 | }
84 |
85 | @Override
86 | public String toString() {
87 | return "Median(v=" + estimate + ")";
88 | }
89 | }
90 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Created by https://www.gitignore.io/api/gradle,intellij,java,linux,osx
2 |
3 |
4 | ### Intellij ###
5 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
6 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
7 |
8 | .idea/
9 |
10 | ## File-based project format:
11 | *.iws
12 |
13 | ## Plugin-specific files:
14 |
15 | # IntelliJ
16 | out/
17 | generated/
18 |
19 | # mpeltonen/sbt-idea plugin
20 | .idea_modules/
21 |
22 | # JIRA plugin
23 | atlassian-ide-plugin.xml
24 |
25 | # Crashlytics plugin (for Android Studio and IntelliJ)
26 | com_crashlytics_export_strings.xml
27 | crashlytics.properties
28 | crashlytics-build.properties
29 | fabric.properties
30 |
31 | ### Intellij Patch ###
32 | # Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
33 |
34 | *.iml
35 | # modules.xml
36 |
37 |
38 | ### OSX ###
39 | *.DS_Store
40 | .AppleDouble
41 | .LSOverride
42 |
43 | # Icon must end with two \r
44 | Icon
45 |
46 |
47 | # Thumbnails
48 | ._*
49 |
50 | # Files that might appear in the root of a volume
51 | .DocumentRevisions-V100
52 | .fseventsd
53 | .Spotlight-V100
54 | .TemporaryItems
55 | .Trashes
56 | .VolumeIcon.icns
57 | .com.apple.timemachine.donotpresent
58 |
59 | # Directories potentially created on remote AFP share
60 | .AppleDB
61 | .AppleDesktop
62 | Network Trash Folder
63 | Temporary Items
64 | .apdisk
65 |
66 |
67 | ### Java ###
68 | *.class
69 | classes
70 |
71 | # Mobile Tools for Java (J2ME)
72 | .mtj.tmp/
73 |
74 | # Package Files #
75 | *.jar
76 | *.war
77 | *.ear
78 |
79 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
80 | hs_err_pid*
81 |
82 |
83 | ### Gradle ###
84 | .gradle
85 | **/build
86 |
87 | # Ignore Gradle GUI config
88 | gradle-app.setting
89 |
90 | # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored)
91 | !gradle-wrapper.jar
92 |
93 | # Cache of project
94 | .gradletasknamecache
95 |
96 | # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898
97 | # gradle/wrapper/gradle-wrapper.properties
98 | ${sys:appHome}
99 |
100 | */logs/**
101 |
102 | .classpath
103 | .project
104 | **/.settings/*
105 | **/bin/*
--------------------------------------------------------------------------------
/proteus-client/src/main/java/io/netifi/proteus/rsocket/UnwrappingRSocket.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.rsocket;
17 |
18 | import io.netifi.proteus.frames.*;
19 | import io.netty.buffer.ByteBuf;
20 | import io.rsocket.Payload;
21 | import io.rsocket.RSocket;
22 | import io.rsocket.util.ByteBufPayload;
23 |
24 | // Need to unwrap RSocketRpc Messages
25 | public class UnwrappingRSocket extends AbstractUnwrappingRSocket {
26 |
27 | public UnwrappingRSocket(RSocket source) {
28 | super(source);
29 | }
30 |
31 | @Override
32 | protected Payload unwrap(Payload payload) {
33 | try {
34 | ByteBuf data = payload.sliceData();
35 | ByteBuf metadata = payload.sliceMetadata();
36 | FrameType frameType = FrameHeaderFlyweight.frameType(metadata);
37 | ByteBuf unwrappedMetadata = unwrapMetadata(frameType, metadata);
38 | return ByteBufPayload.create(data.retain(), unwrappedMetadata.retain());
39 | } finally {
40 | payload.release();
41 | }
42 | }
43 |
44 | private ByteBuf unwrapMetadata(FrameType frameType, ByteBuf metadata) {
45 | switch (frameType) {
46 | case AUTHORIZATION_WRAPPER:
47 | ByteBuf innerFrame = AuthorizationWrapperFlyweight.innerFrame(metadata);
48 | return unwrapMetadata(FrameHeaderFlyweight.frameType(innerFrame), innerFrame);
49 | case GROUP:
50 | return GroupFlyweight.metadata(metadata);
51 | case BROADCAST:
52 | return BroadcastFlyweight.metadata(metadata);
53 | case SHARD:
54 | return ShardFlyweight.metadata(metadata);
55 | default:
56 | throw new IllegalStateException("unknown frame type " + frameType);
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/testCompile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.9.8
8 | com.google.protobuf:protobuf-java:3.6.1
9 | com.netflix.spectator:spectator-api:0.61.0
10 | com.netflix.spectator:spectator-ext-sandbox:0.61.0
11 | com.netflix.spectator:spectator-reg-atlas:0.61.0
12 | com.typesafe:config:1.3.3
13 | io.micrometer:micrometer-core:1.0.6
14 | io.micrometer:micrometer-registry-atlas:1.0.6
15 | io.netty:netty-buffer:4.1.31.Final
16 | io.netty:netty-codec-http2:4.1.31.Final
17 | io.netty:netty-codec-http:4.1.31.Final
18 | io.netty:netty-codec-socks:4.1.31.Final
19 | io.netty:netty-codec:4.1.31.Final
20 | io.netty:netty-common:4.1.31.Final
21 | io.netty:netty-handler-proxy:4.1.31.Final
22 | io.netty:netty-handler:4.1.31.Final
23 | io.netty:netty-resolver:4.1.31.Final
24 | io.netty:netty-tcnative:2.0.18.Final
25 | io.netty:netty-transport-native-epoll:4.1.31.Final
26 | io.netty:netty-transport-native-unix-common:4.1.31.Final
27 | io.netty:netty-transport:4.1.31.Final
28 | io.opentracing:opentracing-api:0.31.0
29 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
30 | io.projectreactor:reactor-core:3.2.6.RELEASE
31 | io.projectreactor:reactor-test:3.2.6.RELEASE
32 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
33 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
34 | io.rsocket:rsocket-core:0.11.17.2
35 | io.rsocket:rsocket-transport-local:0.11.17.2
36 | io.rsocket:rsocket-transport-netty:0.11.17.2
37 | javax.annotation:javax.annotation-api:1.3.2
38 | javax.inject:javax.inject:1
39 | junit:junit:4.12
40 | net.bytebuddy:byte-buddy-agent:1.9.7
41 | net.bytebuddy:byte-buddy:1.9.7
42 | org.apache.logging.log4j:log4j-api:2.11.2
43 | org.apache.logging.log4j:log4j-core:2.11.2
44 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
45 | org.hamcrest:hamcrest-core:1.3
46 | org.hdrhistogram:HdrHistogram:2.1.10
47 | org.latencyutils:LatencyUtils:2.0.3
48 | org.mockito:mockito-core:2.25.0
49 | org.objenesis:objenesis:2.6
50 | org.reactivestreams:reactive-streams:1.0.2
51 | org.slf4j:slf4j-api:1.7.25
52 |
--------------------------------------------------------------------------------
/proteus-metrics-micrometer/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.9.8
8 | com.google.protobuf:protobuf-java:3.6.1
9 | com.netflix.spectator:spectator-api:0.61.0
10 | com.netflix.spectator:spectator-ext-sandbox:0.61.0
11 | com.netflix.spectator:spectator-reg-atlas:0.61.0
12 | com.typesafe:config:1.3.3
13 | io.micrometer:micrometer-core:1.0.6
14 | io.micrometer:micrometer-registry-atlas:1.0.6
15 | io.netty:netty-buffer:4.1.31.Final
16 | io.netty:netty-codec-http2:4.1.31.Final
17 | io.netty:netty-codec-http:4.1.31.Final
18 | io.netty:netty-codec-socks:4.1.31.Final
19 | io.netty:netty-codec:4.1.31.Final
20 | io.netty:netty-common:4.1.31.Final
21 | io.netty:netty-handler-proxy:4.1.31.Final
22 | io.netty:netty-handler:4.1.31.Final
23 | io.netty:netty-resolver:4.1.31.Final
24 | io.netty:netty-tcnative:2.0.18.Final
25 | io.netty:netty-transport-native-epoll:4.1.31.Final
26 | io.netty:netty-transport-native-unix-common:4.1.31.Final
27 | io.netty:netty-transport:4.1.31.Final
28 | io.opentracing:opentracing-api:0.31.0
29 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
30 | io.projectreactor:reactor-core:3.2.6.RELEASE
31 | io.projectreactor:reactor-test:3.2.6.RELEASE
32 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
33 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
34 | io.rsocket:rsocket-core:0.11.17.2
35 | io.rsocket:rsocket-transport-local:0.11.17.2
36 | io.rsocket:rsocket-transport-netty:0.11.17.2
37 | javax.annotation:javax.annotation-api:1.3.2
38 | javax.inject:javax.inject:1
39 | junit:junit:4.12
40 | net.bytebuddy:byte-buddy-agent:1.9.7
41 | net.bytebuddy:byte-buddy:1.9.7
42 | org.apache.logging.log4j:log4j-api:2.11.2
43 | org.apache.logging.log4j:log4j-core:2.11.2
44 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
45 | org.hamcrest:hamcrest-core:1.3
46 | org.hdrhistogram:HdrHistogram:2.1.10
47 | org.latencyutils:LatencyUtils:2.0.3
48 | org.mockito:mockito-core:2.25.0
49 | org.objenesis:objenesis:2.6
50 | org.reactivestreams:reactive-streams:1.0.2
51 | org.slf4j:slf4j-api:1.7.25
52 |
--------------------------------------------------------------------------------
/proteus-common/src/main/java/io/netifi/proteus/common/stats/Ewma.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | * Copyright 2016 Netflix, Inc.
4 | *
5 | * Licensed under the Apache License, Version 2.0 (the "License");
6 | * you may not use this file except in compliance with the License.
7 | * You may obtain a copy of the License at
8 | *
9 | * http://www.apache.org/licenses/LICENSE-2.0
10 | *
11 | * Unless required by applicable law or agreed to in writing, software
12 | * distributed under the License is distributed on an "AS IS" BASIS,
13 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 | * See the License for the specific language governing permissions and
15 | * limitations under the License.
16 | */
17 | package io.netifi.proteus.common.stats;
18 |
19 | import io.netifi.proteus.common.time.Clock;
20 | import java.util.concurrent.TimeUnit;
21 |
22 | /**
23 | * Compute the exponential weighted moving average of a series of values. The time at which you
24 | * insert the value into `Ewma` is used to compute a weight (recent points are weighted higher). The
25 | * parameter for defining the convergence speed (like most decay process) is the half-life.
26 | *
27 | * e.g. with a half-life of 10 unit, if you insert 100 at t=0 and 200 at t=10 the ewma will be
28 | * equal to (200 - 100)/2 = 150 (half of the distance between the new and the old value)
29 | */
30 | public class Ewma {
31 | private final long tau;
32 | private volatile long stamp;
33 | private volatile double ewma;
34 |
35 | public Ewma(long halfLife, TimeUnit unit, double initialValue) {
36 | this.tau = Clock.DEFAULT.unit().convert((long) (halfLife / Math.log(2)), unit);
37 | stamp = 0L;
38 | ewma = initialValue;
39 | }
40 |
41 | public synchronized void insert(double x) {
42 | long now = Clock.DEFAULT.getEpochTime();
43 | double elapsed = Math.max(0, now - stamp);
44 | stamp = now;
45 |
46 | double w = Math.exp(-elapsed / tau);
47 | ewma = w * ewma + (1.0 - w) * x;
48 | }
49 |
50 | public synchronized void reset(double value) {
51 | stamp = 0L;
52 | ewma = value;
53 | }
54 |
55 | public double value() {
56 | return ewma;
57 | }
58 |
59 | @Override
60 | public String toString() {
61 | return "Ewma(value=" + ewma + ", age=" + (Clock.DEFAULT.getEpochTime() - stamp) + ")";
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/proteus-client/src/main/java/io/netifi/proteus/rsocket/AbstractUnwrappingRSocket.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.rsocket;
17 |
18 | import io.rsocket.Payload;
19 | import io.rsocket.RSocket;
20 | import io.rsocket.util.RSocketProxy;
21 | import org.reactivestreams.Publisher;
22 | import reactor.core.publisher.Flux;
23 | import reactor.core.publisher.Mono;
24 |
25 | /** Lets you wrap socket with */
26 | abstract class AbstractUnwrappingRSocket extends RSocketProxy {
27 |
28 | AbstractUnwrappingRSocket(RSocket source) {
29 | super(source);
30 | }
31 |
32 | protected abstract Payload unwrap(Payload payload);
33 |
34 | @Override
35 | public Mono fireAndForget(Payload payload) {
36 | try {
37 | return super.fireAndForget(unwrap(payload));
38 | } catch (Throwable t) {
39 | return Mono.error(t);
40 | }
41 | }
42 |
43 | @Override
44 | public Mono requestResponse(Payload payload) {
45 | try {
46 | return super.requestResponse(unwrap(payload));
47 | } catch (Throwable t) {
48 | return Mono.error(t);
49 | }
50 | }
51 |
52 | @Override
53 | public Flux requestStream(Payload payload) {
54 | try {
55 | return super.requestStream(unwrap(payload));
56 | } catch (Throwable t) {
57 | return Flux.error(t);
58 | }
59 | }
60 |
61 | @Override
62 | public Flux requestChannel(Publisher payloads) {
63 | return super.requestChannel(Flux.from(payloads).map(this::unwrap));
64 | }
65 |
66 | @Override
67 | public Mono metadataPush(Payload payload) {
68 | try {
69 | return super.metadataPush(unwrap(payload));
70 | } catch (Throwable t) {
71 | return Mono.error(t);
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/proteus-frames/src/main/java/io/netifi/proteus/frames/FrameHeaderFlyweight.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.frames;
17 |
18 | import io.netty.buffer.ByteBuf;
19 | import io.netty.buffer.ByteBufAllocator;
20 |
21 | public class FrameHeaderFlyweight {
22 |
23 | // Protocol Version
24 | public static final short MAJOR_VERSION = 0;
25 | public static final short MINOR_VERSION = 1;
26 |
27 | private static final int MAJOR_VERSION_SIZE = Short.BYTES;
28 | private static final int MINOR_VERSION_SIZE = Short.BYTES;
29 | private static final int FRAME_TYPE_SIZE = Short.BYTES;
30 |
31 | public static final int BYTES = MAJOR_VERSION_SIZE + MINOR_VERSION_SIZE + FRAME_TYPE_SIZE;
32 |
33 | private FrameHeaderFlyweight() {}
34 |
35 | public static ByteBuf encodeFrameHeader(
36 | final ByteBufAllocator allocator,
37 | final short majorVersion,
38 | final short minorVersion,
39 | final FrameType type) {
40 | return allocator
41 | .buffer()
42 | .writeShort(majorVersion)
43 | .writeShort(minorVersion)
44 | .writeShort(type.getEncodedType());
45 | }
46 |
47 | public static ByteBuf encodeFrameHeader(final ByteBufAllocator allocator, final FrameType type) {
48 | return encodeFrameHeader(allocator, MAJOR_VERSION, MINOR_VERSION, type);
49 | }
50 |
51 | public static short majorVersion(ByteBuf byteBuf) {
52 | return byteBuf.getShort(0);
53 | }
54 |
55 | public static short minorVersion(ByteBuf byteBuf) {
56 | return byteBuf.getShort(MAJOR_VERSION_SIZE);
57 | }
58 |
59 | public static FrameType frameType(ByteBuf byteBuf) {
60 | short frameTypeId = byteBuf.getShort(MAJOR_VERSION_SIZE + MINOR_VERSION_SIZE);
61 | return FrameType.from(frameTypeId);
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/proteus-client/src/test/proto/io/netifi/proteus/testing/protobuf/simpleservice.proto:
--------------------------------------------------------------------------------
1 | //
2 | // Copyright 2019 The Proteus Authors
3 | //
4 | // Licensed under the Apache License, Version 2.0 (the "License");
5 | // you may not use this file except in compliance with the License.
6 | // You may obtain a copy of the License at
7 | //
8 | // http://www.apache.org/licenses/LICENSE-2.0
9 | //
10 | // Unless required by applicable law or agreed to in writing, software
11 | // distributed under the License is distributed on an "AS IS" BASIS,
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | // See the License for the specific language governing permissions and
14 | // limitations under the License.
15 | syntax = "proto3";
16 |
17 | package io.netifi.proteus.testing.protobuf;
18 |
19 | import "google/protobuf/empty.proto";
20 | import "rsocket/options.proto";
21 |
22 | option java_package = "io.netifi.proteus.testing.protobuf";
23 | option java_outer_classname = "SimpleServiceProto";
24 | option java_multiple_files = true;
25 |
26 | // A simple service for test.
27 | service SimpleService {
28 | // fire and forget
29 | rpc FireAndForget (SimpleRequest) returns (google.protobuf.Empty) {
30 | option (io.rsocket.rpc.options) = {
31 | fire_and_forget: true
32 | };
33 | }
34 |
35 | // Streams when you send a Fire and Forget
36 | rpc StreamOnFireAndForget (google.protobuf.Empty) returns (stream SimpleResponse) {}
37 |
38 | // Simple unary RPC.
39 | rpc UnaryRpc (SimpleRequest) returns (SimpleResponse) {}
40 |
41 | // Simple client-to-server streaming RPC.
42 | rpc ClientStreamingRpc (stream SimpleRequest) returns (SimpleResponse) {}
43 |
44 | // Simple server-to-client streaming RPC.
45 | rpc ServerStreamingRpc (SimpleRequest) returns (stream SimpleResponse) {}
46 |
47 | // Simple server-to-client streaming RPC.
48 | rpc ServerStreamingFireHose (SimpleRequest) returns (stream SimpleResponse) {}
49 |
50 | // Simple bidirectional streaming RPC.
51 | rpc BidiStreamingRpc (stream SimpleRequest) returns (stream SimpleResponse) {}
52 | }
53 |
54 | // A simple request message type for test.
55 | message SimpleRequest {
56 | // An optional string message for test.
57 | string requestMessage = 1;
58 | }
59 |
60 | // A simple response message type for test.
61 | message SimpleResponse {
62 | // An optional string message for test.
63 | string responseMessage = 1;
64 | }
65 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/compile.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.google.code.findbugs:annotations:3.0.1
8 | com.google.code.findbugs:jsr305:3.0.2
9 | com.google.code.gson:gson:2.7
10 | com.google.errorprone:error_prone_annotations:2.2.0
11 | com.google.guava:failureaccess:1.0.1
12 | com.google.guava:guava:27.0.1-jre
13 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
14 | com.google.j2objc:j2objc-annotations:1.1
15 | com.google.protobuf:protobuf-java-util:3.6.1
16 | com.google.protobuf:protobuf-java:3.6.1
17 | com.hubspot.jackson:jackson-datatype-protobuf:0.9.10-jackson2.9-proto3
18 | com.typesafe:config:1.3.3
19 | io.micrometer:micrometer-core:1.0.6
20 | io.netty:netty-buffer:4.1.31.Final
21 | io.netty:netty-codec-http2:4.1.31.Final
22 | io.netty:netty-codec-http:4.1.31.Final
23 | io.netty:netty-codec-socks:4.1.31.Final
24 | io.netty:netty-codec:4.1.31.Final
25 | io.netty:netty-common:4.1.31.Final
26 | io.netty:netty-handler-proxy:4.1.31.Final
27 | io.netty:netty-handler:4.1.31.Final
28 | io.netty:netty-resolver:4.1.31.Final
29 | io.netty:netty-tcnative:2.0.18.Final
30 | io.netty:netty-transport-native-epoll:4.1.31.Final
31 | io.netty:netty-transport-native-unix-common:4.1.31.Final
32 | io.netty:netty-transport:4.1.31.Final
33 | io.opentracing.brave:brave-opentracing:0.33.10
34 | io.opentracing:opentracing-api:0.31.0
35 | io.projectreactor.addons:reactor-adapter:3.2.2.RELEASE
36 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
37 | io.projectreactor:reactor-core:3.2.6.RELEASE
38 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
39 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
40 | io.rsocket:rsocket-core:0.11.17.2
41 | io.rsocket:rsocket-transport-netty:0.11.17.2
42 | io.zipkin.brave:brave:5.6.1
43 | io.zipkin.reporter2:zipkin-reporter:2.7.14
44 | io.zipkin.zipkin2:zipkin:2.12.0
45 | javax.annotation:javax.annotation-api:1.3.2
46 | javax.inject:javax.inject:1
47 | org.checkerframework:checker-qual:2.5.2
48 | org.codehaus.mojo:animal-sniffer-annotations:1.17
49 | org.hdrhistogram:HdrHistogram:2.1.10
50 | org.latencyutils:LatencyUtils:2.0.3
51 | org.reactivestreams:reactive-streams:1.0.2
52 | org.slf4j:slf4j-api:1.7.25
53 |
--------------------------------------------------------------------------------
/proteus-tracing-openzipkin/gradle/dependency-locks/compileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.google.code.findbugs:annotations:3.0.1
8 | com.google.code.findbugs:jsr305:3.0.2
9 | com.google.code.gson:gson:2.7
10 | com.google.errorprone:error_prone_annotations:2.2.0
11 | com.google.guava:failureaccess:1.0.1
12 | com.google.guava:guava:27.0.1-jre
13 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
14 | com.google.j2objc:j2objc-annotations:1.1
15 | com.google.protobuf:protobuf-java-util:3.6.1
16 | com.google.protobuf:protobuf-java:3.6.1
17 | com.hubspot.jackson:jackson-datatype-protobuf:0.9.10-jackson2.9-proto3
18 | com.typesafe:config:1.3.3
19 | io.micrometer:micrometer-core:1.0.6
20 | io.netty:netty-buffer:4.1.31.Final
21 | io.netty:netty-codec-http2:4.1.31.Final
22 | io.netty:netty-codec-http:4.1.31.Final
23 | io.netty:netty-codec-socks:4.1.31.Final
24 | io.netty:netty-codec:4.1.31.Final
25 | io.netty:netty-common:4.1.31.Final
26 | io.netty:netty-handler-proxy:4.1.31.Final
27 | io.netty:netty-handler:4.1.31.Final
28 | io.netty:netty-resolver:4.1.31.Final
29 | io.netty:netty-tcnative:2.0.18.Final
30 | io.netty:netty-transport-native-epoll:4.1.31.Final
31 | io.netty:netty-transport-native-unix-common:4.1.31.Final
32 | io.netty:netty-transport:4.1.31.Final
33 | io.opentracing.brave:brave-opentracing:0.33.10
34 | io.opentracing:opentracing-api:0.31.0
35 | io.projectreactor.addons:reactor-adapter:3.2.2.RELEASE
36 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
37 | io.projectreactor:reactor-core:3.2.6.RELEASE
38 | io.rsocket.rpc:rsocket-rpc-core:0.2.13.3
39 | io.rsocket.rpc:rsocket-rpc-protobuf:0.2.13.3
40 | io.rsocket:rsocket-core:0.11.17.2
41 | io.rsocket:rsocket-transport-netty:0.11.17.2
42 | io.zipkin.brave:brave:5.6.1
43 | io.zipkin.reporter2:zipkin-reporter:2.7.14
44 | io.zipkin.zipkin2:zipkin:2.12.0
45 | javax.annotation:javax.annotation-api:1.3.2
46 | javax.inject:javax.inject:1
47 | org.checkerframework:checker-qual:2.5.2
48 | org.codehaus.mojo:animal-sniffer-annotations:1.17
49 | org.hdrhistogram:HdrHistogram:2.1.10
50 | org.latencyutils:LatencyUtils:2.0.3
51 | org.reactivestreams:reactive-streams:1.0.2
52 | org.slf4j:slf4j-api:1.7.25
53 |
--------------------------------------------------------------------------------
/proteus-discovery/src/main/java/io/netifi/proteus/discovery/StaticListDiscoveryStrategy.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.discovery;
17 |
18 | import io.netifi.proteus.common.net.HostAndPort;
19 | import java.util.Collection;
20 | import org.slf4j.Logger;
21 | import org.slf4j.LoggerFactory;
22 | import reactor.core.publisher.Flux;
23 | import reactor.core.publisher.Mono;
24 |
25 | public class StaticListDiscoveryStrategy implements DiscoveryStrategy {
26 | private static final Logger logger = LoggerFactory.getLogger(StaticListDiscoveryStrategy.class);
27 |
28 | private final StaticListDiscoveryConfig staticListDiscoveryConfig;
29 | private Mono extends Collection> nodes;
30 |
31 | public StaticListDiscoveryStrategy(StaticListDiscoveryConfig staticListDiscoveryConfig) {
32 | this.staticListDiscoveryConfig = staticListDiscoveryConfig;
33 | this.nodes =
34 | Mono.defer(
35 | () -> {
36 | if (this.staticListDiscoveryConfig.getAddresses().isEmpty()) {
37 | return Mono.empty();
38 | } else {
39 | logger.debug(
40 | "seeding cluster with {}", this.staticListDiscoveryConfig.getAddresses());
41 | return Flux.fromIterable(this.staticListDiscoveryConfig.getAddresses())
42 | .map(
43 | hostPortString ->
44 | HostAndPort.fromString(hostPortString)
45 | .withDefaultPort(this.staticListDiscoveryConfig.getPort()))
46 | .collectList();
47 | }
48 | })
49 | .cache();
50 | }
51 |
52 | @Override
53 | public Mono extends Collection> discoverNodes() {
54 | return nodes;
55 | }
56 | }
57 |
--------------------------------------------------------------------------------
/proteus-discovery-consul/gradle/dependency-locks/testCompileClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.8
8 | com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
9 | com.google.code.findbugs:jsr305:3.0.2
10 | com.google.errorprone:error_prone_annotations:2.2.0
11 | com.google.guava:failureaccess:1.0.1
12 | com.google.guava:guava:27.0.1-jre
13 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
14 | com.google.j2objc:j2objc-annotations:1.1
15 | com.google.protobuf:protobuf-java:3.6.1
16 | com.orbitz.consul:consul-client:1.3.0
17 | com.squareup.okhttp3:okhttp:3.9.0
18 | com.squareup.okio:okio:1.13.0
19 | com.squareup.retrofit2:converter-jackson:2.3.0
20 | com.squareup.retrofit2:retrofit:2.3.0
21 | io.netty:netty-buffer:4.1.31.Final
22 | io.netty:netty-codec-http2:4.1.31.Final
23 | io.netty:netty-codec-http:4.1.31.Final
24 | io.netty:netty-codec-socks:4.1.31.Final
25 | io.netty:netty-codec:4.1.31.Final
26 | io.netty:netty-common:4.1.31.Final
27 | io.netty:netty-handler-proxy:4.1.31.Final
28 | io.netty:netty-handler:4.1.31.Final
29 | io.netty:netty-resolver:4.1.31.Final
30 | io.netty:netty-transport-native-epoll:4.1.31.Final
31 | io.netty:netty-transport-native-unix-common:4.1.31.Final
32 | io.netty:netty-transport:4.1.31.Final
33 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
34 | io.projectreactor:reactor-core:3.2.6.RELEASE
35 | io.projectreactor:reactor-test:3.2.6.RELEASE
36 | io.rsocket:rsocket-core:0.11.17.2
37 | io.rsocket:rsocket-transport-local:0.11.17.2
38 | io.rsocket:rsocket-transport-netty:0.11.17.2
39 | javax.inject:javax.inject:1
40 | junit:junit:4.12
41 | net.bytebuddy:byte-buddy-agent:1.9.7
42 | net.bytebuddy:byte-buddy:1.9.7
43 | org.apache.commons:commons-lang3:3.4
44 | org.apache.logging.log4j:log4j-api:2.11.2
45 | org.apache.logging.log4j:log4j-core:2.11.2
46 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
47 | org.checkerframework:checker-qual:2.5.2
48 | org.codehaus.mojo:animal-sniffer-annotations:1.17
49 | org.hamcrest:hamcrest-core:1.3
50 | org.hdrhistogram:HdrHistogram:2.1.10
51 | org.mockito:mockito-core:2.25.0
52 | org.objenesis:objenesis:2.6
53 | org.reactivestreams:reactive-streams:1.0.2
54 | org.slf4j:slf4j-api:1.7.25
55 |
--------------------------------------------------------------------------------
/proteus-discovery-consul/gradle/dependency-locks/testRuntimeClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.fasterxml.jackson.datatype:jackson-datatype-guava:2.9.8
8 | com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8
9 | com.google.code.findbugs:jsr305:3.0.2
10 | com.google.errorprone:error_prone_annotations:2.2.0
11 | com.google.guava:failureaccess:1.0.1
12 | com.google.guava:guava:27.0.1-jre
13 | com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
14 | com.google.j2objc:j2objc-annotations:1.1
15 | com.google.protobuf:protobuf-java:3.6.1
16 | com.orbitz.consul:consul-client:1.3.0
17 | com.squareup.okhttp3:okhttp:3.9.0
18 | com.squareup.okio:okio:1.13.0
19 | com.squareup.retrofit2:converter-jackson:2.3.0
20 | com.squareup.retrofit2:retrofit:2.3.0
21 | io.netty:netty-buffer:4.1.31.Final
22 | io.netty:netty-codec-http2:4.1.31.Final
23 | io.netty:netty-codec-http:4.1.31.Final
24 | io.netty:netty-codec-socks:4.1.31.Final
25 | io.netty:netty-codec:4.1.31.Final
26 | io.netty:netty-common:4.1.31.Final
27 | io.netty:netty-handler-proxy:4.1.31.Final
28 | io.netty:netty-handler:4.1.31.Final
29 | io.netty:netty-resolver:4.1.31.Final
30 | io.netty:netty-transport-native-epoll:4.1.31.Final
31 | io.netty:netty-transport-native-unix-common:4.1.31.Final
32 | io.netty:netty-transport:4.1.31.Final
33 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
34 | io.projectreactor:reactor-core:3.2.6.RELEASE
35 | io.projectreactor:reactor-test:3.2.6.RELEASE
36 | io.rsocket:rsocket-core:0.11.17.2
37 | io.rsocket:rsocket-transport-local:0.11.17.2
38 | io.rsocket:rsocket-transport-netty:0.11.17.2
39 | javax.inject:javax.inject:1
40 | junit:junit:4.12
41 | net.bytebuddy:byte-buddy-agent:1.9.7
42 | net.bytebuddy:byte-buddy:1.9.7
43 | org.apache.commons:commons-lang3:3.4
44 | org.apache.logging.log4j:log4j-api:2.11.2
45 | org.apache.logging.log4j:log4j-core:2.11.2
46 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
47 | org.checkerframework:checker-qual:2.5.2
48 | org.codehaus.mojo:animal-sniffer-annotations:1.17
49 | org.hamcrest:hamcrest-core:1.3
50 | org.hdrhistogram:HdrHistogram:2.1.10
51 | org.mockito:mockito-core:2.25.0
52 | org.objenesis:objenesis:2.6
53 | org.reactivestreams:reactive-streams:1.0.2
54 | org.slf4j:slf4j-api:1.7.25
55 |
--------------------------------------------------------------------------------
/proteus-bom/README.md:
--------------------------------------------------------------------------------
1 | # Proteus Java Bill Of Material Project
2 |
3 | A set of compatible versions for all these projects is curated under a BOM ("Bill of Material").
4 |
5 | ## Using the BOM with Maven
6 | In Maven, you need to import the bom first:
7 |
8 | ```xml
9 |
10 |
11 |
12 | io.netifi.proteus
13 | proteus-bom
14 | 1.6.1
15 | pom
16 | import
17 |
18 |
19 |
20 | ```
21 | Notice we use the `` section and the `import` scope.
22 |
23 | Next, add your dependencies to the relevant proteus projects as usual, except without a
24 | ``:
25 |
26 | ```xml
27 |
28 |
29 | io.rsocket
30 | rsocket-core
31 |
32 |
33 | io.rsocket
34 | rsocket-test
35 | test
36 |
37 |
38 | ```
39 |
40 | ## Using the BOM with Gradle
41 | ### Gradle 5.0+
42 | Use the `platform` keyword to import the Maven BOM within the `dependencies` block, then add dependencies to
43 | your project without a version number.
44 |
45 | ```groovy
46 | dependencies {
47 | // import BOM
48 | implementation platform('io.netifi.proteus:proteus-bom:Palladium-BUILD-SNAPSHOT')
49 |
50 | // add dependencies without a version number
51 | implementation 'io.rsocket:rsocket-core'
52 | }
53 | ```
54 |
55 | ### Gradle 4.x and earlier
56 | Gradle versions prior to 5.0 have no core support for Maven BOMs, but you can use Spring's [`gradle-dependency-management` plugin](https://github.com/spring-gradle-plugins/dependency-management-plugin).
57 |
58 | First, apply the plugin from Gradle Plugin Portal (check and change the version if a new one has been released):
59 |
60 | ```groovy
61 | plugins {
62 | id "io.spring.dependency-management" version "1.0.7.RELEASE"
63 | }
64 | ```
65 | Then use it to import the BOM:
66 |
67 | ```groovy
68 | dependencyManagement {
69 | imports {
70 | mavenBom "io.netifi.proteus:proteus-bom:1.6.1"
71 | }
72 | }
73 | ```
74 |
75 | Then add a dependency to your project without a version number:
76 |
77 | ```groovy
78 | dependencies {
79 | compile 'io.rsocket:rsocket-core'
80 | }
81 | ```
82 |
83 | _Sponsored by [Netifi, Inc](https://www.netifi.com)_
84 |
--------------------------------------------------------------------------------
/proteus-common/src/jmh/java/io/netifi/proteus/common/stats/EwmaPerf.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.common.stats;
17 |
18 | import java.util.ArrayList;
19 | import java.util.List;
20 | import java.util.concurrent.*;
21 | import org.openjdk.jmh.annotations.*;
22 |
23 | @BenchmarkMode(Mode.Throughput)
24 | @Fork(
25 | value = 1 // , jvmArgsAppend = {"-Dio.netty.leakDetection.level=advanced"}
26 | )
27 | @Warmup(iterations = 10)
28 | @Measurement(iterations = 10)
29 | @State(Scope.Thread)
30 | public class EwmaPerf {
31 |
32 | @Benchmark
33 | public double benchmarkInsert() {
34 | Ewma ewma = new Ewma(1, TimeUnit.SECONDS, 1.0);
35 | for (int i = 0; i < 100_000; i++) {
36 | ewma.insert(i);
37 | }
38 |
39 | return ewma.value();
40 | }
41 |
42 | @Benchmark
43 | public double benchmarkInsertFromThreads(Input input) throws Exception {
44 | List extends Callable> callables = input.callables;
45 | List> futures = input.executor.invokeAll(callables);
46 | for (Future future : futures) {
47 | future.get();
48 | }
49 | return input.ewma.value();
50 | }
51 |
52 | @State(Scope.Thread)
53 | public static class Input {
54 |
55 | public int limit = 100_000;
56 |
57 | public int threads = 5;
58 |
59 | List> callables = new ArrayList<>();
60 | ExecutorService executor = Executors.newFixedThreadPool(threads);
61 | Ewma ewma = new Ewma(30, TimeUnit.SECONDS, 1.0);
62 |
63 | @Setup
64 | public void setup() {
65 | for (int k = 0; k < threads; k++) {
66 | callables.add(
67 | () -> {
68 | for (int i = 0; i < limit; i++) {
69 | ewma.insert(i);
70 | }
71 | return ewma.value();
72 | });
73 | }
74 | }
75 |
76 | @TearDown
77 | public void teardown() {
78 | executor.shutdown();
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/proteus-common/src/jmh/java/io/netifi/proteus/common/stats/QuantilePerf.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.common.stats;
17 |
18 | import java.util.ArrayList;
19 | import java.util.List;
20 | import java.util.concurrent.*;
21 | import org.openjdk.jmh.annotations.*;
22 |
23 | @BenchmarkMode(Mode.Throughput)
24 | @Fork(
25 | value = 1 // , jvmArgsAppend = {"-Dio.netty.leakDetection.level=advanced"}
26 | )
27 | @Warmup(iterations = 10)
28 | @Measurement(iterations = 10)
29 | @State(Scope.Thread)
30 | public class QuantilePerf {
31 |
32 | @Benchmark
33 | public double benchmarkInsert() {
34 | Ewma ewma = new Ewma(1, TimeUnit.SECONDS, 1.0);
35 | for (int i = 0; i < 100_000; i++) {
36 | ewma.insert(i);
37 | }
38 |
39 | return ewma.value();
40 | }
41 |
42 | @Benchmark
43 | public double benchmarkInsertFromThreads(Input input) throws Exception {
44 | List extends Callable> callables = input.callables;
45 | List> futures = input.executor.invokeAll(callables);
46 | for (Future future : futures) {
47 | future.get();
48 | }
49 | return input.quantile.estimation();
50 | }
51 |
52 | @State(Scope.Thread)
53 | public static class Input {
54 |
55 | public int limit = 100_000;
56 |
57 | public int threads = 5;
58 |
59 | List> callables = new ArrayList<>();
60 | ExecutorService executor = Executors.newFixedThreadPool(threads);
61 | Quantile quantile = new FrugalQuantile(4);
62 |
63 | @Setup
64 | public void setup() {
65 | for (int k = 0; k < threads; k++) {
66 | callables.add(
67 | () -> {
68 | for (int i = 0; i < limit; i++) {
69 | quantile.insert(i);
70 | }
71 | return quantile.estimation();
72 | });
73 | }
74 | }
75 |
76 | @TearDown
77 | public void teardown() {
78 | executor.shutdown();
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/proteus-discovery-aws/gradle/dependency-locks/testRuntimeClasspath.lockfile:
--------------------------------------------------------------------------------
1 | # This is a Gradle generated file for dependency locking.
2 | # Manual edits can break the build and are not advised.
3 | # This file is expected to be part of source control.
4 | com.fasterxml.jackson.core:jackson-annotations:2.9.0
5 | com.fasterxml.jackson.core:jackson-core:2.9.8
6 | com.fasterxml.jackson.core:jackson-databind:2.9.8
7 | com.google.protobuf:protobuf-java:3.6.1
8 | com.typesafe.netty:netty-reactive-streams-http:2.0.0
9 | com.typesafe.netty:netty-reactive-streams:2.0.0
10 | commons-codec:commons-codec:1.10
11 | commons-logging:commons-logging:1.2
12 | io.netty:netty-buffer:4.1.31.Final
13 | io.netty:netty-codec-http2:4.1.31.Final
14 | io.netty:netty-codec-http:4.1.31.Final
15 | io.netty:netty-codec-socks:4.1.31.Final
16 | io.netty:netty-codec:4.1.31.Final
17 | io.netty:netty-common:4.1.31.Final
18 | io.netty:netty-handler-proxy:4.1.31.Final
19 | io.netty:netty-handler:4.1.31.Final
20 | io.netty:netty-resolver:4.1.31.Final
21 | io.netty:netty-transport-native-epoll:4.1.31.Final
22 | io.netty:netty-transport-native-unix-common:4.1.31.Final
23 | io.netty:netty-transport:4.1.31.Final
24 | io.projectreactor.netty:reactor-netty:0.8.5.RELEASE
25 | io.projectreactor:reactor-core:3.2.6.RELEASE
26 | io.projectreactor:reactor-test:3.2.6.RELEASE
27 | io.rsocket:rsocket-core:0.11.17.2
28 | io.rsocket:rsocket-transport-local:0.11.17.2
29 | io.rsocket:rsocket-transport-netty:0.11.17.2
30 | javax.inject:javax.inject:1
31 | junit:junit:4.12
32 | net.bytebuddy:byte-buddy-agent:1.9.7
33 | net.bytebuddy:byte-buddy:1.9.7
34 | org.apache.httpcomponents:httpclient:4.5.6
35 | org.apache.httpcomponents:httpcore:4.4.10
36 | org.apache.logging.log4j:log4j-api:2.11.2
37 | org.apache.logging.log4j:log4j-core:2.11.2
38 | org.apache.logging.log4j:log4j-slf4j-impl:2.11.2
39 | org.hamcrest:hamcrest-core:1.3
40 | org.hdrhistogram:HdrHistogram:2.1.10
41 | org.mockito:mockito-core:2.25.0
42 | org.objenesis:objenesis:2.6
43 | org.reactivestreams:reactive-streams:1.0.2
44 | org.slf4j:slf4j-api:1.7.25
45 | software.amazon.awssdk:annotations:2.4.13
46 | software.amazon.awssdk:apache-client:2.4.13
47 | software.amazon.awssdk:auth:2.4.13
48 | software.amazon.awssdk:aws-core:2.4.13
49 | software.amazon.awssdk:aws-query-protocol:2.4.13
50 | software.amazon.awssdk:ec2:2.4.13
51 | software.amazon.awssdk:http-client-spi:2.4.13
52 | software.amazon.awssdk:netty-nio-client:2.4.13
53 | software.amazon.awssdk:profiles:2.4.13
54 | software.amazon.awssdk:protocol-core:2.4.13
55 | software.amazon.awssdk:regions:2.4.13
56 | software.amazon.awssdk:sdk-core:2.4.13
57 | software.amazon.awssdk:utils:2.4.13
58 | software.amazon:flow:1.7
59 |
--------------------------------------------------------------------------------
/proteus-client/src/main/java/io/netifi/proteus/rsocket/WeightedRSocket.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright 2019 The Proteus Authors
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package io.netifi.proteus.rsocket;
17 |
18 | import io.rsocket.RSocket;
19 |
20 | /**
21 | * RSocket implementation that provides statistical weight around the connection including it's
22 | * latency and error rate. Used by ProteusBrokerService to determine the next best RSocket to
23 | * return.
24 | */
25 | public interface WeightedRSocket extends RSocket {
26 | /**
27 | * Median value of latency as per last calculation. This is not calculated per invocation.
28 | *
29 | * @return Median latency.
30 | */
31 | double medianLatency();
32 |
33 | /**
34 | * Lower quantile of latency as per last calculation. This is not calculated per invocation.
35 | *
36 | * @return Median latency.
37 | */
38 | double lowerQuantileLatency();
39 |
40 | /**
41 | * Higher quantile value of latency as per last calculation. This is not calculated per
42 | * invocation.
43 | *
44 | * @return Median latency.
45 | */
46 | double higherQuantileLatency();
47 |
48 | /**
49 | * An exponentially weighted moving average value of the time between two requests.
50 | *
51 | * @return Inter arrival time.
52 | */
53 | double interArrivalTime();
54 |
55 | /**
56 | * Number of pending requests at this moment.
57 | *
58 | * @return Number of pending requests at this moment.
59 | */
60 | int pending();
61 |
62 | /**
63 | * Last time this socket was used i.e. either a request was sent or a response was received.
64 | *
65 | * @return Last time used in millis since epoch.
66 | */
67 | long lastTimeUsedMillis();
68 |
69 | /**
70 | * Returns the predicated latency of the weighted socket
71 | *
72 | * @return predicated latency in millis
73 | */
74 | double predictedLatency();
75 |
76 | /**
77 | * Error percentage caculated as an estimated weighted average
78 | *
79 | * @return the current error percentage
80 | */
81 | double errorPercentage();
82 | }
83 |
--------------------------------------------------------------------------------