Showing preview only (3,868K chars total). Download the full file or copy to clipboard to get everything.
Repository: wso2/msf4j
Branch: master
Commit: 76897238aaef
Files: 937
Total size: 3.4 MB
Directory structure:
gitextract_cwpary60/
├── .gitignore
├── LICENSE
├── README.md
├── analytics/
│ ├── README.md
│ ├── das-setup/
│ │ ├── capps/
│ │ │ ├── msf4j_http_monitoring_capp.car
│ │ │ └── org_wso2_carbon_metrics-1.0.0.car
│ │ └── setup.sh
│ ├── msf4j-analytics/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── analytics/
│ │ │ │ ├── AnalyticUtils.java
│ │ │ │ ├── httpmonitoring/
│ │ │ │ │ ├── HTTPMonitored.java
│ │ │ │ │ ├── HTTPMonitoringDataPublisher.java
│ │ │ │ │ ├── HTTPMonitoringEvent.java
│ │ │ │ │ ├── HTTPMonitoringInterceptor.java
│ │ │ │ │ └── config/
│ │ │ │ │ ├── HTTPMonitoringConfigBuilder.java
│ │ │ │ │ └── model/
│ │ │ │ │ ├── DasConfig.java
│ │ │ │ │ └── HTTPMonitoringConfig.java
│ │ │ │ ├── internal/
│ │ │ │ │ ├── AnalyticsSC.java
│ │ │ │ │ ├── DataHolder.java
│ │ │ │ │ └── InterceptorCapabilityProvider.java
│ │ │ │ ├── metrics/
│ │ │ │ │ ├── Metrics.java
│ │ │ │ │ ├── MetricsComponent.java
│ │ │ │ │ └── MetricsInterceptor.java
│ │ │ │ └── tracing/
│ │ │ │ └── MSF4JTracingInterceptor.java
│ │ │ └── resources/
│ │ │ └── http-monitoring.yml
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── analytics/
│ │ │ └── HTTPMonitoringConfigTest.java
│ │ └── resources/
│ │ └── deployment.yaml
│ ├── msf4j-analytics-common/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── analytics/
│ │ └── common/
│ │ └── tracing/
│ │ ├── MSF4JClientTracingFilter.java
│ │ ├── TraceEvent.java
│ │ ├── TracingConstants.java
│ │ ├── TracingEventTracker.java
│ │ └── TracingUtil.java
│ ├── msf4j_http_monitoring_capp_source/
│ │ ├── build.xml
│ │ └── msf4j_http_monitoring_capp/
│ │ ├── artifacts.xml
│ │ ├── http_event_receiver_1.0.0/
│ │ │ ├── artifact.xml
│ │ │ └── http_event_receiver.xml
│ │ ├── http_event_store_1.0.0/
│ │ │ ├── artifact.xml
│ │ │ └── org_wso2_msf4j_analytics_httpmonitoring.xml
│ │ ├── http_event_stream_1.0.0/
│ │ │ ├── artifact.xml
│ │ │ └── org.wso2.msf4j.analytics.httpmonitoring_1.0.0.json
│ │ └── spark_script_1.0.0/
│ │ ├── artifact.xml
│ │ └── http_event_script.xml
│ ├── wso2das-tracing-capp/
│ │ ├── capp-content/
│ │ │ ├── Dashboard_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-message-tracing.json
│ │ │ ├── Eventreceiver_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4jtracereceiver.xml
│ │ │ ├── Eventstore_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-tracing.xml
│ │ │ ├── Eventstream_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-tracing_1.0.0.json
│ │ │ ├── GadgetMSF4JTracing_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-tracing/
│ │ │ │ ├── css/
│ │ │ │ │ └── main.css
│ │ │ │ ├── gadget.json
│ │ │ │ ├── index.xml
│ │ │ │ └── js/
│ │ │ │ ├── libs/
│ │ │ │ │ └── jquery.base64.js
│ │ │ │ └── main.js
│ │ │ └── artifacts.xml
│ │ ├── pom.xml
│ │ └── zip.xml
│ └── zipkin-tracing/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── analytics/
│ │ └── zipkintracing/
│ │ ├── MSF4JZipkinTracingInterceptor.java
│ │ ├── TraceableHttpClientRequest.java
│ │ ├── TraceableHttpClientResponse.java
│ │ ├── TraceableHttpServerRequest.java
│ │ └── TraceableHttpServerResponse.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── analytics/
│ │ └── zipkintracing/
│ │ ├── TraceableHttpClientRequestTest.java
│ │ ├── TraceableHttpClientResponseTest.java
│ │ ├── TraceableHttpServerRequestTest.java
│ │ └── TraceableHttpServerResponseTest.java
│ └── resources/
│ └── testng.xml
├── archetypes/
│ ├── README.md
│ └── msf4j-microservice/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── resources/
│ ├── META-INF/
│ │ └── maven/
│ │ └── archetype-metadata.xml
│ └── archetype-resources/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ ├── Application.java
│ └── __serviceClass__.java
├── client/
│ ├── README.md
│ ├── pom.xml
│ ├── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── client/
│ │ ├── ApacheHttpClient.java
│ │ ├── FeginZipkinTracingClient.java
│ │ ├── FeignClientWrapper.java
│ │ ├── FeignTracingClient.java
│ │ ├── MSF4JClient.java
│ │ ├── ModelUtils.java
│ │ ├── codec/
│ │ │ ├── DefaultErrorDecoder.java
│ │ │ ├── DefaultRestErrorResponse.java
│ │ │ ├── MSF4JDecoder.java
│ │ │ ├── MSF4JJacksonDecoder.java
│ │ │ └── RestErrorResponseMapper.java
│ │ └── exception/
│ │ └── RestServiceException.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── client/
│ │ └── test/
│ │ ├── ClientTest.java
│ │ ├── ModelUtils.java
│ │ ├── client/
│ │ │ ├── api/
│ │ │ │ ├── CustomerServiceAPI.java
│ │ │ │ └── InvoiceServiceAPI.java
│ │ │ └── exception/
│ │ │ ├── CustomerNotFoundResponseMapper.java
│ │ │ ├── CustomerNotFoundRestServiceException.java
│ │ │ ├── InvoiceNotFoundResponseMapper.java
│ │ │ └── InvoiceNotFoundRestServiceException.java
│ │ ├── exception/
│ │ │ ├── CustomerNotFoundException.java
│ │ │ ├── CustomerNotFoundMapper.java
│ │ │ ├── EntityNotFoundException.java
│ │ │ ├── EntityNotFoundMapper.java
│ │ │ ├── GenericServerErrorException.java
│ │ │ ├── GenericServerErrorMapper.java
│ │ │ ├── InvoiceNotFoundException.java
│ │ │ └── InvoiceNotFoundMapper.java
│ │ ├── model/
│ │ │ ├── Customer.java
│ │ │ ├── Invoice.java
│ │ │ ├── InvoiceReport.java
│ │ │ └── ServiceErrorResponse.java
│ │ └── service/
│ │ ├── CustomerService.java
│ │ ├── InvoiceService.java
│ │ └── ReportService.java
│ └── resources/
│ └── testng.xml
├── core/
│ ├── deployment.yaml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ ├── AbstractSessionManager.java
│ │ │ ├── DefaultSessionManager.java
│ │ │ ├── HttpStreamHandler.java
│ │ │ ├── HttpStreamer.java
│ │ │ ├── Interceptor.java
│ │ │ ├── Microservice.java
│ │ │ ├── MicroservicesRegistry.java
│ │ │ ├── MicroservicesRunner.java
│ │ │ ├── MicroservicesServer.java
│ │ │ ├── PersistentSessionManager.java
│ │ │ ├── Request.java
│ │ │ ├── Response.java
│ │ │ ├── ServiceMethodInfo.java
│ │ │ ├── Session.java
│ │ │ ├── SessionManager.java
│ │ │ ├── SwaggerService.java
│ │ │ ├── beanconversion/
│ │ │ │ ├── BeanConversionException.java
│ │ │ │ └── MediaTypeConverter.java
│ │ │ ├── config/
│ │ │ │ └── MSF4JConfig.java
│ │ │ ├── exception/
│ │ │ │ ├── InterceptorException.java
│ │ │ │ └── OSGiDeclarativeServiceException.java
│ │ │ ├── formparam/
│ │ │ │ ├── FileInfo.java
│ │ │ │ ├── FormDataParam.java
│ │ │ │ ├── FormItem.java
│ │ │ │ ├── FormParamIterator.java
│ │ │ │ ├── MultipartStream.java
│ │ │ │ ├── ParameterParser.java
│ │ │ │ ├── RequestContext.java
│ │ │ │ ├── exception/
│ │ │ │ │ ├── FormUploadException.java
│ │ │ │ │ ├── InvalidContentTypeException.java
│ │ │ │ │ └── InvalidFileNameException.java
│ │ │ │ └── util/
│ │ │ │ ├── Closeable.java
│ │ │ │ ├── FormItemHeader.java
│ │ │ │ ├── StreamUtil.java
│ │ │ │ ├── mime/
│ │ │ │ │ ├── Base64Decoder.java
│ │ │ │ │ ├── MimeUtility.java
│ │ │ │ │ ├── ParseException.java
│ │ │ │ │ ├── QuotedPrintableDecoder.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── interceptor/
│ │ │ │ ├── InterceptorExecutor.java
│ │ │ │ ├── OSGiInterceptorConfig.java
│ │ │ │ ├── RequestInterceptor.java
│ │ │ │ ├── ResponseInterceptor.java
│ │ │ │ └── annotation/
│ │ │ │ ├── RequestInterceptor.java
│ │ │ │ └── ResponseInterceptor.java
│ │ │ ├── internal/
│ │ │ │ ├── ClassComparator.java
│ │ │ │ ├── DataHolder.java
│ │ │ │ ├── HttpConnectorPortBindingListener.java
│ │ │ │ ├── HttpHeadersImpl.java
│ │ │ │ ├── MSF4JConstants.java
│ │ │ │ ├── MSF4JHttpConnectorListener.java
│ │ │ │ ├── MSF4JThreadFactory.java
│ │ │ │ ├── MSF4JWSConnectorListener.java
│ │ │ │ ├── MicroservicesLCException.java
│ │ │ │ ├── MicroservicesRegistryImpl.java
│ │ │ │ ├── MicroservicesServerActivator.java
│ │ │ │ ├── MicroservicesServerImpl.java
│ │ │ │ ├── MicroservicesServerSC.java
│ │ │ │ ├── beanconversion/
│ │ │ │ │ ├── BeanConverter.java
│ │ │ │ │ ├── JsonConverter.java
│ │ │ │ │ ├── TextPlainConverter.java
│ │ │ │ │ └── XmlConverter.java
│ │ │ │ ├── entitywriter/
│ │ │ │ │ ├── EntityWriter.java
│ │ │ │ │ ├── EntityWriterRegistry.java
│ │ │ │ │ ├── FileEntityWriter.java
│ │ │ │ │ ├── InputStreamEntityWriter.java
│ │ │ │ │ ├── ObjectEntityWriter.java
│ │ │ │ │ └── StreamingOutputEntityWriter.java
│ │ │ │ ├── mime/
│ │ │ │ │ ├── MimeMapper.java
│ │ │ │ │ └── MimeMappingException.java
│ │ │ │ ├── router/
│ │ │ │ │ ├── HandlerException.java
│ │ │ │ │ ├── HttpMethodInfo.java
│ │ │ │ │ ├── HttpMethodInfoBuilder.java
│ │ │ │ │ ├── HttpResourceModel.java
│ │ │ │ │ ├── HttpResourceModelProcessor.java
│ │ │ │ │ ├── ImmutablePair.java
│ │ │ │ │ ├── MicroserviceMetadata.java
│ │ │ │ │ ├── ParamConvertUtils.java
│ │ │ │ │ ├── PatternPathRouter.java
│ │ │ │ │ ├── SubresourceKey.java
│ │ │ │ │ ├── Util.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── session/
│ │ │ │ │ └── SessionIdGenerator.java
│ │ │ │ └── websocket/
│ │ │ │ ├── CloseCodeImpl.java
│ │ │ │ ├── EndpointDispatcher.java
│ │ │ │ ├── EndpointValidator.java
│ │ │ │ ├── EndpointsRegistryImpl.java
│ │ │ │ ├── WebSocketPongMessage.java
│ │ │ │ └── WebSocketServerSC.java
│ │ │ ├── security/
│ │ │ │ ├── JWTSecurityInterceptor.java
│ │ │ │ ├── MSF4JSecurityException.java
│ │ │ │ ├── SecurityErrorCode.java
│ │ │ │ ├── basic/
│ │ │ │ │ └── AbstractBasicAuthSecurityInterceptor.java
│ │ │ │ └── oauth2/
│ │ │ │ ├── IntrospectionResponse.java
│ │ │ │ └── OAuth2SecurityInterceptor.java
│ │ │ ├── template/
│ │ │ │ ├── RuntimeTemplateException.java
│ │ │ │ └── TemplateEngine.java
│ │ │ ├── util/
│ │ │ │ ├── BufferUtil.java
│ │ │ │ ├── Defaults.java
│ │ │ │ ├── HttpUtil.java
│ │ │ │ ├── Primitives.java
│ │ │ │ ├── QueryStringDecoderUtil.java
│ │ │ │ ├── ReflectionUtils.java
│ │ │ │ ├── RuntimeAnnotations.java
│ │ │ │ ├── SystemVariableUtil.java
│ │ │ │ └── Utils.java
│ │ │ └── websocket/
│ │ │ ├── WebSocketEndpoint.java
│ │ │ ├── WebSocketEndpointsRegistry.java
│ │ │ └── exception/
│ │ │ ├── WebSocketEndpointAnnotationException.java
│ │ │ ├── WebSocketEndpointMethodReturnTypeException.java
│ │ │ └── WebSocketMethodParameterException.java
│ │ └── resources/
│ │ ├── deployment.yaml
│ │ ├── log4j.properties
│ │ └── mime-map.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ ├── DeprecatedInterceptorTest.java
│ │ ├── ExtendedServiceTest.java
│ │ ├── HostBindingTest.java
│ │ ├── HttpResourceModelTest.java
│ │ ├── HttpServerTest.java
│ │ ├── HttpsServerTest.java
│ │ ├── InterceptorTest.java
│ │ ├── InterceptorTestBase.java
│ │ ├── MSF4JResponseTest.java
│ │ ├── MimeMapperTest.java
│ │ ├── MutualAuthServerTest.java
│ │ ├── PathRouterTest.java
│ │ ├── SSLKeyStoreTest.java
│ │ ├── TransportConfigurationTest.java
│ │ ├── TransportConfigurationTest2.java
│ │ ├── beanconversion/
│ │ │ └── BeanConverterTest.java
│ │ ├── conf/
│ │ │ ├── Constants.java
│ │ │ ├── SSLClientContext.java
│ │ │ ├── SSLConfig.java
│ │ │ ├── SSLHandlerFactory.java
│ │ │ └── TrustManagerFactory.java
│ │ ├── exception/
│ │ │ ├── MappedException.java
│ │ │ ├── MappedException2.java
│ │ │ ├── TestExceptionMapper.java
│ │ │ └── TestExceptionMapper2.java
│ │ ├── interceptor/
│ │ │ ├── HighPriorityClassRequestInterceptor.java
│ │ │ ├── HighPriorityClassResponseInterceptor.java
│ │ │ ├── HighPriorityGlobalRequestInterceptor.java
│ │ │ ├── HighPriorityGlobalResponseInterceptor.java
│ │ │ ├── HighPriorityMethodRequestInterceptor.java
│ │ │ ├── HighPriorityMethodResponseInterceptor.java
│ │ │ ├── LowPriorityClassRequestInterceptor.java
│ │ │ ├── LowPriorityClassResponseInterceptor.java
│ │ │ ├── LowPriorityGlobalRequestInterceptor.java
│ │ │ ├── LowPriorityGlobalResponseInterceptor.java
│ │ │ ├── LowPriorityMethodRequestInterceptor.java
│ │ │ ├── LowPriorityMethodResponseInterceptor.java
│ │ │ ├── MediumPriorityClassRequestInterceptor.java
│ │ │ ├── MediumPriorityClassResponseInterceptor.java
│ │ │ ├── MediumPriorityGlobalRequestInterceptor.java
│ │ │ ├── MediumPriorityGlobalResponseInterceptor.java
│ │ │ ├── MediumPriorityMethodRequestInterceptor.java
│ │ │ ├── MediumPriorityMethodResponseInterceptor.java
│ │ │ ├── PriorityDataHolder.java
│ │ │ ├── TestBreakRequestInterceptor.java
│ │ │ ├── TestBreakResponseInterceptor.java
│ │ │ ├── TestExceptionBreakRequestInterceptor.java
│ │ │ ├── TestInterceptor.java
│ │ │ ├── TestInterceptorDeprecated.java
│ │ │ ├── TestRequestInterceptor.java
│ │ │ └── TestResponseInterceptor.java
│ │ ├── internal/
│ │ │ ├── HttpHeadersImplTest.java
│ │ │ └── MicroservicesRegistryTest.java
│ │ ├── pojo/
│ │ │ ├── Category.java
│ │ │ ├── Company.java
│ │ │ ├── Person.java
│ │ │ ├── Pet.java
│ │ │ ├── TextBean.java
│ │ │ └── XmlBean.java
│ │ ├── service/
│ │ │ ├── ExtendedTestMicroservice.java
│ │ │ ├── InterceptorTestMicroService.java
│ │ │ ├── PriorityInterceptorTestMicroService.java
│ │ │ ├── SecondService.java
│ │ │ ├── TestMicroServiceWithDynamicPath.java
│ │ │ ├── TestMicroservice.java
│ │ │ └── sub/
│ │ │ ├── Player.java
│ │ │ └── Team.java
│ │ ├── session/
│ │ │ └── SessionIdGeneratorTest.java
│ │ ├── util/
│ │ │ ├── QueryStringDecoderUtilTest.java
│ │ │ └── client/
│ │ │ └── websocket/
│ │ │ ├── WebSocketClient.java
│ │ │ └── WebSocketClientHandler.java
│ │ └── websocket/
│ │ ├── DeploymentTest.java
│ │ ├── EndpointRegistryTest.java
│ │ ├── ValidatorTest.java
│ │ └── endpoint/
│ │ ├── ChatAppEndpoint.java
│ │ ├── EchoEndpoint.java
│ │ ├── TestEndpoint.java
│ │ ├── TestEndpointWithAllCorrect.java
│ │ ├── TestEndpointWithMandatoryParameters.java
│ │ └── error/
│ │ ├── TestEndpoinWithOnTextError.java
│ │ ├── TestEndpointWithMandatoryParametersMissing.java
│ │ ├── TestEndpointWithOnBinaryError.java
│ │ ├── TestEndpointWithOnCloseError.java
│ │ ├── TestEndpointWithOnError.java
│ │ ├── TestEndpointWithOnOpenError.java
│ │ ├── TestEndpointWithOnPongError.java
│ │ ├── TestEndpointWithReturnTypeError.java
│ │ └── TestEndpointWithServerEndpointError.java
│ └── resources/
│ ├── cert.jks
│ ├── client.jks
│ ├── deployment.yaml
│ ├── netty-transports-1.yaml
│ ├── netty-transports-2.yaml
│ ├── netty-transports-3.yaml
│ ├── netty-transports-4.yaml
│ ├── testTxtFile.txt
│ └── testng.xml
├── deployer/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── deployer/
│ │ ├── MicroserviceDeploymentException.java
│ │ ├── MicroserviceDeploymentUtils.java
│ │ └── internal/
│ │ ├── DataHolder.java
│ │ ├── MSF4JDeployerSC.java
│ │ └── MicroservicesDeployer.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── deployer/
│ │ └── MSF4JDeployerTest.java
│ └── resources/
│ └── testng.xml
├── distribution/
│ ├── binary/
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── bin.xml
│ │ ├── conf/
│ │ │ ├── netty-transports.yml
│ │ │ └── wso2carbon.jks
│ │ └── pom.xml
│ └── msf4j-all/
│ ├── README.md
│ └── pom.xml
├── features/
│ ├── etc/
│ │ └── feature.properties
│ ├── feature-test/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── osgi/
│ │ │ └── test/
│ │ │ └── MSF4JStartupTest.java
│ │ └── resources/
│ │ ├── carbon-home/
│ │ │ └── conf/
│ │ │ ├── carbon.yml
│ │ │ └── log4j2.xml
│ │ └── testng.xml
│ ├── org.wso2.msf4j.deployer.feature/
│ │ ├── pom.xml
│ │ └── resources/
│ │ └── p2.inf
│ └── org.wso2.msf4j.feature/
│ ├── pom.xml
│ └── resources/
│ └── netty-transports.yml
├── issue_template.md
├── jaxrs-delegates/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── delegates/
│ │ │ ├── CookieHeaderProvider.java
│ │ │ ├── MSF4JResponse.java
│ │ │ ├── MSF4JRuntimeDelegate.java
│ │ │ └── MediaTypeHeaderProvider.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── javax.ws.rs.ext.RuntimeDelegate
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ ├── delegates/
│ │ │ ├── CookieHeaderProviderTest.java
│ │ │ └── MediaTypeHeaderProviderTest.java
│ │ ├── models/
│ │ │ └── SampleEntity.java
│ │ └── service/
│ │ └── ClientTestMicroService.java
│ └── resources/
│ └── testng.xml
├── perf-benchmark/
│ ├── README.md
│ ├── Samples/
│ │ ├── dropwizard/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── perftest/
│ │ │ └── echo/
│ │ │ └── dropwizard/
│ │ │ ├── AppStart.java
│ │ │ └── EchoService.java
│ │ ├── ninja-echo-message/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ ├── conf/
│ │ │ │ ├── Module.java
│ │ │ │ ├── Routes.java
│ │ │ │ ├── application.conf
│ │ │ │ └── messages.properties
│ │ │ ├── controllers/
│ │ │ │ └── ApplicationController.java
│ │ │ ├── ehcache.xml
│ │ │ ├── logback.xml
│ │ │ └── util/
│ │ │ └── BodyParserEngineTextPlain.java
│ │ ├── spark/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── perftest/
│ │ │ └── echo/
│ │ │ └── spark/
│ │ │ └── Application.java
│ │ ├── springboot/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── perftest/
│ │ │ └── echo/
│ │ │ └── springboot/
│ │ │ ├── Application.java
│ │ │ └── EchoService.java
│ │ ├── wildfly/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── perftest/
│ │ │ │ └── echo/
│ │ │ │ └── wildfly/
│ │ │ │ ├── EchoService.java
│ │ │ │ └── WFApplication.java
│ │ │ └── webapp/
│ │ │ └── WEB-INF/
│ │ │ └── beans.xml
│ │ └── wso2msf4j/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ ├── run.sh
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── perftest/
│ │ └── echo/
│ │ └── wso2msf4j/
│ │ ├── Application.java
│ │ └── EchoService.java
│ ├── excecute-tests.sh
│ ├── run-latency.sh
│ └── run.sh
├── pom.xml
├── poms/
│ ├── msf4j-service/
│ │ ├── README.md
│ │ └── pom.xml
│ └── parent/
│ └── pom.xml
├── pull_request_template.md
├── samples/
│ ├── README.md
│ ├── basicauth-security/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Helloworld.java
│ │ └── UsernamePasswordSecurityInterceptor.java
│ ├── circuitbreaker/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── example/
│ │ └── service/
│ │ ├── Application.java
│ │ ├── CircuitBreakerCommand.java
│ │ ├── Stock.java
│ │ ├── StockQuoteDatabase.java
│ │ └── StockQuoteService.java
│ ├── fileserver/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── FileServer.java
│ ├── formparam/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── FormService.java
│ │ │ ├── SampleClient.java
│ │ │ └── bean/
│ │ │ ├── Company.java
│ │ │ └── Person.java
│ │ └── resources/
│ │ └── sample.txt
│ ├── helloworld/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── HelloService.java
│ ├── http-monitoring/
│ │ ├── README.md
│ │ ├── client-truststore.jks
│ │ ├── data-agent-config.xml
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── sample/
│ │ │ └── httpmonitoring/
│ │ │ ├── Application.java
│ │ │ └── service/
│ │ │ ├── Student.java
│ │ │ └── StudentService.java
│ │ └── resources/
│ │ ├── deployment.yaml
│ │ ├── http-monitoring.yaml
│ │ └── metrics.yaml
│ ├── http-session/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── CounterService.java
│ ├── interceptor/
│ │ ├── README.md
│ │ ├── deployable-jar-interceptor-service/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── deployablejarinterceptorservice/
│ │ │ ├── InterceptorService.java
│ │ │ └── interceptors/
│ │ │ ├── HTTPRequestLogger.java
│ │ │ ├── HTTPResponseLogger.java
│ │ │ ├── LogTextRequestInterceptor.java
│ │ │ ├── LogTextResponseInterceptor.java
│ │ │ ├── PropertyAddRequestInterceptor.java
│ │ │ └── PropertyGetResponseInterceptor.java
│ │ ├── fatjar-interceptor-service/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── fatjarinterceptorservice/
│ │ │ ├── Application.java
│ │ │ └── InterceptorService.java
│ │ ├── interceptor-common/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── interceptor/
│ │ │ └── common/
│ │ │ ├── HTTPRequestLogger.java
│ │ │ ├── HTTPResponseLogger.java
│ │ │ ├── LogTextRequestInterceptor.java
│ │ │ ├── LogTextResponseInterceptor.java
│ │ │ ├── PropertyAddRequestInterceptor.java
│ │ │ └── PropertyGetResponseInterceptor.java
│ │ ├── osgi-interceptor-service/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── osgiinterceptorservice/
│ │ │ ├── InterceptorService.java
│ │ │ └── config/
│ │ │ └── SampleInterceptorConfig.java
│ │ └── spring-fatjar-interceptor-service/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── samples/
│ │ └── springfatjarinterceptorservice/
│ │ ├── Application.java
│ │ ├── CustomerService.java
│ │ └── ReceptionService.java
│ ├── jpa/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── dao/
│ │ │ │ ├── AbstractRepository.java
│ │ │ │ └── UserRepository.java
│ │ │ ├── model/
│ │ │ │ └── User.java
│ │ │ └── resource/
│ │ │ └── UserResource.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── persistence.xml
│ ├── jwt-claims/
│ │ ├── JWTAccessTokenBuilder/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── wso2/
│ │ │ └── jwt/
│ │ │ └── token/
│ │ │ └── builder/
│ │ │ ├── Constants.java
│ │ │ ├── JWTAccessTokenBuilder.java
│ │ │ └── internal/
│ │ │ └── JWTAccessTokenBuilderDSComponent.java
│ │ ├── README.md
│ │ ├── jwt-sample/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── example/
│ │ │ │ ├── Application.java
│ │ │ │ ├── CustomJWTClaimsInterceptor.java
│ │ │ │ └── Helloworld.java
│ │ │ └── resources/
│ │ │ └── wso2carbon.jks
│ │ ├── pom.xml
│ │ ├── sso-agent-for-jwt-webapp/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── sample/
│ │ │ │ └── is/
│ │ │ │ └── sso/
│ │ │ │ └── agent/
│ │ │ │ ├── ForwardingServlet.java
│ │ │ │ ├── SSOAgentSampleFilter.java
│ │ │ │ ├── SampleAttributesRequestor.java
│ │ │ │ └── SampleContextEventListener.java
│ │ │ ├── resources/
│ │ │ │ ├── avis.properties
│ │ │ │ ├── travelocity.properties
│ │ │ │ └── wso2carbon.jks
│ │ │ └── webapp/
│ │ │ ├── WEB-INF/
│ │ │ │ └── web.xml
│ │ │ ├── css/
│ │ │ │ └── cart-styles.css
│ │ │ ├── errors.jsp
│ │ │ ├── home.jsp
│ │ │ └── index.jsp
│ │ └── sso-agent-sample/
│ │ └── pom.xml
│ ├── lifecycle/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── Helloworld.java
│ ├── log-interceptor-bundle/
│ │ └── pom.xml
│ ├── message-tracing/
│ │ ├── das/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── ModelUtils.java
│ │ │ ├── client/
│ │ │ │ ├── api/
│ │ │ │ │ ├── CustomerServiceAPI.java
│ │ │ │ │ └── InvoiceServiceAPI.java
│ │ │ │ └── exception/
│ │ │ │ ├── CustomerNotFoundResponseMapper.java
│ │ │ │ ├── CustomerNotFoundRestServiceException.java
│ │ │ │ ├── InvoiceNotFoundResponseMapper.java
│ │ │ │ └── InvoiceNotFoundRestServiceException.java
│ │ │ ├── exception/
│ │ │ │ ├── CustomerNotFoundException.java
│ │ │ │ ├── CustomerNotFoundMapper.java
│ │ │ │ ├── EntityNotFoundException.java
│ │ │ │ ├── EntityNotFoundMapper.java
│ │ │ │ ├── GenericServerErrorException.java
│ │ │ │ ├── GenericServerErrorMapper.java
│ │ │ │ ├── InvoiceNotFoundException.java
│ │ │ │ └── InvoiceNotFoundMapper.java
│ │ │ ├── model/
│ │ │ │ ├── Customer.java
│ │ │ │ ├── Invoice.java
│ │ │ │ ├── InvoiceReport.java
│ │ │ │ └── ServiceErrorResponse.java
│ │ │ └── service/
│ │ │ ├── CustomerService.java
│ │ │ ├── InvoiceService.java
│ │ │ └── ReportService.java
│ │ └── zipkin/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── TraceableService.java
│ │ └── TraceableServiceInterface.java
│ ├── metrics/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── sample/
│ │ │ └── metrics/
│ │ │ ├── Application.java
│ │ │ └── service/
│ │ │ └── DemoService.java
│ │ └── resources/
│ │ ├── deployment.yaml
│ │ └── metrics.yaml
│ ├── oauth2-security/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── service/
│ │ └── Helloworld.java
│ ├── petstore/
│ │ ├── README.md
│ │ ├── deployment/
│ │ │ ├── docker-compose/
│ │ │ │ ├── README.md
│ │ │ │ ├── clean.sh
│ │ │ │ ├── das/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── docker-compose.yaml
│ │ │ │ └── run.sh
│ │ │ └── kubernetes/
│ │ │ ├── README.md
│ │ │ ├── clean.sh
│ │ │ ├── external-endpoints/
│ │ │ │ ├── das-endpoint.yaml
│ │ │ │ ├── das-service.yaml
│ │ │ │ ├── is-endpoint.yaml
│ │ │ │ └── is-service.yaml
│ │ │ ├── packs/
│ │ │ │ └── README.md
│ │ │ ├── path.sh
│ │ │ ├── petstore.sh
│ │ │ └── scale.sh
│ │ ├── microservices/
│ │ │ ├── fileserver/
│ │ │ │ ├── README.md
│ │ │ │ ├── client-truststore.jks
│ │ │ │ ├── container/
│ │ │ │ │ ├── docker/
│ │ │ │ │ │ ├── Dockerfile
│ │ │ │ │ │ └── README.md
│ │ │ │ │ └── kubernetes/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── fileserver-rc.yaml
│ │ │ │ │ └── fileserver-service.yaml
│ │ │ │ ├── data-agent-conf.xml
│ │ │ │ ├── pom.xml
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── org/
│ │ │ │ │ └── wso2/
│ │ │ │ │ └── msf4j/
│ │ │ │ │ └── examples/
│ │ │ │ │ └── petstore/
│ │ │ │ │ └── fileserver/
│ │ │ │ │ ├── FileServerService.java
│ │ │ │ │ └── Runner.java
│ │ │ │ └── resources/
│ │ │ │ ├── http-monitoring.yml
│ │ │ │ ├── metrics.yml
│ │ │ │ └── wso2carbon.jks
│ │ │ ├── frontend-admin/
│ │ │ │ └── container/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── docker/
│ │ │ │ │ ├── Dockerfile
│ │ │ │ │ ├── html/
│ │ │ │ │ │ ├── .htaccess
│ │ │ │ │ │ ├── add-pet-types.php
│ │ │ │ │ │ ├── add-pets.php
│ │ │ │ │ │ ├── config/
│ │ │ │ │ │ │ └── config.php
│ │ │ │ │ │ ├── controllers/
│ │ │ │ │ │ │ ├── API/
│ │ │ │ │ │ │ │ └── curl_api.php
│ │ │ │ │ │ │ ├── authentication/
│ │ │ │ │ │ │ │ └── auth.php
│ │ │ │ │ │ │ └── rest.php
│ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ └── custom.css
│ │ │ │ │ │ ├── includes/
│ │ │ │ │ │ │ ├── header.php
│ │ │ │ │ │ │ └── navbar.php
│ │ │ │ │ │ ├── index.php
│ │ │ │ │ │ ├── js/
│ │ │ │ │ │ │ ├── custom.js
│ │ │ │ │ │ │ └── login.js
│ │ │ │ │ │ ├── libs/
│ │ │ │ │ │ │ ├── font-awesome_4.3.0/
│ │ │ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ │ │ └── font-awesome.css
│ │ │ │ │ │ │ │ └── fonts/
│ │ │ │ │ │ │ │ └── FontAwesome.otf
│ │ │ │ │ │ │ ├── font-wso2_1.2/
│ │ │ │ │ │ │ │ └── css/
│ │ │ │ │ │ │ │ └── font-wso2.css
│ │ │ │ │ │ │ ├── jquery_1.11.3/
│ │ │ │ │ │ │ │ └── jquery-1.11.3.js
│ │ │ │ │ │ │ └── noty_2.3.5/
│ │ │ │ │ │ │ ├── jquery.noty.js
│ │ │ │ │ │ │ ├── layouts/
│ │ │ │ │ │ │ │ ├── bottom.js
│ │ │ │ │ │ │ │ ├── bottomCenter.js
│ │ │ │ │ │ │ │ ├── bottomLeft.js
│ │ │ │ │ │ │ │ ├── bottomRight.js
│ │ │ │ │ │ │ │ ├── center.js
│ │ │ │ │ │ │ │ ├── centerLeft.js
│ │ │ │ │ │ │ │ ├── centerRight.js
│ │ │ │ │ │ │ │ ├── inline.js
│ │ │ │ │ │ │ │ ├── top.js
│ │ │ │ │ │ │ │ ├── topCenter.js
│ │ │ │ │ │ │ │ ├── topLeft.js
│ │ │ │ │ │ │ │ └── topRight.js
│ │ │ │ │ │ │ ├── packaged/
│ │ │ │ │ │ │ │ └── jquery.noty.packaged.js
│ │ │ │ │ │ │ ├── promise.js
│ │ │ │ │ │ │ └── themes/
│ │ │ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ │ │ ├── default.js
│ │ │ │ │ │ │ └── relax.js
│ │ │ │ │ │ ├── login.php
│ │ │ │ │ │ ├── logout.php
│ │ │ │ │ │ ├── pet-types.php
│ │ │ │ │ │ └── pets.php
│ │ │ │ │ └── init.sh
│ │ │ │ └── kubernetes/
│ │ │ │ ├── admin-fe-controller.yaml
│ │ │ │ ├── admin-fe-service.yaml
│ │ │ │ ├── redis-master-controller.yaml
│ │ │ │ └── redis-master-service.yaml
│ │ │ ├── frontend-user/
│ │ │ │ └── container/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── docker/
│ │ │ │ │ ├── Dockerfile
│ │ │ │ │ ├── html/
│ │ │ │ │ │ ├── cart.php
│ │ │ │ │ │ ├── checkout.php
│ │ │ │ │ │ ├── config/
│ │ │ │ │ │ │ └── config.php
│ │ │ │ │ │ ├── controllers/
│ │ │ │ │ │ │ ├── API/
│ │ │ │ │ │ │ │ └── curl_api.php
│ │ │ │ │ │ │ ├── authentication/
│ │ │ │ │ │ │ │ └── auth.php
│ │ │ │ │ │ │ └── cart/
│ │ │ │ │ │ │ └── cart.php
│ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ └── custom.css
│ │ │ │ │ │ ├── includes/
│ │ │ │ │ │ │ ├── header.php
│ │ │ │ │ │ │ └── navbar.php
│ │ │ │ │ │ ├── index.php
│ │ │ │ │ │ ├── js/
│ │ │ │ │ │ │ ├── custom.js
│ │ │ │ │ │ │ └── login.js
│ │ │ │ │ │ ├── libs/
│ │ │ │ │ │ │ ├── font-awesome_4.3.0/
│ │ │ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ │ │ └── font-awesome.css
│ │ │ │ │ │ │ │ └── fonts/
│ │ │ │ │ │ │ │ └── FontAwesome.otf
│ │ │ │ │ │ │ ├── font-wso2_1.2/
│ │ │ │ │ │ │ │ └── css/
│ │ │ │ │ │ │ │ └── font-wso2.css
│ │ │ │ │ │ │ ├── jquery_1.11.3/
│ │ │ │ │ │ │ │ └── jquery-1.11.3.js
│ │ │ │ │ │ │ └── noty_2.3.5/
│ │ │ │ │ │ │ ├── jquery.noty.js
│ │ │ │ │ │ │ ├── layouts/
│ │ │ │ │ │ │ │ ├── bottom.js
│ │ │ │ │ │ │ │ ├── bottomCenter.js
│ │ │ │ │ │ │ │ ├── bottomLeft.js
│ │ │ │ │ │ │ │ ├── bottomRight.js
│ │ │ │ │ │ │ │ ├── center.js
│ │ │ │ │ │ │ │ ├── centerLeft.js
│ │ │ │ │ │ │ │ ├── centerRight.js
│ │ │ │ │ │ │ │ ├── inline.js
│ │ │ │ │ │ │ │ ├── top.js
│ │ │ │ │ │ │ │ ├── topCenter.js
│ │ │ │ │ │ │ │ ├── topLeft.js
│ │ │ │ │ │ │ │ └── topRight.js
│ │ │ │ │ │ │ ├── packaged/
│ │ │ │ │ │ │ │ └── jquery.noty.packaged.js
│ │ │ │ │ │ │ ├── promise.js
│ │ │ │ │ │ │ └── themes/
│ │ │ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ │ │ ├── default.js
│ │ │ │ │ │ │ └── relax.js
│ │ │ │ │ │ ├── login.php
│ │ │ │ │ │ └── logout.php
│ │ │ │ │ └── init.sh
│ │ │ │ └── kubernetes/
│ │ │ │ ├── user-fe-controller.yaml
│ │ │ │ └── user-fe-service.yaml
│ │ │ ├── pet/
│ │ │ │ ├── README.md
│ │ │ │ ├── client-truststore.jks
│ │ │ │ ├── container/
│ │ │ │ │ ├── docker/
│ │ │ │ │ │ ├── Dockerfile
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ └── ssh/
│ │ │ │ │ │ └── Dockerfile
│ │ │ │ │ └── kubernetes/
│ │ │ │ │ ├── pet-controller.yaml
│ │ │ │ │ └── pet-service.yaml
│ │ │ │ ├── data-agent-conf.xml
│ │ │ │ ├── etc/
│ │ │ │ │ └── init.sh
│ │ │ │ ├── pom.xml
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── org/
│ │ │ │ │ └── wso2/
│ │ │ │ │ └── msf4j/
│ │ │ │ │ └── examples/
│ │ │ │ │ └── petstore/
│ │ │ │ │ └── pet/
│ │ │ │ │ ├── PetCategoryService.java
│ │ │ │ │ ├── PetConstants.java
│ │ │ │ │ ├── PetService.java
│ │ │ │ │ └── Runner.java
│ │ │ │ └── resources/
│ │ │ │ ├── http-monitoring.yml
│ │ │ │ ├── metrics.yml
│ │ │ │ └── wso2carbon.jks
│ │ │ ├── redis/
│ │ │ │ └── container/
│ │ │ │ └── kubernetes/
│ │ │ │ ├── README.md
│ │ │ │ ├── redis-controller.yaml
│ │ │ │ ├── redis-master.yaml
│ │ │ │ ├── redis-sentinel-controller.yaml
│ │ │ │ └── redis-sentinel-service.yaml
│ │ │ ├── security/
│ │ │ │ ├── client-truststore.jks
│ │ │ │ ├── container/
│ │ │ │ │ ├── docker/
│ │ │ │ │ │ └── Dockerfile
│ │ │ │ │ └── kubernetes/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── security-controller.yaml
│ │ │ │ │ └── security-service.yaml
│ │ │ │ ├── data-agent-conf.xml
│ │ │ │ ├── pom.xml
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── java/
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── org/
│ │ │ │ │ └── wso2/
│ │ │ │ │ └── msf4j/
│ │ │ │ │ └── examples/
│ │ │ │ │ └── petstore/
│ │ │ │ │ └── security/
│ │ │ │ │ ├── JWTGenerator.java
│ │ │ │ │ ├── Runner.java
│ │ │ │ │ ├── UserAuthenticationService.java
│ │ │ │ │ └── ldap/
│ │ │ │ │ ├── LDAPUserStoreManager.java
│ │ │ │ │ └── server/
│ │ │ │ │ ├── ApacheDirectoryServerActivator.java
│ │ │ │ │ └── LDAPServerConfigurationBuilder.java
│ │ │ │ └── resources/
│ │ │ │ ├── http-monitoring.yml
│ │ │ │ ├── metrics.yml
│ │ │ │ ├── repository/
│ │ │ │ │ └── conf/
│ │ │ │ │ └── embedded-ldap.xml
│ │ │ │ └── wso2carbon.jks
│ │ │ └── transaction/
│ │ │ ├── README.md
│ │ │ ├── client-truststore.jks
│ │ │ ├── container/
│ │ │ │ ├── docker/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── kubernetes/
│ │ │ │ ├── txn-controller.yaml
│ │ │ │ └── txn-service.yaml
│ │ │ ├── data-agent-conf.xml
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── examples/
│ │ │ │ └── petstore/
│ │ │ │ └── transaction/
│ │ │ │ ├── Runner.java
│ │ │ │ ├── TxnConstants.java
│ │ │ │ └── TxnService.java
│ │ │ └── resources/
│ │ │ ├── http-monitoring.yml
│ │ │ ├── metrics.yml
│ │ │ └── wso2carbon.jks
│ │ ├── pom.xml
│ │ └── util/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── examples/
│ │ └── petstore/
│ │ └── util/
│ │ ├── JedisUtil.java
│ │ └── model/
│ │ ├── Category.java
│ │ ├── CreditCard.java
│ │ ├── Order.java
│ │ ├── Pet.java
│ │ └── User.java
│ ├── regex-pathparam/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── RegexPathParam.java
│ ├── spring-helloworld/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Hello.java
│ │ ├── HelloService.java
│ │ ├── InvalidNameException.java
│ │ ├── InvalidNameExceptionMapper.java
│ │ ├── LogHeadersInterceptor.java
│ │ └── TransportConfiguration.java
│ ├── spring-profile/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── Hello.java
│ │ │ ├── HelloService.java
│ │ │ └── TransportConfig.java
│ │ └── resources/
│ │ └── application.yml
│ ├── stockquote/
│ │ ├── bundle/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── stockquote/
│ │ │ ├── Stock.java
│ │ │ ├── StockQuoteService.java
│ │ │ ├── Stocks.java
│ │ │ └── exception/
│ │ │ ├── DuplicateSymbolException.java
│ │ │ ├── DuplicateSymbolMapper.java
│ │ │ ├── EntityNotFoundException.java
│ │ │ ├── EntityNotFoundMapper.java
│ │ │ ├── SymbolNotFoundException.java
│ │ │ └── SymbolNotFoundMapper.java
│ │ ├── deployable-jar/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── stockquote/
│ │ │ └── example/
│ │ │ ├── Stock.java
│ │ │ ├── StockQuoteService.java
│ │ │ ├── Stocks.java
│ │ │ └── exception/
│ │ │ ├── DuplicateSymbolException.java
│ │ │ ├── DuplicateSymbolMapper.java
│ │ │ ├── EntityNotFoundException.java
│ │ │ ├── EntityNotFoundMapper.java
│ │ │ ├── SymbolNotFoundException.java
│ │ │ └── SymbolNotFoundMapper.java
│ │ └── fatjar/
│ │ ├── README.md
│ │ ├── conf/
│ │ │ ├── netty-transports.yml
│ │ │ └── wso2carbon.jks
│ │ ├── container/
│ │ │ ├── docker/
│ │ │ │ └── Dockerfile
│ │ │ └── kubernetes/
│ │ │ ├── stockquote-controller.yaml
│ │ │ └── stockquote-service.yaml
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Stock.java
│ │ ├── StockQuoteService.java
│ │ ├── Stocks.java
│ │ └── exception/
│ │ ├── DuplicateSymbolException.java
│ │ ├── DuplicateSymbolMapper.java
│ │ ├── EntityNotFoundException.java
│ │ ├── EntityNotFoundMapper.java
│ │ ├── SymbolNotFoundException.java
│ │ └── SymbolNotFoundMapper.java
│ ├── subresource/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Bowler.java
│ │ ├── Country.java
│ │ ├── Player.java
│ │ └── Team.java
│ ├── template/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ └── TemplateService.java
│ │ └── resources/
│ │ └── templates/
│ │ └── hello.mustache
│ └── websocket/
│ ├── README.md
│ └── chatApp/
│ ├── bundle/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── sample/
│ │ └── websocket/
│ │ └── chatapp/
│ │ └── ChatAppEndpoint.java
│ ├── deployable-jar/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── sample/
│ │ └── websocket/
│ │ └── chatapp/
│ │ └── ChatAppEndpoint.java
│ ├── fatjar/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── sample/
│ │ └── websocket/
│ │ └── chatapp/
│ │ ├── Application.java
│ │ └── ChatAppEndpoint.java
│ └── js-client/
│ └── index.html
├── spring/
│ ├── deployment.yaml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── spring/
│ │ │ ├── MSF4JBeanDefinitionRegistryPostProcessor.java
│ │ │ ├── MSF4JSpringApplication.java
│ │ │ ├── MSF4JSpringConfiguration.java
│ │ │ ├── SpringConstants.java
│ │ │ ├── SpringMicroservicesRunner.java
│ │ │ ├── property/
│ │ │ │ └── YamlFileApplicationContextInitializer.java
│ │ │ └── transport/
│ │ │ ├── HTTPSTransportConfig.java
│ │ │ ├── HTTPTransportConfig.java
│ │ │ └── TransportConfig.java
│ │ └── resources/
│ │ └── log4j.xml
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── spring/
│ │ ├── ServerConfig.java
│ │ ├── SpringHttpServerTest.java
│ │ ├── SpringInterceptorTest.java
│ │ ├── exception/
│ │ │ ├── SpringTestExceptionMapper.java
│ │ │ └── SpringTestExceptionMapper2.java
│ │ └── service/
│ │ ├── SpringTestMicroservice.java
│ │ └── second/
│ │ ├── CustomService.java
│ │ ├── SecondService.java
│ │ └── TestMicroServiceWithDynamicPath.java
│ └── resources/
│ ├── cert.jks
│ ├── client.jks
│ ├── deployment.yaml
│ ├── netty-transports-1.yml
│ ├── netty-transports-2.yml
│ ├── testTxtFile.txt
│ └── testng.xml
├── swagger/
│ ├── deployment.yaml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── swagger/
│ │ │ ├── ExtendedSwaggerReader.java
│ │ │ ├── MSF4JBeanConfig.java
│ │ │ ├── SwaggerDefinitionService.java
│ │ │ └── internal/
│ │ │ ├── DataHolder.java
│ │ │ └── SwaggerDefinitionSC.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── org.wso2.msf4j.SwaggerService
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── swagger/
│ │ └── SwaggerTest.java
│ └── resources/
│ ├── deployment.yaml
│ └── testng.xml
├── templating/
│ └── msf4j-mustache-template/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── template/
│ │ └── MustacheTemplateEngine.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── template/
│ │ └── MustacheTemplateEngineTest.java
│ └── resources/
│ └── templates/
│ ├── nomodel.mustache
│ └── withmodel.mustache
├── tests/
│ ├── osgi-tests/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── osgi/
│ │ │ └── test/
│ │ │ ├── MSF4JOSGiTest.java
│ │ │ └── service/
│ │ │ ├── SecondService.java
│ │ │ └── TestService.java
│ │ └── resources/
│ │ ├── carbon-home/
│ │ │ ├── conf/
│ │ │ │ ├── carbon.yml
│ │ │ │ ├── etc/
│ │ │ │ │ └── pax-logging.properties
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── osgi/
│ │ │ │ └── launch.properties
│ │ │ └── deployment/
│ │ │ └── README.txt
│ │ └── testng.xml
│ ├── pom.xml
│ └── test-distribution/
│ ├── carbon-home/
│ │ └── conf/
│ │ └── deployment.yaml
│ ├── pom.xml
│ └── src/
│ └── assembly/
│ └── bin.xml
└── tooling/
├── LICENSE
├── README.md
├── features/
│ ├── org.wso2.developerstudio.msf4j.feature/
│ │ ├── build.properties
│ │ ├── feature.xml
│ │ └── pom.xml
│ └── pom.xml
├── plugins/
│ ├── org.wso2.developerstudio.msf4j.artifact/
│ │ ├── .gitignore
│ │ ├── META-INF/
│ │ │ └── MANIFEST.MF
│ │ ├── build.properties
│ │ ├── plugin.xml
│ │ ├── pom.xml
│ │ ├── project_wizard.xml
│ │ └── src/
│ │ └── org/
│ │ └── wso2/
│ │ └── developerstudio/
│ │ └── msf4j/
│ │ └── artifact/
│ │ ├── Activator.java
│ │ ├── generator/
│ │ │ └── SwaggerToJavaGenerator.java
│ │ ├── model/
│ │ │ └── MSF4JProjectModel.java
│ │ ├── project/
│ │ │ └── nature/
│ │ │ └── MSF4JArtifactProjectNature.java
│ │ ├── ui/
│ │ │ └── wizard/
│ │ │ ├── MSF4JPerspective.java
│ │ │ └── MSF4JProjectCreationWizard.java
│ │ ├── util/
│ │ │ ├── GeneratorUtils.java
│ │ │ ├── LibraryUtils.java
│ │ │ ├── MSF4JArtifactConstants.java
│ │ │ ├── MSF4JDependencyResolverJob.java
│ │ │ ├── MSF4JImageUtils.java
│ │ │ ├── MSF4JMavenDependencyResolverJob.java
│ │ │ └── MSF4JProjectImporter.java
│ │ └── validators/
│ │ └── MSF4JArtifactFieldController.java
│ └── pom.xml
├── pom.xml
├── repository/
│ ├── composite/
│ │ ├── category.xml
│ │ └── pom.xml
│ ├── main/
│ │ ├── category.xml
│ │ └── pom.xml
│ └── pom.xml
└── swagger-mustache/
├── 1.4/
│ ├── ApiException.mustache
│ ├── ApiOriginFilter.mustache
│ ├── ApiResponseMessage.mustache
│ ├── NotFoundException.mustache
│ ├── README.mustache
│ ├── api.mustache
│ ├── apiService.mustache
│ ├── apiServiceFactory.mustache
│ ├── apiServiceImpl.mustache
│ ├── bodyParams.mustache
│ ├── formParams.mustache
│ ├── generatedAnnotation.mustache
│ ├── headerParams.mustache
│ ├── model.mustache
│ ├── pathParams.mustache
│ ├── pom.mustache
│ ├── queryParams.mustache
│ ├── returnTypes.mustache
│ ├── serviceBodyParams.mustache
│ ├── serviceFormParams.mustache
│ ├── serviceHeaderParams.mustache
│ ├── servicePathParams.mustache
│ ├── serviceQueryParams.mustache
│ └── web.mustache
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.class
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.ear
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
# Ignore everything in this directory
target
.classpath
.settings
.project
*.iml
*.iws
*.ipr
.idea
# Ignore dependency-reduced-pom.xml file created by Apache Maven Shade Plugin, see https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html
dependency-reduced-pom.xml
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "{}"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright {yyyy} {name of copyright owner}
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
http://www.apache.org/licenses/LICENSE-2.0
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.
================================================
FILE: README.md
================================================
[Build status:](https://wso2.org/jenkins/job/products/job/msf4j/) 
# WSO2 Microservices Framework for Java (MSF4J)
WSO2 Microservices Framework for Java (MSF4J) is a lightweight high performance framework for developing
& running microservices.
WSO2 MSF4J is one of the highest performing lightweight Java microservices frameworks. The following graphs show the
throughput, memory consumption & latency characteristics of MSF4J against other microservices frameworks.

An echo service which accepts a 1KB request & echoes it back directly and using a temp file was developed for the respective
frameworks, and requests were sent for different concurrency values. The test was repeated for each concurrency value for each
framework and the average throughput was calculated.
Tests were run out of the box without any tuning on 32 core 64GB server in JVM v1.8.0_60 with default configuration.

Memory usage for each framework was observed after running the 1KB payload echo microservice on each framework &
sending a number of requests at different concurrency levels to each service.
The graph above shows the averaged out values after several runs for each framework.
Latency results was observed using the Apache bench provided percentile values. Results were plotted for
various concurrency levels the simple echo test.

Tests were run out of the box without any tuning on 32 core 64GB server in JVM v1.8.0_60 with default configuration.
More details about the performance test can found [here](perf-benchmark).
## Hello world with MSF4J
It is really easy to define & deploy a Java microservice using WSO2 MSF4J.
You simply need to annotate your service and deploy it using a single line of code.
Let's get started by writing a hello world MSF4J microservice.
You can use the [msf4j-microservice](archetypes) Maven [archetype](http://maven.apache.org/archetype/maven-archetype-plugin/generate-mojo.html)
to create your first MSF4J project.
Make sure you have JDK 1.8 and Maven 3.x installed, & run the following command.
```
mvn archetype:generate -DarchetypeGroupId=org.wso2.msf4j \
-DarchetypeArtifactId=msf4j-microservice -DarchetypeVersion=2.6.2 \
-DgroupId=org.example -DartifactId=Hello-Service -Dversion=0.1-SNAPSHOT \
-Dpackage=org.example.service -DserviceClass=HelloService
```
This will generate a project structure for you to quickly get started.
Next navigate to the Hello-Service directory. You will find a pom.xml file and also an src directory.
#### pom.xml
This pom file inherits from the msf4j-service/pom.xml. It provides a way of setting things up quickly with minimum
amount of
configuration. Click [here](poms/msf4j-service) for more information.
```xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.wso2.msf4j</groupId>
<artifactId>msf4j-service</artifactId>
<version>2.6.2</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Hello-Service</artifactId>
<version>0.1-SNAPSHOT</version>
<name>WSO2 MSF4J Microservice</name>
<properties>
<microservice.mainClass>org.example.service.Application</microservice.mainClass>
</properties>
</project>
```
You don't need to change anything in this pom.xml file.
#### HelloService.java
Change the org.example.service.HelloService class as follows to echo back the name input parameter.
You can remove the auto generated code and replace it with the following code segment:
```java
package org.example.service;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@Path("/hello")
public class HelloService {
@GET
@Path("/{name}")
public String hello(@PathParam("name") String name) {
return "Hello " + name;
}
}
```
#### Application.java
This is the one-liner to deploy your service using WSO2 MSF4J.
```java
public class Application {
public static void main(String[] args) {
new MicroservicesRunner()
.deploy(new HelloService())
.start();
}
}
```
You can also pass in the port(s) as an argument to the MicroservicesRunner class constructor. When passing the port(s)
as an argument, by default it binds to 0.0.0.0 host. Use "msf4j.host" environment variable to override the host value.
### Build the Service
Run the following Maven command. This will create the fat jar **Hello-Service-0.1-SNAPSHOT.jar** in the **target** directory.
```
mvn package
```
This fat jar is a jar file that contains your microservice as well as all its dependencies.
### Run the Service
You just have to run the following command to get your service up and running.
```
java -jar target/Hello-Service-*.jar
```
### Test the Service with cURL
Run the following command or simply go to [http://localhost:8080/hello/wso2]
(http://localhost:8080/hello/wso2) from your browser.
```
curl http://localhost:8080/hello/wso2
```
You should see a response that prints "Hello wso2"
## Supported Annotations
In this section, we will look at the annotations used in MSF4J microservices. As you may have already noticed,
we support a subset of the JAXRS annotations.
### Class level annotations
##### @Path
Root path for resource methods. All the paths specified in the resource methods will be sub paths of this.
##### @Consumes
Default consume media type(s) for resource methods. The resource methods that do not specify @Consume annotation will
inherit this consume media type(s).
##### @Produces
Default produce media type(s) for resource methods. The resource methods that do not specify @Produce annotation will
inherit this produce media type(s).
### Method level annotations
##### @Path
Endpoint of the resource method relative to @Path of the container resource class.
##### @Consumes
Media type(s) that the method can consume. This overrides the class level @Consumes media types.
##### @Produces
Media type(s) that is produced by the method. This overrides the class level @Produces media types.
##### @GET
HTTP GET method. Specify that the resource method supports HTTP GET method.
##### @PUT
HTTP PUT method. Specify that the resource method supports HTTP PUT method.
##### @POST
HTTP POST method. Specify that the resource method supports HTTP POST method.
##### @DELETE
HTTP DELETE method. Specify that the resource method supports HTTP DELETE method.
##### @HEAD
HTTP HEAD method. Specify that the resource method supports HTTP HEAD method.
##### @OPTIONS
HTTP OPTIONS method. Specify that the resource method supports HTTP OPTIONS method.
### Parameter level annotations
##### @DefaultValue
Specify a default value for a resource method parameter. The value will be automatically converted to the
corresponding parameter's type.
##### @Context
Inject additional objects to a resource method. Currently supports injection of the following objects.
* org.wso2.msf4j.Request -
This object can be used to access properties of the HTTP request. The transport session (org.wso2.msf4j.Session)
can also be accessed via org.wso2.msf4j.Request#getSession().
See the [Session-aware service](samples/http-session) sample.
* org.wso2.msf4j.Response -
This object can be used to send HTTP responses. You can make responses more clean way by returning an instance of
javax.ws.rs.core.Response or a POJO. See the [StockQuote-Service]
(samples/stockquote/fatjar) sample.
* org.wso2.msf4j.HttpStreamer -
This object can be used to stream a chunked request body and process it while the request is streaming.
See the [FileServer](samples/fileserver) sample.
* org.wso2.msf4j.formparam.FormParamIterator -
This object can be used to stream a HTML form submission request body and process it while the request is streaming.
See the [FormParam](samples/formparam) sample.
##### @PathParam
/StockQuote/{symbol} to get value of symbol. The value will be automatically converted to the corresponding parameter
type and assigned to that parameter.
##### @QueryParam
/Students?age=18 to get value of age. The value will be automatically converted to the corresponding parameter type
and assigned to that parameter.
##### @HeaderParam
To read HTTP request header values. The value will be automatically converted to the corresponding parameter type and
assigned to that parameter.
##### @CookieParam
Extracts the value from the specified cookie, converts to the corresponding parameter type and assigns the value to
that parameter.
##### @FormParam
To support HTML form submission with application/x-www-form-urlencoded and multipart/form-data The value will be
automatically converted to the corresponding parameter type and assigned to that parameter
##### @FormDataParam
To support complex form submission with multipart/form-data content type. E.g file uploads and beans. The values will be
automatically converted to the corresponding parameter type and assigned to that parameter
### Lifecycle Callback Methods
Support following Java lifecycle callback method annotations.
##### @PostConstruct
Invoke by the container on newly constructed service instances after all dependency injection has completed and before transport starts.
##### @PreDestroy
Invoke by the container during server shutdown before the container removes the service instance.
For a detailed example, check out the lifecycle sample [here](https://github.com/wso2/msf4j/tree/master/samples/lifecycle).
## MSF4J Interceptors
Please do refer the following for complete instructions.
* [General instructions](/samples/interceptor/README.md)
* [MSF4J Interceptors - Stand alone mode instructions](/samples/interceptor/fatjar-interceptor-service/README.md)
* [MSF4J Interceptors - Deployable Jar mode instructions ](/samples/interceptor/deployable-jar-interceptor-service/README.md)
* [MSF4J Interceptors - OSGi mode instructions](/samples/interceptor/osgi-interceptor-service/README.md)
* [MSF4J Interceptors with MSF4J Spring - Fat Jar mode](/samples/interceptor/spring-fatjar-interceptor-service/README.md)
## Develop and configure MSF4J services using Spring framework
Spring is a popular Java application development framework which supports concepts like Dependency Injection(DI)
and Convention over Configuration. Spring support for MSF4J provides following features.
1. Develop MSF4J services as Spring beans
2. Develop and configure MSF4J components such as Interceptors and ExceptionMappers using Spring.
3. Use Annotation or XML based Spring configuration to configure internals of MSF4J framework such as ports, SSL etc.
Following example illustrates how to use Spring annotations together with MSF4J annotations to build a RESTful service. The main advantage here is service developers can consume Spring features such as dependency injection , Spring AOP etc. in the Spring way.
```java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
@Component
@Path("/greeting")
public class Hello {
@Autowired
private HelloService helloService;
@GET
public String message() {
return helloService.hello(" World");
}
}
```
For further details refer Spring [Helloworld sample](samples/spring-helloworld).
## Annotations for Analytics
In this section, we will look at the annotations available for analytics purposes MSF4J microservices. There are annotations
for Metrics and HTTP Monitoring.
You will need to configure [analytics](analytics) when you want to publish Metrics and HTTP Monitoring events to
WSO2 Data Analytics Server (DAS).
The Metrics data will be published to WSO2 DAS periodically. However the HTTP Monitoring events are published on each request.
For a detailed example, check out the [Metrics and HTTP Monitoring sample](samples/http-monitoring).
### Metrics Annotations
You can use the Metrics annnotations in your MSF4J microservices to understand how your microservices work in production.
There are three metrics annotations supported. Those are @Counted, @Metered and @Timed.
Each metric must have a unique name and the MSF4J will use the fully qualified method name as the metric name by default.
You can give a custom name by using the "name" parameter. This custom name will be appended to the fully qualified method name
with a dot character. You can set the "absolute" parameter to "true" if you want use only the given name as the metric name.
For example, see following table to understand how the final metric name is built by the Metrics runtime. Let's asssume that the
annotation is added to the "hello" method of "HelloService" shown above.
| Metrics Annotation | Metric Name |
| ------------------------------------------------ | --------------------------------------------------- |
| @Counted | org.example.service.HelloService.hello |
| @Counted(name = "helloCounter") | org.example.service.HelloService.hello.helloCounter |
| @Counted(name = "helloCounter", absolute = true) | helloCounter |
The Metrics annotations can be used at the Method level and Class level.
You can also configure a level in Metrics Annotations. For more information about Metric Levels,
see [WSO2 Carbon Metrics](https://github.com/wso2/carbon-metrics). In MSF4J, you can load the metrics level configuration
via the System Property named `metrics.level.conf`.
##### @Counted
Count the method invocations. There is a parameter named "monotonic" and it is set to false by default. This means that the
counter is decremented when the method returns. This is useful to count the current invocations of the annotated method.
Use `@Counted(monotonic = true)` when you want the counter to increase monotonically. This is useful to count the total invocations
of the annotated method
##### @Metered
Measure the rate of method invocations. This also keeps a count of the total invocations of the annotated method.
##### @Timed
Maintain a histogram of durations of each method invocation. This also measures the rate of method invocations and keeps a count of the
total invocations of the annotated method.
### HTTP Monitoring Annotation
You can use the annotation provided for HTTP Monitoring when you want to monitor each HTTP request and see the summary
in "HTTP Monitoring Dashboard".
##### @HTTPMonitored
Monitor each HTTP request. This annotation can be used at the Class level and the Method level.
### HTTP Message Tracing
MSF4J supports visual message tracing through user friendly dashboards in WSO2 DAS or Zipkin. MSF4J message tracing provides
a detailed insight to the complex microservices interactions in a system making monitoring, trouble shooting and optimization of
microservices very easy. Please check [WSO2 DAS Tracing](samples/message-tracing/das) and [Zipkin Tracing](samples/message-tracing/zipkin) samples for more details.
### Swagger Annotations
[Swagger](http://swagger.io/getting-started/) is a standard, language-agnostic interface to REST APIs which allows both
humans and computers to discover and understand the capabilities of the service without access to source code, documentation,
or through network traffic inspection.
MSF4J supports all [Swagger annotations](https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X) out of the box.
To enable swagger support you need to add the following dependency to your project
```xml
<dependency>
<groupId>org.wso2.msf4j</groupId>
<artifactId>msf4j-swagger</artifactId>
<version>2.6.2</version>
</dependency>
```
In order to retrieve Swagger definitions of your microservice, go to <br/>http://<host>:<port>/swagger?path=<service_base_path>.
e.g. [http://localhost:8080/swagger?path=/hello](http://localhost:8080/swagger?path=/hello)
To retrieve Swagger definitions of all microservices in your runtime, go to http://<host>:<port>/swagger.
e.g. [http://localhost:8080/swagger](http://localhost:8080/swagger)
NOTE: Even without any Swagger annotation, default Swagger definitions will be generated using the JAXRS annotation
in your MSF4J microservice.
The [StockQuote sample](samples/stockquote/fatjar) demonstrates Swagger annotations in action.
### ExceptionMapper
MSF4J supports [JAXRS ExceptionMapper](https://docs.oracle.com/javaee/7/api/javax/ws/rs/ext/ExceptionMapper.html)
which allows creation of custom responses when exceptions are thrown from MSF4J services.
The [StockQuote sample](samples/stockquote/fatjar) demonstrates ExceptionMapper in action.
The following code segment shows how ExceptionMappers are registered with the MSF4J runtime.
```java
new MicroservicesRunner().addExceptionMapper(new SymbolNotFoundMapper(), new DuplicateSymbolMapper());
```
### Circuit Breaker
Nygard's circuit breaker pattern is supported in MSF4J using the Netflix Hystrix library. For more details see the
[circuit breaker sample](samples/circuitbreaker)
### Complete Feature List
* Annotation based definition of microservices
* High performance Netty based transport
* WSO2 Developer Studio based tooling for microservices development starting from a Swagger API definition
* Generate Swagger definition using [Swagger annotations](https://github.com/swagger-api/swagger-core/wiki/Annotations-1.5.X)
* Ability to develop and Configure MSF4J services using Spring framework
* HTTP request & response streaming including support for javax.ws.rs.core.StreamingOutput.
* [ExceptionMapper]((https://docs.oracle.com/javaee/7/api/javax/ws/rs/ext/ExceptionMapper.html))
* Support for metrics & visualization of metrics using WSO2 Data Analytics Server (DAS) dashboards
* Message tracing with WSO2 DAS or Zipkin to get a detailed visual insight to the microservices interactions
* Supports circuit breaker using Netflix Hystrix.
* Support for securing microservices
* Integration with rendering engines such as Mustache
* Comprehensive samples demonstrating how to develop microservices based solutions
================================================
FILE: analytics/README.md
================================================
# WSO2 MSF4J - Analytics with WSO2 Data Analytics Server (DAS)
This directory contains the files related to publishing metrics to WSO2 Data Analytics Server (DAS)
Download WSO2 DAS
------------------------------------------
[Download](http://wso2.com/products/data-analytics-server/) WSO2 DAS and unpack it to some directory.
This will be the DAS_HOME directory.
Configure DAS
------------------------------------------
Run "das-setup/setup.sh" to setup DAS. Note that the DAS Home directory in the above step has to
be provided as an input to that script.
The setup script will also copy the already built MSF4J HTTP Monitoring Carbon App (CAPP) to DAS.
Start DAS
------------------------------------------
From DAS_HOME, run, bin/wso2server.sh to start DAS and make sure that it starts properly.
Run a sample that publishes data to DAS
------------------------------------------
Run the [HTTP Monitoring Sample](../samples/http-monitoring)
included in the distribution. This sample will publish data to DAS.
Accessing the dashboard
------------------------------------------
Go to [http://127.0.0.1:9763/monitoring/](http://127.0.0.1:9763/monitoring/). If everything works fine, you should
see the metrics & information related to your microservices on this dashboard. Please allow a few minutes for the
dashboard to be updated because the dashboard update batch task runs every few minutes.
For Advanced Users
------------------------------------------
If you are an advanced WSO2 DAS user, you can go to the DAS Management Console at
[https://localhost:9443/](https://localhost:9443/) and login with username/password admin/admin.
Once you login, you can view and manually execute the *http_event_script* in the console to immediately see
the results in the dashboard.
The sources for MSF4J HTTP Monitoring Carbon Application (CAPP) can be found inside "msf4j_http_monitoring_capp_source"
directory. This CAPP is already built and copied to WSO2 DAS when you Configure DAS as mentioned above.
================================================
FILE: analytics/das-setup/setup.sh
================================================
#!/bin/bash
# Copyright 2015 WSO2 Inc. (http://wso2.org)
#
# 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
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# 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.
#
# ----------------------------------------------------------------------------
# A script for setting up DAS
# ----------------------------------------------------------------------------
set -e
config_dir=$(dirname "$0")
das_dir=""
function help {
echo ""
echo "Usage: "
echo "setup.sh -d <DAS_HOME>"
echo ""
echo "-d: WSO2 Data Analytics Server (DAS) home directory"
echo ""
}
checkcommand () {
command -v $1 >/dev/null 2>&1 || { echo >&2 "Command $1 not found."; exit 1; }
}
while getopts "d:" opts
do
case $opts in
d)
das_dir=${OPTARG}
;;
\?)
help
exit 1
;;
esac
done
if [[ ! -d $das_dir ]]; then
echo "Please specify the WSO2 DAS Home."
help
exit 1
fi
checkcommand unzip
echo "Copying Carbon Apps to DAS."
mkdir -p $das_dir/repository/deployment/server/carbonapps
cp $config_dir/capps/*.car $das_dir/repository/deployment/server/carbonapps
echo "Setting up HTTP Monitoring Dashboard."
if [[ ! -d $das_dir/repository/deployment/server/jaggeryapps/monitoring ]]; then
mkdir -p $das_dir/repository/deployment/server/jaggeryapps/monitoring
unzip -q $config_dir/httpmon-dashboard/monitoring.zip -d $das_dir/repository/deployment/server/jaggeryapps/monitoring
fi
unzip -q -o $config_dir/httpmon-dashboard/modules.zip -d $das_dir/modules/
echo "Completed..."
================================================
FILE: analytics/msf4j-analytics/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.wso2.msf4j</groupId>
<artifactId>msf4j-parent</artifactId>
<version>2.8.14-SNAPSHOT</version>
<relativePath>../../poms/parent/pom.xml</relativePath>
</parent>
<artifactId>msf4j-analytics</artifactId>
<packaging>bundle</packaging>
<name>WSO2 MSF4J Analytics</name>
<description>WSO2 MSF4J Analytics</description>
<url>https://github.com/wso2/msf4j</url>
<dependencies>
<dependency>
<groupId>org.wso2.msf4j</groupId>
<artifactId>msf4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.wso2.carbon.metrics</groupId>
<artifactId>org.wso2.carbon.metrics.core</artifactId>
</dependency>
<dependency>
<groupId>org.wso2.carbon.metrics</groupId>
<artifactId>org.wso2.carbon.metrics.jdbc.core</artifactId>
</dependency>
<dependency>
<groupId>org.wso2.carbon.metrics</groupId>
<artifactId>org.wso2.carbon.metrics.das.core</artifactId>
</dependency>
<dependency>
<groupId>org.wso2.msf4j</groupId>
<artifactId>msf4j-analytics-common</artifactId>
</dependency>
<dependency>
<groupId>org.wso2.carbon.config</groupId>
<artifactId>org.wso2.carbon.config</artifactId>
<version>${carbon.config.version}</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.wso2.carbon.config</groupId>
<artifactId>org.wso2.carbon.config.maven.plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<!-- Profile for generating coverage report -->
<profile>
<id>coverage</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${argLine} -Xmx512m</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for creating all deployment artifacts -->
<profile>
<id>release</id>
<build>
<pluginManagement>
<plugins>
<!-- Source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<excludeResources>true</excludeResources>
</configuration>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Javadoc jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<detectJavaApiLink>true</detectJavaApiLink>
<links>
<link>http://docs.oracle.com/javaee/6/api/</link>
</links>
<excludePackageNames>*.internal.*</excludePackageNames>
<bottom>
<![CDATA[Copyright {currentYear} WSO2, Inc. <a href="http://www.apache.org/licenses/LICENSE-2.0">Licensed under the Apache License, Version 2.0</a>]]>
</bottom>
</configuration>
<executions>
<execution>
<id>attach-javadoc</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- GPG signature -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<passphrase>${gpg.passphrase}</passphrase>
<useAgent>${gpg.useagent}</useAgent>
</configuration>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<export.package>
org.wso2.msf4j.analytics.*;version="${msf4j.version}"
</export.package>
<import.package>
javax.annotation.*,
org.slf4j.*;version="${slf4j.version.range}",
org.apache.commons.beanutils.*;version="${beanutils.version.range}",
org.osgi.framework.*;version="${osgi.framework.import.version.range}",
org.osgi.util.tracker; version="${osgi.service.tracker.import.version.range}",
org.wso2.carbon.utils.*;version="${carbon.utils.package.import.version.range}",
org.wso2.carbon.config.*;version="${carbon.config.package.import.version.range}",
org.wso2.carbon.metrics.core.*;version="${carbon.metrics.version.range}",
<!--org.wso2.carbon.databridge.*,-->
org.wso2.carbon.kernel.startupresolver.*;version="${carbon.kernel.version.range}",
org.wso2.msf4j.*,
org.wso2.msf4j.util.*,
javax.ws.rs.*,
</import.package>
<carbon.component>
osgi.service;objectClass="org.wso2.carbon.kernel.startupresolver.CapabilityProvider";capabilityName="org.wso2.msf4j.Interceptor"
</carbon.component>
</properties>
</project>
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/AnalyticUtils.java
================================================
/*
* Copyright (c) 2017, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wso2.carbon.config.ConfigProviderFactory;
import org.wso2.carbon.config.ConfigurationException;
import org.wso2.carbon.config.provider.ConfigProvider;
import org.wso2.msf4j.analytics.internal.DataHolder;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
/**
* Utils contains utility methods to use analytic purposes
*/
public class AnalyticUtils {
private static final Logger logger = LoggerFactory.getLogger(AnalyticUtils.class);
private static final String DEPLOYMENT_YAML_SYS_PROPERTY = "msf4j.conf";
private static final String DEPLOYMENT_YAML_FILE = "deployment.yaml";
/**
* Retrieve Configuration Provider Object to read analytic configurations
* @return configProvider object
*/
public static ConfigProvider getConfigurationProvider() {
ConfigProvider configProvider = DataHolder.getInstance().getConfigProvider();
if (configProvider == null) {
if (DataHolder.getInstance().getBundleContext() != null) {
throw new RuntimeException(
"Failed to populate HTTPMonitoringConfig Configuration. Config Provider is Null.");
}
//Standalone mode
String deploymentYamlPath = System.getProperty(DEPLOYMENT_YAML_SYS_PROPERTY);
if (deploymentYamlPath == null || deploymentYamlPath.isEmpty()) {
logger.info("System property '" + DEPLOYMENT_YAML_SYS_PROPERTY +
"' is not set. Default deployment.yaml file will be used.");
deploymentYamlPath = DEPLOYMENT_YAML_FILE;
try (InputStream configInputStream = AnalyticUtils.class.getClassLoader()
.getResourceAsStream(DEPLOYMENT_YAML_FILE)) {
if (configInputStream == null) {
throw new RuntimeException("Couldn't find " + deploymentYamlPath);
}
if (Files.notExists(Paths.get(deploymentYamlPath))) {
Files.copy(configInputStream, Paths.get(deploymentYamlPath));
}
} catch (IOException e) {
throw new RuntimeException("Couldn't read configuration from file " + deploymentYamlPath, e);
}
} else if (!Files.exists(Paths.get(deploymentYamlPath))) {
throw new RuntimeException("Couldn't find " + deploymentYamlPath);
}
try {
configProvider = ConfigProviderFactory.getConfigProvider(Paths.get(deploymentYamlPath), null);
DataHolder.getInstance().setConfigProvider(configProvider);
} catch (ConfigurationException e) {
throw new RuntimeException("Error loading deployment.yaml Configuration", e);
}
}
return configProvider;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitored.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.httpmonitoring;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Monitor HTTP Requests.
*/
@Inherited
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.TYPE, ElementType.METHOD })
public @interface HTTPMonitored {
boolean tracing() default false;
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringDataPublisher.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.httpmonitoring;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wso2.carbon.databridge.agent.AgentHolder;
import org.wso2.carbon.databridge.agent.DataPublisher;
import org.wso2.carbon.databridge.agent.exception.DataEndpointAgentConfigurationException;
import org.wso2.carbon.databridge.agent.exception.DataEndpointAuthenticationException;
import org.wso2.carbon.databridge.agent.exception.DataEndpointConfigurationException;
import org.wso2.carbon.databridge.agent.exception.DataEndpointException;
import org.wso2.carbon.databridge.commons.Event;
import org.wso2.carbon.databridge.commons.exception.TransportException;
import org.wso2.carbon.databridge.commons.utils.DataBridgeCommonsUtils;
import org.wso2.msf4j.analytics.httpmonitoring.config.model.DasConfig;
import org.wso2.msf4j.util.SystemVariableUtil;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Enumeration;
import java.util.Map;
/**
* A utility class to initialize/destroy HTTP Monitoring Data Publisher for DAS.
*/
public final class HTTPMonitoringDataPublisher {
private static final Logger logger = LoggerFactory.getLogger(HTTPMonitoringDataPublisher.class);
private static final String HTTP_MONITORING_STREAM = "org.wso2.msf4j.analytics.httpmonitoring";
private static final String VERSION = "1.0.0";
private static final String HTTP_MONITORING_STREAM_ID;
private static final String SERVER_HOST_ADDRESS;
private static final String SERVER_HOSTNAME;
private static final String MICROSERVICE = "Microservice";
private DataPublisher dataPublisher;
private Map<String, String> arbitraryAttributes;
static {
HTTP_MONITORING_STREAM_ID = DataBridgeCommonsUtils.generateStreamId(HTTP_MONITORING_STREAM, VERSION);
try {
InetAddress localAddress = getLocalAddress();
SERVER_HOST_ADDRESS = localAddress.getHostAddress();
SERVER_HOSTNAME = localAddress.getHostName();
} catch (SocketException | UnknownHostException e) {
throw new IllegalStateException("Cannot determine server host address", e);
}
}
public HTTPMonitoringDataPublisher(DasConfig dasConfig) {
init(dasConfig);
// Destroy data publisher at shutdown
Thread thread = new Thread(this::destroy);
Runtime.getRuntime().addShutdownHook(thread);
}
private static InetAddress getLocalAddress() throws SocketException, UnknownHostException {
Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces();
while (interfaces.hasMoreElements()) {
NetworkInterface iface = interfaces.nextElement();
Enumeration<InetAddress> addresses = iface.getInetAddresses();
if (iface.isUp()) {
while (addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
if (addr instanceof Inet4Address && !addr.isLoopbackAddress()) {
return addr;
}
}
}
}
return InetAddress.getLocalHost();
}
private void init(DasConfig dasConfig) {
if (logger.isInfoEnabled()) {
logger.info("Initializing HTTP Monitoring Data Publisher");
}
String type = dasConfig.getType();
String receiverURL = dasConfig.getReceiverURL();
String authURL = dasConfig.getAuthURL();
String username = dasConfig.getUsername();
String password = dasConfig.getPassword();
String dataAgentConfigPath = dasConfig.getDataAgentConfigPath();
if (type == null) {
throw new IllegalArgumentException("Type cannot be null");
}
if (receiverURL == null) {
throw new IllegalArgumentException("Data Receiver URL cannot be null");
}
if (username == null) {
throw new IllegalArgumentException("Username cannot be null");
}
if (password == null) {
throw new IllegalArgumentException("Password cannot be null");
}
if (dataAgentConfigPath == null) {
throw new IllegalArgumentException("Data Agent Configuration Path cannot be null");
}
AgentHolder.setConfigPath(dataAgentConfigPath);
arbitraryAttributes = SystemVariableUtil.getArbitraryAttributes();
try {
dataPublisher = new DataPublisher(type, receiverURL, authURL, username, password);
} catch (DataEndpointAgentConfigurationException | DataEndpointException | DataEndpointConfigurationException
| DataEndpointAuthenticationException | TransportException e) {
throw new IllegalStateException("Error when initializing the Data Publisher", e);
}
}
private void destroy() {
if (dataPublisher != null) {
try {
dataPublisher.shutdownWithAgent();
} catch (DataEndpointException e) {
logger.error("Error shutting down the data publisher with agent", e);
} finally {
dataPublisher = null;
}
}
}
public void publishEvent(HTTPMonitoringEvent httpMonitoringEvent) {
Object[] meta = new Object[4];
meta[0] = httpMonitoringEvent.getTimestamp();
meta[1] = SERVER_HOST_ADDRESS;
meta[2] = SERVER_HOSTNAME;
meta[3] = MICROSERVICE;
Object[] correlation = new Object[2];
correlation[0] = httpMonitoringEvent.getActivityId();
correlation[1] = httpMonitoringEvent.getParentRequest();
Object[] payload = new Object[11];
payload[0] = httpMonitoringEvent.getServiceClass();
payload[1] = httpMonitoringEvent.getServiceName();
payload[2] = httpMonitoringEvent.getServiceMethod();
payload[3] = httpMonitoringEvent.getRequestUri();
payload[4] = httpMonitoringEvent.getServiceContext();
payload[5] = httpMonitoringEvent.getHttpMethod();
payload[6] = httpMonitoringEvent.getContentType();
payload[7] = httpMonitoringEvent.getRequestSizeBytes();
payload[8] = httpMonitoringEvent.getReferrer();
payload[9] = httpMonitoringEvent.getResponseHttpStatusCode();
payload[10] = httpMonitoringEvent.getResponseTime();
Event event = new Event(HTTP_MONITORING_STREAM_ID, httpMonitoringEvent.getTimestamp(), meta, correlation,
payload, arbitraryAttributes);
dataPublisher.publish(event);
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringEvent.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.httpmonitoring;
/**
* Monitoring Event.
*/
public class HTTPMonitoringEvent {
private long timestamp;
private String serverName;
private String serverAddress;
private long startNanoTime;
private String serviceClass;
private String serviceName;
private String serviceContext;
private String serviceMethod;
private String requestUri;
private String httpMethod;
private String contentType;
private Integer responseHttpStatusCode;
private String referrer;
private long responseTime;
private long requestSizeBytes;
private String activityId;
private String parentRequest;
public long getTimestamp() {
return timestamp;
}
public void setTimestamp(long timestamp) {
this.timestamp = timestamp;
}
public String getServerName() {
return serverName;
}
public void setServerName(String serverName) {
this.serverName = serverName;
}
public String getServerAddress() {
return serverAddress;
}
public void setServerAddress(String serverAddress) {
this.serverAddress = serverAddress;
}
public long getStartNanoTime() {
return startNanoTime;
}
public void setStartNanoTime(long startNanoTime) {
this.startNanoTime = startNanoTime;
}
public String getServiceClass() {
return serviceClass;
}
public void setServiceClass(String serviceClass) {
this.serviceClass = serviceClass;
}
public String getServiceName() {
return serviceName;
}
public void setServiceName(String serviceName) {
this.serviceName = serviceName;
}
public String getServiceContext() {
return serviceContext;
}
public void setServiceContext(String serviceContext) {
this.serviceContext = serviceContext;
}
public String getServiceMethod() {
return serviceMethod;
}
public void setServiceMethod(String serviceMethod) {
this.serviceMethod = serviceMethod;
}
public String getRequestUri() {
return requestUri;
}
public void setRequestUri(String requestUri) {
this.requestUri = requestUri;
}
public String getHttpMethod() {
return httpMethod;
}
public void setHttpMethod(String httpMethod) {
this.httpMethod = httpMethod;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public Integer getResponseHttpStatusCode() {
return responseHttpStatusCode;
}
public void setResponseHttpStatusCode(Integer responseHttpStatusCode) {
this.responseHttpStatusCode = responseHttpStatusCode;
}
public String getReferrer() {
return referrer;
}
public void setReferrer(String referrer) {
this.referrer = referrer;
}
public long getResponseTime() {
return responseTime;
}
public void setResponseTime(long responseTime) {
this.responseTime = responseTime;
}
public long getRequestSizeBytes() {
return requestSizeBytes;
}
public void setRequestSizeBytes(long requestSizeBytes) {
this.requestSizeBytes = requestSizeBytes;
}
public String getActivityId() {
return activityId;
}
public void setActivityId(String activityId) {
this.activityId = activityId;
}
public String getParentRequest() {
return parentRequest;
}
public void setParentRequest(String parentRequest) {
this.parentRequest = parentRequest;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringInterceptor.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.httpmonitoring;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wso2.msf4j.Interceptor;
import org.wso2.msf4j.Request;
import org.wso2.msf4j.Response;
import org.wso2.msf4j.ServiceMethodInfo;
import org.wso2.msf4j.analytics.httpmonitoring.config.HTTPMonitoringConfigBuilder;
import org.wso2.msf4j.analytics.httpmonitoring.config.model.HTTPMonitoringConfig;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import javax.ws.rs.Path;
import javax.ws.rs.core.HttpHeaders;
/**
* Monitor HTTP Requests for methods with {@link HTTPMonitored} annotations.
*/
public class HTTPMonitoringInterceptor implements Interceptor {
private static final Logger logger = LoggerFactory.getLogger(HTTPMonitoringInterceptor.class);
public static final String REFERER = "Referer";
private Map<Method, MethodInterceptor> map = new ConcurrentHashMap<>();
private final boolean enabled;
private final HTTPMonitoringDataPublisher httpMonitoringDataPublisher;
public HTTPMonitoringInterceptor() {
if (logger.isDebugEnabled()) {
logger.debug("Creating HTTP Monitoring Interceptor");
}
HTTPMonitoringConfig httpMonitoringConfig = HTTPMonitoringConfigBuilder.build();
enabled = httpMonitoringConfig.isEnabled();
httpMonitoringDataPublisher = enabled ? new HTTPMonitoringDataPublisher(httpMonitoringConfig.getDas()) :
null;
}
/**
* Returns the final annotation that is application to the given method. For example,
* the {@link HTTPMonitored} annotation can be mentioned in class level, and also in
* the target method, but the method only have tracing enabled. Then we should get the
* setting as tracing is disabled for that specific method.
*/
private HTTPMonitored extractFinalAnnotation(Method method) {
HTTPMonitored httpMon = method.getAnnotation(HTTPMonitored.class);
if (httpMon == null) {
httpMon = method.getDeclaringClass().getAnnotation(HTTPMonitored.class);
}
return httpMon;
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) throws Exception {
if (!enabled) {
return true;
}
Method method = serviceMethodInfo.getMethod();
MethodInterceptor methodInterceptor = map.get(method);
if (methodInterceptor == null || !methodInterceptor.annotationScanned) {
HTTPMonitored httpMon = extractFinalAnnotation(method);
Interceptor interceptor = null;
if (httpMon != null) {
interceptor = new HTTPInterceptor(httpMon.tracing());
}
methodInterceptor = new MethodInterceptor(true, interceptor);
map.put(method, methodInterceptor);
}
return methodInterceptor.preCall(request, responder, serviceMethodInfo);
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) throws Exception {
if (!enabled) {
return;
}
Method method = serviceMethodInfo.getMethod();
MethodInterceptor methodInterceptor = map.get(method);
if (methodInterceptor != null) {
methodInterceptor.postCall(request, status, serviceMethodInfo);
}
}
private static class MethodInterceptor implements Interceptor {
private final boolean annotationScanned;
private final Interceptor interceptor;
MethodInterceptor(boolean annotationScanned, Interceptor interceptor) {
this.annotationScanned = annotationScanned;
this.interceptor = interceptor;
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo)
throws Exception {
if (interceptor != null) {
return interceptor.preCall(request, responder, serviceMethodInfo);
}
return true;
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) throws Exception {
if (interceptor != null) {
interceptor.postCall(request, status, serviceMethodInfo);
}
}
}
private class HTTPInterceptor implements Interceptor {
private static final String DEFAULT_TRACE_ID = "DEFAULT";
private static final String DEFAULT_PARENT_REQUEST = "DEFAULT";
private static final String MONITORING_EVENT = "MONITORING_EVENT";
private static final String ACTIVITY_ID = "activity-id";
private static final String PARENT_REQUEST = "parent-request";
private String serviceClass;
private String serviceName;
private String serviceMethod;
private String servicePath;
private boolean tracing;
private HTTPInterceptor(boolean tracing) {
this.tracing = tracing;
}
boolean isTracing() {
return tracing;
}
private String generateTraceId() {
return UUID.randomUUID().toString();
}
private void handleTracing(Request request, HTTPMonitoringEvent httpMonitoringEvent) {
String traceId, parentRequest;
if (this.isTracing()) {
traceId = request.getHeader(ACTIVITY_ID);
if (traceId == null) {
traceId = this.generateTraceId();
}
parentRequest = request.getHeader(PARENT_REQUEST);
} else {
traceId = DEFAULT_TRACE_ID;
parentRequest = DEFAULT_PARENT_REQUEST;
}
httpMonitoringEvent.setActivityId(traceId);
httpMonitoringEvent.setParentRequest(parentRequest);
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) {
HTTPMonitoringEvent httpMonitoringEvent = new HTTPMonitoringEvent();
httpMonitoringEvent.setTimestamp(System.currentTimeMillis());
httpMonitoringEvent.setStartNanoTime(System.nanoTime());
if (serviceClass == null) {
Method method = serviceMethodInfo.getMethod();
Class<?> serviceClass = method.getDeclaringClass();
this.serviceClass = serviceClass.getName();
serviceName = serviceClass.getSimpleName();
serviceMethod = method.getName();
if (serviceClass.isAnnotationPresent(Path.class)) {
Path path = serviceClass.getAnnotation(Path.class);
servicePath = path.value();
}
}
httpMonitoringEvent.setServiceClass(serviceClass);
httpMonitoringEvent.setServiceName(serviceName);
httpMonitoringEvent.setServiceMethod(serviceMethod);
httpMonitoringEvent.setRequestUri(request.getUri());
httpMonitoringEvent.setServiceContext(servicePath);
HttpHeaders httpHeaders = request.getHeaders();
httpMonitoringEvent.setHttpMethod(request.getHttpMethod());
httpMonitoringEvent.setContentType(httpHeaders.getHeaderString(HttpHeaders.CONTENT_TYPE));
String contentLength = httpHeaders.getHeaderString(HttpHeaders.CONTENT_LENGTH);
if (contentLength != null) {
httpMonitoringEvent.setRequestSizeBytes(Long.parseLong(contentLength));
}
httpMonitoringEvent.setReferrer(httpHeaders.getHeaderString(REFERER));
this.handleTracing(request, httpMonitoringEvent);
serviceMethodInfo.setAttribute(MONITORING_EVENT, httpMonitoringEvent);
return true;
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) {
HTTPMonitoringEvent httpMonitoringEvent =
(HTTPMonitoringEvent) serviceMethodInfo.getAttribute(MONITORING_EVENT);
httpMonitoringEvent.setResponseTime(
TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - httpMonitoringEvent.getStartNanoTime()));
httpMonitoringEvent.setResponseHttpStatusCode(status);
httpMonitoringDataPublisher.publishEvent(httpMonitoringEvent);
}
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/HTTPMonitoringConfigBuilder.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.httpmonitoring.config;
import org.wso2.carbon.config.ConfigurationException;
import org.wso2.carbon.config.provider.ConfigProvider;
import org.wso2.msf4j.analytics.AnalyticUtils;
import org.wso2.msf4j.analytics.httpmonitoring.config.model.HTTPMonitoringConfig;
/**
* Build {@link HTTPMonitoringConfig} from the YAML file
*/
public final class HTTPMonitoringConfigBuilder {
public static HTTPMonitoringConfig build() {
HTTPMonitoringConfig configurationObject;
ConfigProvider configProvider = AnalyticUtils.getConfigurationProvider();
try {
configurationObject =
configProvider.getConfigurationObject(HTTPMonitoringConfig.class);
} catch (ConfigurationException e) {
throw new RuntimeException(
"Error while loading " + HTTPMonitoringConfig.class.getName() + " from config provider", e);
}
return configurationObject;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/model/DasConfig.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.httpmonitoring.config.model;
import org.wso2.carbon.config.annotation.Configuration;
import org.wso2.carbon.config.annotation.Element;
import org.wso2.carbon.config.annotation.Ignore;
/**
* Configuration for connecting with Data Analytics Server (DAS)
*/
@Configuration(description = "DAS configuration")
public class DasConfig {
@Element(description = "The type used with Data Publisher")
private String type = "thrift";
@Element(description = "Data Receiver URL used by the Data Publisher")
private String receiverURL = "tcp://localhost:7611";
@Ignore
private String authURL;
private String username = "admin";
private String password = "admin";
@Element(description = "The path for Data Bridge Agent configuration")
private String dataAgentConfigPath = "data-agent-config.xml";
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getReceiverURL() {
return receiverURL;
}
public void setReceiverURL(String receiverURL) {
this.receiverURL = receiverURL;
}
public String getAuthURL() {
return authURL;
}
public void setAuthURL(String authURL) {
this.authURL = authURL;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDataAgentConfigPath() {
return dataAgentConfigPath;
}
public void setDataAgentConfigPath(String dataAgentConfigPath) {
this.dataAgentConfigPath = dataAgentConfigPath;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/model/HTTPMonitoringConfig.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.httpmonitoring.config.model;
import org.wso2.carbon.config.annotation.Configuration;
import org.wso2.carbon.config.annotation.Element;
/**
* Configuration for HTTP Monitoring
*/
@Configuration(namespace = "wso2.msf4j.analytics.configuration", description = "MSF4J Analytics configuration")
public class HTTPMonitoringConfig {
@Element(description = "Whether HTTP Monitoring is enables or not")
private boolean enabled = false;
@Element(description = "Configuration for DAS")
private DasConfig das = new DasConfig();
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public DasConfig getDas() {
return das;
}
public void setDas(DasConfig das) {
this.das = das;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/AnalyticsSC.java
================================================
/*
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.internal;
import org.osgi.framework.BundleContext;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
import org.osgi.service.component.annotations.ReferencePolicy;
import org.wso2.carbon.config.provider.ConfigProvider;
import org.wso2.msf4j.Interceptor;
import org.wso2.msf4j.analytics.httpmonitoring.HTTPMonitoringInterceptor;
/**
*
* Bundle Activator for msf4j-analytics bundle.
*/
@Component(
name = "org.wso2.msf4j.analytics.httpmonitoringsc",
immediate = true,
property = {
"componentName=msf4j-analytics-sc"
}
)
public class AnalyticsSC {
@Reference(
name = "carbon-config",
service = ConfigProvider.class,
cardinality = ReferenceCardinality.MANDATORY,
policy = ReferencePolicy.DYNAMIC,
unbind = "unregisterConfigProvider"
)
protected void registerConfigProvider(ConfigProvider configProvider) {
DataHolder.getInstance().setConfigProvider(configProvider);
}
protected void unregisterConfigProvider(ConfigProvider configProvider) {
DataHolder.getInstance().setConfigProvider(null);
}
@Activate
protected void activate(BundleContext bundleContext) {
DataHolder.getInstance().setBundleContext(bundleContext);
bundleContext.registerService(Interceptor.class, new HTTPMonitoringInterceptor(), null);
}
@Deactivate
public void stop(BundleContext bundleContext) throws Exception {
DataHolder.getInstance().setBundleContext(null);
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/DataHolder.java
================================================
/*
* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.internal;
import org.osgi.framework.BundleContext;
import org.wso2.carbon.config.provider.ConfigProvider;
/**
* Data holder for analytics bundle.
*/
public class DataHolder {
private static final DataHolder instance = new DataHolder();
private ConfigProvider configProvider;
public ConfigProvider getConfigProvider() {
return configProvider;
}
public void setConfigProvider(ConfigProvider configProvider) {
this.configProvider = configProvider;
}
public BundleContext getBundleContext() {
return bundleContext;
}
public void setBundleContext(BundleContext bundleContext) {
this.bundleContext = bundleContext;
}
private BundleContext bundleContext;
public static DataHolder getInstance() {
return instance;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/InterceptorCapabilityProvider.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.internal;
import org.osgi.service.component.annotations.Component;
import org.wso2.carbon.kernel.startupresolver.CapabilityProvider;
/**
* This class signals Startup Order Resolver module in kernel that this bundle provides
* two services of type {@code Interceptor}
*/
@Component(
name = "org.wso2.msf4j.analytics.internal.InterceptorCapabilityProvider",
immediate = true,
property = "capabilityName=org.wso2.msf4j.Interceptor"
)
public class InterceptorCapabilityProvider implements CapabilityProvider {
/**
* Returns the count of {@code Interceptor} OSGi services registered by this bundle.
* <p>
* This bundle registers two Interceptors
* 1. {@code HTTPMonitoringInterceptor}
* 2. {@code MetricsInterceptor}
*
* But here we return count as one, due to a bug in the startup launcher in Kernel.
*
* @return count of {@code Interceptor} services registered by this bundle.
*/
@Override
public int getCount() {
return 2;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/Metrics.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.metrics;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wso2.carbon.metrics.core.MetricManagementService;
import org.wso2.carbon.metrics.core.MetricService;
import org.wso2.msf4j.analytics.AnalyticUtils;
/**
* A utility class to keep Metric Services.
*/
public final class Metrics {
private static final Logger logger = LoggerFactory.getLogger(Metrics.class);
private volatile MetricService metricService;
private volatile MetricManagementService metricManagementService;
private Metrics() {
}
/**
* Initializes the Metrics instance
*/
private static class MetricsHolder {
private static final Metrics INSTANCE = new Metrics();
}
/**
* This returns the Metrics singleton instance.
*
* @return The Metrics instance
*/
public static Metrics getInstance() {
return MetricsHolder.INSTANCE;
}
/**
* Initialize metric services
*/
private void initializeServices() {
if (logger.isInfoEnabled()) {
logger.info("Initializing Metrics Services");
}
org.wso2.carbon.metrics.core.Metrics metrics =
new org.wso2.carbon.metrics.core.Metrics(AnalyticUtils.getConfigurationProvider());
// Activate metrics
metrics.activate();
metricService = metrics.getMetricService();
metricManagementService = metrics.getMetricManagementService();
// Deactivate Metrics at shutdown
Thread thread = new Thread(() -> metrics.deactivate());
Runtime.getRuntime().addShutdownHook(thread);
}
/**
* Returns the {@link MetricService}
*
* @return The {@link MetricService} instance
*/
public MetricService getMetricService() {
if (metricService == null) {
synchronized (this) {
if (metricService == null) {
initializeServices();
}
}
}
return metricService;
}
/**
* Set the {@link MetricService} service
*
* @param metricService The {@link MetricService} reference
*/
void setMetricService(MetricService metricService) {
this.metricService = metricService;
}
/**
* Returns the {@link MetricManagementService}
*
* @return The {@link MetricManagementService} instance
*/
public MetricManagementService getMetricManagementService() {
if (metricManagementService == null) {
synchronized (this) {
if (metricManagementService == null) {
initializeServices();
}
}
}
return metricManagementService;
}
/**
* Set the {@link MetricManagementService} service
*
* @param metricManagementService The {@link MetricManagementService} reference
*/
void setMetricManagementService(MetricManagementService metricManagementService) {
this.metricManagementService = metricManagementService;
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/MetricsComponent.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.metrics;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
import org.osgi.service.component.annotations.ReferencePolicy;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wso2.carbon.metrics.core.MetricManagementService;
import org.wso2.carbon.metrics.core.MetricService;
/**
* Metrics OSGi Component to Initialize/Destroy Metrics.
*/
@Component(name = "org.wso2.msf4j.analytics.metrics.MetricsComponent")
public class MetricsComponent {
private static final Logger logger = LoggerFactory.getLogger(MetricsComponent.class);
/**
* This is the activation method of MetricsComponent. This will be called when its references are
* satisfied.
*/
@Activate
protected void activate() {
if (logger.isInfoEnabled()) {
logger.info("Metrics Component is activated");
}
}
/**
* This is the deactivation method of MetricsComponent.
*/
@Deactivate
protected void deactivate() {
if (logger.isInfoEnabled()) {
logger.info("Metrics Component is deactivated");
}
}
/**
* This bind method will be called when {@link MetricService} is registered.
*
* @param metricService The {@link MetricService} instance registered as an OSGi service
*/
@Reference(
name = "carbon.metrics.service",
service = MetricService.class,
cardinality = ReferenceCardinality.MANDATORY,
policy = ReferencePolicy.DYNAMIC,
unbind = "unsetMetricService"
)
protected void setMetricService(MetricService metricService) {
if (logger.isDebugEnabled()) {
logger.debug("Setting MetricService reference");
}
Metrics.getInstance().setMetricService(metricService);
}
/**
* This is the unbind method which gets called at the un-registration of {@link MetricService}
*
* @param metricService The {@link MetricService} instance registered as an OSGi service
*/
protected void unsetMetricService(MetricService metricService) {
Metrics.getInstance().setMetricService(null);
}
/**
* This bind method will be called when {@link MetricManagementService} is registered.
*
* @param metricManagementService The {@link MetricManagementService} instance registered as an OSGi service
*/
@Reference(
name = "carbon.metrics.management.service",
service = MetricManagementService.class,
cardinality = ReferenceCardinality.MANDATORY,
policy = ReferencePolicy.DYNAMIC,
unbind = "unsetMetricManagementService"
)
protected void setMetricManagementService(MetricManagementService metricManagementService) {
if (logger.isDebugEnabled()) {
logger.debug("Setting MetricManagementService reference");
}
Metrics.getInstance().setMetricManagementService(metricManagementService);
}
/**
* This is the unbind method which gets called at the un-registration of {@link MetricManagementService}
*
* @param metricManagementService The {@link MetricManagementService} instance registered as an OSGi service
*/
protected void unsetMetricManagementService(MetricManagementService metricManagementService) {
Metrics.getInstance().setMetricManagementService(null);
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/MetricsInterceptor.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.metrics;
import org.osgi.service.component.annotations.Component;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.wso2.carbon.metrics.core.Counter;
import org.wso2.carbon.metrics.core.Meter;
import org.wso2.carbon.metrics.core.MetricAnnotation;
import org.wso2.carbon.metrics.core.Timer;
import org.wso2.carbon.metrics.core.annotation.Counted;
import org.wso2.carbon.metrics.core.annotation.Metered;
import org.wso2.carbon.metrics.core.annotation.Timed;
import org.wso2.msf4j.Interceptor;
import org.wso2.msf4j.Request;
import org.wso2.msf4j.Response;
import org.wso2.msf4j.ServiceMethodInfo;
import java.lang.reflect.Method;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
/**
* Collecting Metrics via annotations.
*/
@Component(
name = "org.wso2.msf4j.analytics.metrics.MetricsInterceptor",
service = Interceptor.class
)
public class MetricsInterceptor implements Interceptor {
private static final Logger logger = LoggerFactory.getLogger(MetricsInterceptor.class);
private Map<Method, MethodInterceptors> map = new ConcurrentHashMap<>();
public MetricsInterceptor() {
if (logger.isDebugEnabled()) {
logger.debug("Creating Metrics Interceptor");
}
}
private Timed getTimedAnnotation(Method method) {
Timed annotation = method.getAnnotation(Timed.class);
if (annotation == null) {
annotation = method.getDeclaringClass().getAnnotation(Timed.class);
}
return annotation;
}
private Metered getMeteredAnnotation(Method method) {
Metered annotation = method.getAnnotation(Metered.class);
if (annotation == null) {
annotation = method.getDeclaringClass().getAnnotation(Metered.class);
}
return annotation;
}
private Counted getCountedAnnotation(Method method) {
Counted annotation = method.getAnnotation(Counted.class);
if (annotation == null) {
annotation = method.getDeclaringClass().getAnnotation(Counted.class);
}
return annotation;
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) throws Exception {
Method method = serviceMethodInfo.getMethod();
MethodInterceptors methodInterceptors = map.get(method);
if (methodInterceptors == null || !methodInterceptors.annotationScanned) {
List<Interceptor> interceptors = new CopyOnWriteArrayList<>();
Timed timed = getTimedAnnotation(method);
if (timed != null) {
Timer timer = MetricAnnotation.timer(Metrics.getInstance().getMetricService(), timed, method);
Interceptor interceptor = new TimerInterceptor(timer);
interceptors.add(interceptor);
}
Metered metered = getMeteredAnnotation(method);
if (metered != null) {
Meter meter = MetricAnnotation.meter(Metrics.getInstance().getMetricService(), metered, method);
Interceptor interceptor = new MeterInterceptor(meter);
interceptors.add(interceptor);
}
Counted counted = getCountedAnnotation(method);
if (counted != null) {
Counter counter = MetricAnnotation.counter(Metrics.getInstance().getMetricService(), counted, method);
Interceptor interceptor = new CounterInterceptor(counter, counted.monotonic());
interceptors.add(interceptor);
}
methodInterceptors = new MethodInterceptors(true, interceptors);
map.put(method, methodInterceptors);
}
return methodInterceptors.preCall(request, responder, serviceMethodInfo);
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) throws Exception {
Method method = serviceMethodInfo.getMethod();
MethodInterceptors methodInterceptors = map.get(method);
if (methodInterceptors != null) {
methodInterceptors.postCall(request, status, serviceMethodInfo);
}
}
private static class MethodInterceptors implements Interceptor {
private final boolean annotationScanned;
private Interceptor[] interceptors;
MethodInterceptors(boolean annotationScanned, List<Interceptor> interceptors) {
this.annotationScanned = annotationScanned;
if (!interceptors.isEmpty()) {
this.interceptors = interceptors.toArray(new Interceptor[interceptors.size()]);
}
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo)
throws Exception {
if (interceptors != null) {
for (Interceptor interceptor : interceptors) {
interceptor.preCall(request, responder, serviceMethodInfo);
}
}
return true;
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) throws Exception {
if (interceptors != null) {
for (Interceptor interceptor : interceptors) {
interceptor.postCall(request, status, serviceMethodInfo);
}
}
}
}
private static class TimerInterceptor implements Interceptor {
private final Timer timer;
private static final String TIMER_CONTEXT = "TIMER_CONTEXT";
private TimerInterceptor(Timer timer) {
this.timer = timer;
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) {
Timer.Context context = timer.start();
serviceMethodInfo.setAttribute(TIMER_CONTEXT, context);
return true;
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) {
Timer.Context context = (Timer.Context) serviceMethodInfo.getAttribute(TIMER_CONTEXT);
context.stop();
}
}
private static class MeterInterceptor implements Interceptor {
private final Meter meter;
private MeterInterceptor(Meter meter) {
this.meter = meter;
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) {
meter.mark();
return true;
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) {
}
}
private static class CounterInterceptor implements Interceptor {
private final Counter counter;
private final boolean monotonic;
private CounterInterceptor(Counter counter, boolean monotonic) {
this.counter = counter;
this.monotonic = monotonic;
}
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) {
counter.inc();
return true;
}
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) {
if (!monotonic) {
counter.dec();
}
}
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/tracing/MSF4JTracingInterceptor.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.tracing;
import org.wso2.msf4j.Interceptor;
import org.wso2.msf4j.Request;
import org.wso2.msf4j.Response;
import org.wso2.msf4j.ServiceMethodInfo;
import org.wso2.msf4j.analytics.common.tracing.TraceEvent;
import org.wso2.msf4j.analytics.common.tracing.TracingConstants;
import org.wso2.msf4j.analytics.common.tracing.TracingEventTracker;
import org.wso2.msf4j.analytics.common.tracing.TracingUtil;
import java.util.Date;
/**
* Interceptor for tracing server side request/response flows.
*/
// TODO: Write tests and add the OSGi mode support
public class MSF4JTracingInterceptor implements Interceptor {
private static final String RESPONDER_ATTRIBUTE = "responder-attribute";
private static final String TRACE_EVENT_ATTRIBUTE = "trace-event-attribute";
private String instanceId;
private String instanceName;
private String dasUrl;
/**
* Constructor of the MSF4JTracingInterceptor.
*
* @param microServiceName Name of the Microservice
*/
public MSF4JTracingInterceptor(String microServiceName) {
this(microServiceName, TracingConstants.DAS_RECEIVER_URL);
}
/**
* Constructor of the MSF4JTracingInterceptor.
*
* @param microServiceName Name of the Microservice
* @param dasUrl URL of the receiver of DAS server
*/
public MSF4JTracingInterceptor(String microServiceName, String dasUrl) {
this.instanceId = TracingUtil.generateUniqueId();
this.instanceName = microServiceName;
this.dasUrl = dasUrl;
}
/**
* Intercepts the server request flow and extract request information
* to be published to the DAS for tracing.
*/
@Override
public boolean preCall(Request request, Response responder, ServiceMethodInfo serviceMethodInfo) throws Exception {
long time = new Date().getTime();
serviceMethodInfo.setAttribute(RESPONDER_ATTRIBUTE, responder);
String traceOriginId = request.getHeader(TracingConstants.TRACE_ORIGIN_ID_HEADER);
String serverTraceId;
if (traceOriginId == null) {
traceOriginId = TracingUtil.generateUniqueId();
serverTraceId = traceOriginId;
} else {
serverTraceId = TracingUtil.generateUniqueId();
}
String traceParentId = request.getHeader(TracingConstants.TRACE_ID_HEADER);
TraceEvent serverTraceEvent = new TraceEvent(
TracingConstants.SERVER_TRACE_START,
serverTraceId,
traceOriginId,
time
);
serverTraceEvent.setInstanceId(instanceId);
serverTraceEvent.setInstanceName(instanceName);
serverTraceEvent.setParentId(traceParentId);
serverTraceEvent.setHttpMethod(request.getHttpMethod());
serverTraceEvent.setUrl(request.getUri());
TracingEventTracker.setTraceEvent(serverTraceEvent);
serviceMethodInfo.setAttribute(TRACE_EVENT_ATTRIBUTE, serverTraceEvent);
TracingUtil.pushToDAS(serverTraceEvent, dasUrl);
return true;
}
/**
* Intercepts the server response flow and extract response information
* to be published to the DAS for tracing.
*/
@Override
public void postCall(Request request, int status, ServiceMethodInfo serviceMethodInfo) throws Exception {
long time = new Date().getTime();
TraceEvent traceEvent = (TraceEvent) serviceMethodInfo.getAttribute(TRACE_EVENT_ATTRIBUTE);
if (traceEvent != null) {
TraceEvent endTraceEvent = new TraceEvent(
TracingConstants.SERVER_TRACE_END,
traceEvent.getTraceId(),
traceEvent.getOriginId(),
time
);
Response responder = (Response) serviceMethodInfo.getAttribute(RESPONDER_ATTRIBUTE);
endTraceEvent.setStatusCode(responder.getStatusCode());
TracingUtil.pushToDAS(endTraceEvent, dasUrl);
}
}
}
================================================
FILE: analytics/msf4j-analytics/src/main/resources/http-monitoring.yml
================================================
# Copyright 2016 WSO2 Inc. (http://wso2.org)
#
# 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
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# 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.
# This is the main configuration file for HTTP Monitoring
# Enable HTTP Monitoring
enabled: true
# Data Analytics Server (DAS) configuration
das:
# Data Receiver URL used by the Data Publisher
receiverURL: tcp://localhost:7611
# Authentication URL for the Data Publisher
# authURL: ssl://localhost:7711
# The type used with Data Publisher
type: thrift
username: admin
password: admin
# The path for Data Bridge Agent configuration
dataAgentConfigPath: data-agent-config.xml
================================================
FILE: analytics/msf4j-analytics/src/test/java/org/wso2/msf4j/analytics/HTTPMonitoringConfigTest.java
================================================
/*
* Copyright 2016 WSO2 Inc. (http://wso2.org)
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import org.wso2.msf4j.analytics.httpmonitoring.config.HTTPMonitoringConfigBuilder;
import org.wso2.msf4j.analytics.httpmonitoring.config.model.DasConfig;
import org.wso2.msf4j.analytics.httpmonitoring.config.model.HTTPMonitoringConfig;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/**
* Test Cases for {@link HTTPMonitoringConfig}
*/
public class HTTPMonitoringConfigTest {
private static final String DEFAULT_CONFIG_PATH = "deployment.yaml";
private static HTTPMonitoringConfig httpMonitoringConfig;
@BeforeClass
private void load() {
httpMonitoringConfig = HTTPMonitoringConfigBuilder.build();
}
@AfterClass
private void clear() throws IOException {
Path configPath = Paths.get(DEFAULT_CONFIG_PATH);
if (Files.exists(configPath)) {
Files.delete(configPath);
}
}
@Test
public void testEnabled() {
Assert.assertFalse(httpMonitoringConfig.isEnabled());
}
@Test
public void testDasConfigLoad() {
DasConfig config = httpMonitoringConfig.getDas();
Assert.assertEquals(config.getReceiverURL(), "tcp://localhost:7611");
Assert.assertNull(config.getAuthURL());
Assert.assertEquals(config.getType(), "thrift");
Assert.assertEquals(config.getUsername(), "admin");
Assert.assertEquals(config.getPassword(), "admin");
Assert.assertEquals(config.getDataAgentConfigPath(), "data-agent-config.xml");
}
}
================================================
FILE: analytics/msf4j-analytics/src/test/resources/deployment.yaml
================================================
# Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved
#
# 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
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# 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.
# MSF4J configuration
wso2.msf4j.configuration:
# No of worker pool threads to handle MSF4J requests
threadCount: 100
threadPoolName: msf4j.executor.workerpool
# MSF4J Analytics configuration
wso2.msf4j.analytics.configuration:
# Whether HTTP Monitoring is enables or not
enabled: false
# DAS configuration
das:
# The type used with Data Publisher
type: thrift
# Data Receiver URL used by the Data Publisher
receiverURL: tcp://localhost:7611
username: admin
password: admin
# The path for Data Bridge Agent configuration
dataAgentConfigPath: data-agent-config.xml
================================================
FILE: analytics/msf4j-analytics-common/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.wso2.msf4j</groupId>
<artifactId>msf4j-parent</artifactId>
<version>2.8.14-SNAPSHOT</version>
<relativePath>../../poms/parent/pom.xml</relativePath>
</parent>
<artifactId>msf4j-analytics-common</artifactId>
<packaging>bundle</packaging>
<name>WSO2 MSF4J Analytics Common</name>
<description>WSO2 MSF4J Analytics Common</description>
<url>https://github.com/wso2/msf4j</url>
<dependencies>
<dependency>
<groupId>org.wso2.msf4j</groupId>
<artifactId>msf4j-core</artifactId>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<!-- Profile for generating coverage report -->
<profile>
<id>coverage</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>${argLine} -Xmx512m</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for creating all deployment artifacts -->
<profile>
<id>release</id>
<build>
<pluginManagement>
<plugins>
<!-- Source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<excludeResources>true</excludeResources>
</configuration>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Javadoc jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<detectJavaApiLink>true</detectJavaApiLink>
<links>
<link>http://docs.oracle.com/javaee/6/api/</link>
</links>
<excludePackageNames>*.internal.*</excludePackageNames>
<bottom>
<![CDATA[Copyright {currentYear} WSO2, Inc. <a href="http://www.apache.org/licenses/LICENSE-2.0">Licensed under the Apache License, Version 2.0</a>]]>
</bottom>
</configuration>
<executions>
<execution>
<id>attach-javadoc</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- GPG signature -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<configuration>
<passphrase>${gpg.passphrase}</passphrase>
<useAgent>${gpg.useagent}</useAgent>
</configuration>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<export.package>
org.wso2.msf4j.analytics.*;version="${msf4j.version}"
</export.package>
<import.package>
org.slf4j.*;version="${slf4j.version.range}",
org.osgi.framework.*;version="${osgi.framework.import.version.range}",
org.osgi.util.tracker; version="${osgi.service.tracker.import.version.range}",
javax.ws.rs.*,
</import.package>
<carbon.component>
osgi.service;objectClass="org.wso2.carbon.kernel.startupresolver.CapabilityProvider";capabilityName="org.wso2.msf4j.Interceptor"
</carbon.component>
</properties>
</project>
================================================
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/MSF4JClientTracingFilter.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
*
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.common.tracing;
import java.io.IOException;
import java.util.Date;
import javax.ws.rs.client.ClientRequestContext;
import javax.ws.rs.client.ClientRequestFilter;
import javax.ws.rs.client.ClientResponseContext;
import javax.ws.rs.client.ClientResponseFilter;
/**
* Filter for tracing client side request/response flow.
*/
// TODO: Write tests and add the OSGi mode support
public class MSF4JClientTracingFilter implements ClientRequestFilter, ClientResponseFilter {
private static final String TRACE_EVENT_ATTRIBUTE = "trace-event-attribute";
private TraceEvent parentEvent;
private String instanceId;
private String instanceName;
private String dasUrl;
/**
* Constructor of the MSF4JClientTracingFilter.
*
* @param clientName Name of the client
*/
public MSF4JClientTracingFilter(String clientName) {
this(clientName, TracingConstants.DAS_RECEIVER_URL);
}
/**
* Constructor of the MSF4JClientTracingFilter.
*
* @param clientName Name of the client
* @param dasUrl URL of the receiver of DAS server
*/
public MSF4JClientTracingFilter(String clientName, String dasUrl) {
this(clientName, null, dasUrl);
}
/**
* Constructor of the MSF4JClientTracingFilter.
*
* @param clientName Name of the client
* @param parentEvent TraceEvent of the caller
* @param dasUrl URL of the receiver of DAS server
*/
public MSF4JClientTracingFilter(String clientName, TraceEvent parentEvent, String dasUrl) {
this.instanceName = clientName;
this.instanceId = TracingUtil.generateUniqueId();
this.dasUrl = dasUrl;
if (parentEvent != null) {
this.parentEvent = parentEvent;
} else {
this.parentEvent = TracingEventTracker.getTraceEvent();
}
}
/**
* Intercepts the client request flow and extract request information
* to be published to the DAS for tracing.
*/
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
long time = new Date().getTime();
String clientTraceId;
String traceOriginId;
String traceParentId = null;
if (this.parentEvent == null) {
traceOriginId = TracingUtil.generateUniqueId();
clientTraceId = traceOriginId;
} else {
traceOriginId = parentEvent.getOriginId();
clientTraceId = TracingUtil.generateUniqueId();
traceParentId = parentEvent.getTraceId();
}
TraceEvent clientTraceEvent = new TraceEvent(
TracingConstants.CLIENT_TRACE_START,
clientTraceId,
traceOriginId,
time
);
clientTraceEvent.setInstanceId(instanceId);
clientTraceEvent.setInstanceName(instanceName);
clientTraceEvent.setParentId(traceParentId);
clientTraceEvent.setHttpMethod(requestContext.getMethod());
clientTraceEvent.setUrl(requestContext.getUri().toString());
requestContext.setProperty(TRACE_EVENT_ATTRIBUTE, clientTraceEvent);
requestContext.getHeaders().putSingle(TracingConstants.TRACE_ID_HEADER, clientTraceId);
requestContext.getHeaders().putSingle(TracingConstants.TRACE_ORIGIN_ID_HEADER, traceOriginId);
TracingUtil.pushToDAS(clientTraceEvent, dasUrl);
}
/**
* Intercepts the client response flow and extract response information
* to be published to the DAS server for tracing.
*/
@Override
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
long time = new Date().getTime();
TraceEvent traceEvent = (TraceEvent) requestContext.getProperty(TRACE_EVENT_ATTRIBUTE);
if (traceEvent != null) {
TraceEvent endTraceEvent = new TraceEvent(
TracingConstants.CLIENT_TRACE_END,
traceEvent.getTraceId(),
traceEvent.getOriginId(),
time
);
endTraceEvent.setStatusCode(responseContext.getStatus());
TracingUtil.pushToDAS(endTraceEvent, dasUrl);
}
}
}
================================================
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TraceEvent.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.common.tracing;
/**
* Class to hold tracing start event data.
*/
public class TraceEvent {
private final String type;
private final String traceId;
private final String originId;
private final long time;
private int statusCode;
private String httpMethod;
private String instanceId;
private String instanceName;
private String parentId;
private String url;
public TraceEvent(String type, String traceId, String originId, long time) {
this.type = type;
this.traceId = traceId;
this.originId = originId;
this.time = time;
}
public String getType() {
return type;
}
public String getTraceId() {
return traceId;
}
public String getOriginId() {
return originId;
}
public long getTime() {
return time;
}
public String getInstanceId() {
return instanceId;
}
public void setInstanceId(String instanceId) {
this.instanceId = instanceId;
}
public String getInstanceName() {
return instanceName;
}
public void setInstanceName(String instanceName) {
this.instanceName = instanceName;
}
public String getParentId() {
return parentId;
}
public void setParentId(String parentId) {
this.parentId = parentId;
}
public int getStatusCode() {
return statusCode;
}
public void setStatusCode(int statusCode) {
this.statusCode = statusCode;
}
public String getHttpMethod() {
return httpMethod;
}
public void setHttpMethod(String httpMethod) {
this.httpMethod = httpMethod;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
@Override
public String toString() {
return "TraceEvent{" +
"type='" + type + '\'' +
", traceId='" + traceId + '\'' +
", originId='" + originId + '\'' +
", time=" + time +
", statusCode=" + statusCode +
", httpMethod='" + httpMethod + '\'' +
", instanceId='" + instanceId + '\'' +
", instanceName='" + instanceName + '\'' +
", parentId='" + parentId + '\'' +
", url='" + url + '\'' +
'}';
}
}
================================================
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingConstants.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.common.tracing;
/**
* Class to hold constants used in tracing.
*/
public class TracingConstants {
public static final String CLIENT_TRACE_START = "CTS";
public static final String CLIENT_TRACE_END = "CTE";
public static final String SERVER_TRACE_START = "STS";
public static final String SERVER_TRACE_END = "STE";
public static final String TRACE_ID_HEADER = "X-msf4j-trace-id";
public static final String TRACE_ORIGIN_ID_HEADER = "X-msf4j-trace-origin-id";
public static final String DAS_RECEIVER_URL = "http://localhost:9763/endpoints/msf4jtracereceiver";
public static final String DEFAULT_ZIPKIN_URL = "http://0.0.0.0:9411";
/**
* Tracing Types.
*/
public enum TracingType {
DAS, ZIPKIN
}
}
================================================
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingEventTracker.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.common.tracing;
/**
* Class for holding the thread local of tracing events.
* This class help the Client interceptors to access the
* request trace event of the containing service to keep
* the correlation.
*/
public class TracingEventTracker {
private static final ThreadLocal<TraceEvent> traceEventThreadLocal = new ThreadLocal<>();
public static void setTraceEvent(TraceEvent traceEvent) {
traceEventThreadLocal.set(traceEvent);
}
public static TraceEvent getTraceEvent() {
return traceEventThreadLocal.get();
}
}
================================================
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingUtil.java
================================================
/*
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* WSO2 Inc. licenses this file to you 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package org.wso2.msf4j.analytics.common.tracing;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.Response;
/**
* Utility methods of for MSF4J tracing.
*/
public class TracingUtil {
private static final Logger log = LoggerFactory.getLogger(TracingUtil.class);
private static final ExecutorService executorService = Executors.newSingleThreadExecutor();
private static final Random random = new Random();
/**
* Generate a random string unique identifier.
*/
public static String generateUniqueId() {
// UUID.randomUUID().toString() is too slow
// TODO: Test whether the ID is unique enough
return System.currentTimeMillis() + "" + String.format("%08d", random.nextInt(100000000));
}
/**
* Publish trace event to DAS in the background.
*/
public static void pushToDAS(TraceEvent traceEvent, String dasUrl) {
Future<?> future = executorService.submit(() -> {
log.debug("Publishing trace event " + traceEvent);
if (ClientBuilder.newClient().target(dasUrl)
.request().post(Entity.json(traceEvent)).getStatus() != Response.Status.OK.getStatusCode()) {
log.error("Error while publishing trace event " + traceEvent);
}
});
future.isDone(); // Added to avoid findbugs warning
}
}
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/build.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<project name="create-msf4j-http-monitoring-capp" default="zip" basedir=".">
<property name="target_dir" value="target" />
<property name="msf4j_http_monitoring_capp_dir" value="msf4j_http_monitoring_capp" />
<target name="zip">
<zip destfile="${target_dir}/${msf4j_http_monitoring_capp_dir}.car">
<zipfileset dir="${msf4j_http_monitoring_capp_dir}" />
</zip>
</target>
</project>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/artifacts.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifacts>
<artifact name="MSF4J_HTTP_Monitoring_CApp" version="1.0.0" type="carbon/application">
<dependency artifact="http_event_receiver" version="1.0.0" include="true" serverRole="DataAnalyticsServer" />
<dependency artifact="http_event_store" version="1.0.0" include="true" serverRole="DataAnalyticsServer" />
<dependency artifact="http_event_stream" version="1.0.0" include="true" serverRole="DataAnalyticsServer" />
<dependency artifact="spark_script" version="1.0.0" include="true" serverRole="DataAnalyticsServer" />
</artifact>
</artifacts>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_receiver_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="http_event_receiver" version="1.0.0" type="event/receiver" serverRole="DataAnalyticsServer">
<file>http_event_receiver.xml</file>
</artifact>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_receiver_1.0.0/http_event_receiver.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<eventReceiver name="http_event_receiver" statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventreceiver">
<from eventAdapterType="wso2event"/>
<mapping customMapping="disable" type="wso2event"/>
<to streamName="org.wso2.msf4j.analytics.httpmonitoring" version="1.0.0"/>
</eventReceiver>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_store_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="http_event_store" version="1.0.0" type="analytics/eventstore" serverRole="DataAnalyticsServer">
<file>org_wso2_msf4j_analytics_httpmonitoring.xml</file>
</artifact>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_store_1.0.0/org_wso2_msf4j_analytics_httpmonitoring.xml
================================================
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<EventStoreConfiguration>
<TableSchema>
<ColumnDefinition>
<Name>meta_timestamp</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>LONG</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>meta_server_address</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>meta_server_name</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>meta_application_type</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>correlation_activity_id</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>FACET</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>correlation_parent_request</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>service_class</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>service_name</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>service_method</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>request_uri</Name>
<EnableIndexing>false</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>service_context</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>http_method</Name>
<EnableIndexing>false</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>content_type</Name>
<EnableIndexing>false</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>request_content_length</Name>
<EnableIndexing>false</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>LONG</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>referrer</Name>
<EnableIndexing>false</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>STRING</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>http_status_code</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>INTEGER</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>response_time</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>LONG</Type>
</ColumnDefinition>
<ColumnDefinition>
<Name>group_by</Name>
<EnableIndexing>true</EnableIndexing>
<IsPrimaryKey>false</IsPrimaryKey>
<EnableScoreParam>false</EnableScoreParam>
<Type>FACET</Type>
</ColumnDefinition>
</TableSchema>
<Source>
<StreamId>org.wso2.msf4j.analytics.httpmonitoring:1.0.0</StreamId>
</Source>
<RecordStoreName>EVENT_STORE</RecordStoreName>
</EventStoreConfiguration>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_stream_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="http_event_stream" version="1.0.0" type="event/stream" serverRole="DataAnalyticsServer">
<file>org.wso2.msf4j.analytics.httpmonitoring_1.0.0.json</file>
</artifact>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_stream_1.0.0/org.wso2.msf4j.analytics.httpmonitoring_1.0.0.json
================================================
{
"name": "org.wso2.msf4j.analytics.httpmonitoring",
"version": "1.0.0",
"nickName": "msf4j_http_monitoring",
"description": "MSF4J HTTP Monitoring",
"metaData": [
{
"name": "timestamp",
"type": "LONG"
},
{
"name": "server_address",
"type": "STRING"
},
{
"name": "server_name",
"type": "STRING"
},
{
"name": "application_type",
"type": "STRING"
}
],
"correlationData": [
{
"name": "activity_id",
"type": "STRING"
},
{
"name": "parent_request",
"type": "STRING"
}
],
"payloadData": [
{
"name": "service_class",
"type": "STRING"
},
{
"name": "service_name",
"type": "STRING"
},
{
"name": "service_method",
"type": "STRING"
},
{
"name": "request_uri",
"type": "STRING"
},
{
"name": "service_context",
"type": "STRING"
},
{
"name": "http_method",
"type": "STRING"
},
{
"name": "content_type",
"type": "STRING"
},
{
"name": "request_content_length",
"type": "LONG"
},
{
"name": "referrer",
"type": "STRING"
},
{
"name": "http_status_code",
"type": "INT"
},
{
"name": "response_time",
"type": "LONG"
}
]
}
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/spark_script_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="spark_script" version="1.0.0" type="analytics/spark" serverRole="DataAnalyticsServer">
<file>http_event_script.xml</file>
</artifact>
================================================
FILE: analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/spark_script_1.0.0/http_event_script.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<Analytics>
<Name>http_event_script</Name>
<Script>
create temporary table ServiceRequestData USING CarbonAnalytics OPTIONS(tableName
"ORG_WSO2_MSF4J_ANALYTICS_HTTPMONITORING");
CREATE TEMPORARY TABLE MSS_REQUESTS_SUMMARY_PER_MINUTE USING CarbonAnalytics OPTIONS (tableName
"MSS_REQUESTS_SUMMARY_PER_MINUTE",
schema "service_class string -i,
server_address string -i,
avg_request_count int,
avg_response_time int,
session_count int,
http_success_count int,
http_error_count int,
time long -i,
all_facet FACET -i,
time_facet FACET -i,
year_facet FACET -i,
month_facet FACET -i,
day_facet FACET -i,
hour_facet FACET -i,
service_class_facet FACET -i",
primaryKeys "service_class,server_address,time"
);
insert into table MSS_REQUESTS_SUMMARY_PER_MINUTE select service_class,
meta_server_address as server_address,
count(request_uri) as avg_request_count,
avg(response_time) as avg_response_time,
0 as session_count,
sum(if(http_status_code<400, 1, 0)) as http_success_count,
sum(if(http_status_code>=400, 1, 0)) as http_error_count,
cast(first(meta_timestamp)/1000 as timestamp) as time,
facet1(1),
facet1(substring(cast(first(meta_timestamp)/1000 as timestamp),0,16)),
facet1(substring(cast(first(meta_timestamp)/1000 as timestamp),0,4)),
facet1(substring(cast(first(meta_timestamp)/1000 as timestamp),0,7)),
facet1(substring(cast(first(meta_timestamp)/1000 as timestamp),0,10)),
facet1(substring(cast(first(meta_timestamp)/1000 as timestamp),0,13)),
facet1(service_class)
from ServiceRequestData group by meta_application_type, meta_server_address,
service_class, substring(cast(meta_timestamp/1000 as timestamp),0,16);
CREATE TEMPORARY TABLE MSS_NODES USING CarbonAnalytics OPTIONS (tableName "MSS_NODES",
schema "server_address string -i",
primaryKeys "server_address"
);
insert into table MSS_NODES select meta_server_address as server_address
from ServiceRequestData group by meta_server_address;
CREATE TEMPORARY TABLE MSS_HTTP_STATUS USING CarbonAnalytics OPTIONS (tableName "MSS_HTTP_STATUS",
schema "service_class string -i,
server_address string -i,
avg_request_count int,
http_status_code int,
time long -i,
all_facet FACET -i,
http_status_facet FACET -i",
primaryKeys "service_class,server_address,time"
);
insert into table MSS_HTTP_STATUS select service_class,
meta_server_address as server_address,
count(request_uri) as avg_request_count,
http_status_code,
cast(first(meta_timestamp)/1000 as timestamp) as time,
facet1(1),
facet1(http_status_code)
from ServiceRequestData group by meta_server_address, service_class, http_status_code,
substring(cast(meta_timestamp/1000 as timestamp),0,16);
CREATE TEMPORARY TABLE MSS_SERVICE_CONTEXT USING CarbonAnalytics OPTIONS (tableName "MSS_SERVICE_CONTEXT",
schema "service_class string -i,
server_address string -i,
avg_request_count int,
service_context string,
time long -i,
all_facet FACET -i,
context_facet FACET -i",
primaryKeys "service_class,server_address,time"
);
insert into table MSS_SERVICE_CONTEXT select service_class,
meta_server_address as server_address,
count(request_uri) as avg_request_count,
service_context,
cast(first(meta_timestamp)/1000 as timestamp) as time,
facet1(1),
facet1(service_context)
from ServiceRequestData group by meta_server_address, service_class, service_context,
substring(cast(meta_timestamp/1000 as timestamp),0,16);
</Script>
<CronExpression>0 0/15 * 1/1 * ? *</CronExpression>
</Analytics>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Dashboard_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="Dashboard" version="1.0.0" type="dashboards/dashboard" serverRole="DataAnalyticsServer">
<file>msf4j-message-tracing.json</file>
</artifact>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Dashboard_1.0.0/msf4j-message-tracing.json
================================================
{
"id": "msf4j-message-tracing",
"title": "MSF4J Message Tracing",
"description": "",
"permissions": {
"viewers": [
"Internal/everyone"
],
"editors": [
"Internal/everyone"
]
},
"pages": [
{
"id": "landing",
"title": "Welcome",
"layout": {
"content": {
"loggedIn": {
"blocks": [
{
"id": "a",
"col": 1,
"row": 1,
"size_x": 12,
"size_y": 3,
"banner": false
}
]
}
},
"fluidLayout": false
},
"isanon": false,
"content": {
"default": {
"a": [
{
"id": "n6ql6vcjn4hs1mikmu5trzfr",
"content": {
"id": "msf4j-message-tracing",
"title": "MSF4J Message Tracing",
"type": "gadget",
"thumbnail": "store://gadget/msf4j-tracing/icon.png",
"data": {
"url": "store://gadget/msf4j-tracing/index.xml"
},
"styles": {
"title": "MSF4J Message Tracing",
"borders": true
},
"options": {
"timeBack": {
"type": "STRING",
"title": "Trace Last Minutes",
"value": "1440",
"options": [],
"required": false
},
"dasHost": {
"type": "STRING",
"title": "DAS Host",
"value": "https://localhost:9443",
"options": [],
"required": false
},
"username": {
"type": "STRING",
"title": "Username",
"value": "admin",
"options": [],
"required": false
},
"password": {
"type": "STRING",
"title": "Password",
"value": "admin",
"options": [],
"required": false
}
},
"locale_titles": {}
}
}
]
},
"anon": {}
}
}
],
"identityServerUrl": "",
"accessTokenUrl": "",
"apiKey": "",
"apiSecret": "",
"banner": {
"globalBannerExists": null,
"customBannerExists": null
},
"landing": "landing",
"isanon": false,
"isUserCustom": false
}
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Eventreceiver_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="Eventreceiver" version="1.0.0" type="event/receiver" serverRole="DataAnalyticsServer">
<file>msf4jtracereceiver.xml</file>
</artifact>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Eventreceiver_1.0.0/msf4jtracereceiver.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<eventReceiver name="msf4jtracereceiver" statistics="disable"
trace="disable" xmlns="http://wso2.org/carbon/eventreceiver">
<from eventAdapterType="http">
<property name="transports">http</property>
</from>
<mapping customMapping="enable" type="json">
<property>
<from jsonPath="$.type"/>
<to name="type" type="string"/>
</property>
<property>
<from jsonPath="$.time"/>
<to name="time" type="long"/>
</property>
<property>
<from jsonPath="$.statusCode"/>
<to default="0" name="statusCode" type="int"/>
</property>
<property>
<from jsonPath="$.httpMethod"/>
<to default="" name="httpMethod" type="string"/>
</property>
<property>
<from jsonPath="$.instanceId"/>
<to name="instanceId" type="string"/>
</property>
<property>
<from jsonPath="$.instanceName"/>
<to name="instanceName" type="string"/>
</property>
<property>
<from jsonPath="$.parentId"/>
<to default="" name="parentId" type="string"/>
</property>
<property>
<from jsonPath="$.traceId"/>
<to name="traceId" type="string"/>
</property>
<property>
<from jsonPath="$.originId"/>
<to name="originId" type="string"/>
</property>
<property>
<from jsonPath="$.url"/>
<to default="" name="url" type="string"/>
</property>
</mapping>
<to streamName="msf4j-tracing" version="1.0.0"/>
</eventReceiver>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Eventstore_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="Eventstore" version="1.0.0" type="analytics/eventstore" serverRole="DataAnalyticsServer">
<file>msf4j-tracing.xml</file>
</artifact>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Eventstore_1.0.0/msf4j-tracing.xml
================================================
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<EventStoreConfiguration><TableSchema><ColumnDefinition><Name>type</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>true</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>time</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>LONG</Type></ColumnDefinition><ColumnDefinition><Name>statusCode</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>INTEGER</Type></ColumnDefinition><ColumnDefinition><Name>httpMethod</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>instanceId</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>instanceName</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>parentId</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>traceId</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>true</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>originId</Name><EnableIndexing>true</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>url</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>meta_traceId</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>STRING</Type></ColumnDefinition><ColumnDefinition><Name>correlation_originId</Name><EnableIndexing>false</EnableIndexing><IsPrimaryKey>false</IsPrimaryKey><EnableScoreParam>false</EnableScoreParam><Type>INTEGER</Type></ColumnDefinition></TableSchema><Source><StreamId>msf4j-tracing:1.0.0</StreamId></Source><MergeSchema>false</MergeSchema><RecordStoreName>EVENT_STORE</RecordStoreName></EventStoreConfiguration>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Eventstream_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="Eventstream" version="1.0.0" type="event/stream" serverRole="DataAnalyticsServer">
<file>msf4j-tracing_1.0.0.json</file>
</artifact>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/Eventstream_1.0.0/msf4j-tracing_1.0.0.json
================================================
{
"name": "msf4j-tracing",
"version": "1.0.0",
"nickName": "",
"description": "",
"payloadData": [
{
"name": "type",
"type": "STRING"
},
{
"name": "time",
"type": "LONG"
},
{
"name": "statusCode",
"type": "INT"
},
{
"name": "httpMethod",
"type": "STRING"
},
{
"name": "instanceId",
"type": "STRING"
},
{
"name": "instanceName",
"type": "STRING"
},
{
"name": "parentId",
"type": "STRING"
},
{
"name": "traceId",
"type": "STRING"
},
{
"name": "originId",
"type": "STRING"
},
{
"name": "url",
"type": "STRING"
}
]
}
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/artifact.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
~
~ 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
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ 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.
-->
<artifact name="GadgetMSF4JTracing" version="1.0.0" type="dashboards/gadget" serverRole="DataAnalyticsServer">
<file>msf4j-tracing</file>
</artifact>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/css/main.css
================================================
body {
display: block;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
overflow: hidden;
}
#refresh-traces {
padding: 5px 10px;
background-color: #005FB0;
color: #ffffff;
display: inline-block;
margin: 12px 32px;
cursor: pointer;
}
#refresh-traces .pressed {
background-color: #ffffff;
}
#trace-groups {
position: relative;
display: block;
width: 100%;
height: 100%;
overflow-y: auto;
}
.trace-group {
padding: 12px;
cursor: default;
border-bottom: 1px solid #dddddd;
}
.trace-group .inst-name {
display: inline-block;
margin-left: 20px;
max-width: 120px;
}
.trace-group .endpoint {
display: inline-block;
margin-left: 20px;
}
.trace-group .method {
font-weight: bold;
display: inline-block;
margin-left: 20px;
}
.trace-group .url {
margin-left: 20px;
display: inline-block;
}
.trace-group .time {
display: inline-block;
margin-left: 20px;
min-width: 145px;
}
.trace-bar, .trace-bar * {
position: relative;
}
.trace-bar .bar-row {
border-bottom: 1px solid #dddddd;
}
.trace-bar .left-pane {
position: absolute;
float: left;
left: 0;
top: 0;
width: 200px;
line-height: 20px;
padding: 10px 0;
cursor: pointer;
}
.trace-bar .arrow {
display: inline-block;
width: 0;
height: 0;
border-left: 5px solid transparent;
border-right: 5px solid transparent;
border-top: 5px solid #000;
}
.trace-bar .arrow-down {
display: inline-block;
width: 0;
height: 0;
border-top: 5px solid transparent;
border-bottom: 5px solid transparent;
border-left: 5px solid #000;
}
.trace-bar .arrow-hide {
margin-left: 5px;
display: inline-block;
}
.trace-bar .right-pane {
margin-left: 200px;
border-left: 1px solid #dddddd;
padding: 14px 0;
}
.trace-bar .bar-wrapper {
padding: 0 5px;
}
.trace-bar .bar {
position: relative;
background-color: #005FB0;
top: 0;
height: 12px;
cursor: pointer;
border-radius: 2px;
}
.trace-bar .child-container {
}
#trace-tree-view {
position: absolute;
display: block;
height: 100%;
width: 100%;
left: 0;
top: 0;
z-index: 100;
background-color: #ffffff;
padding-top: 40px;
overflow-y: auto;
}
.bar-info {
z-index: 100;
margin: 5px auto;
width: 600px;
position: relative;
}
.bar-info .row {
display: block;
position: relative;
}
.bar-info .row.emp {
font-weight: bold;
}
.bar-info .row.gap {
margin-top: 15px;
}
.bar-info .left-ipane {
position: relative;
display: block;
left: 0;
width: 50%;
text-align: right;
}
.bar-info .left-ipane .wrapper.emp, .bar-info .right-ipane .wrapper.emp {
padding: 8px;
}
.bar-info .left-ipane .wrapper, .bar-info .right-ipane .wrapper {
padding: 8px;
}
.bar-info .right-ipane {
position: absolute;
display: block;
left: 50%;
width: 50%;
top: 0;
text-align: left;
}
.bar-info .close {
z-index: 100;
}
#trace-tree-view .container {
border-top: 1px solid #dddddd;
}
.bar-info .cell {
display: inline-block;
}
#trace-tree-view .close, .bar-info .close {
cursor: pointer;
position: absolute;
display: block;
left: 0;
top: 0;
margin-left: 10px;
font-size: 18px;
}
#trace-tree-view .close .arrow {
display: inline-block;
width: 0;
height: 0;
border-right: 10px solid #666;
border-top: 8px solid transparent;
border-bottom: 8px solid transparent;
margin-right: 5px;
margin-bottom: -2px;
}
#trace-tree-view .time-line-pane {
margin-left: 200px;
}
#trace-tree-view .time-line-wrapper {
position: relative;
display: block;
}
#time-line {
width: 100%;
height: 20px;
}
#time-line .unit {
border-left: 1px solid #dddddd;
color: #666666;
min-height: 4px;
font-size: 10px;
padding-top: 3px;
padding-left: 3px;
display: inline-block;
position: absolute;
}
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/gadget.json
================================================
{
"id": "msf4j-message-tracing",
"title": "MSF4J Message Tracing",
"type": "gadget",
"thumbnail": "store://gadget/msf4j-tracing/icon.png",
"data": {
"url": "store://gadget/msf4j-tracing/index.xml"
}
}
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/index.xml
================================================
<?xml version="1.0" encoding="UTF-8" ?>
<Module>
<ModulePrefs title="MSF4J Message Tracing" height="700" description="MSF4J Tracing">
<Require feature="dynamic-height"/>
<Require feature="setprefs"/>
</ModulePrefs>
<UserPref name="timeBack" display_name="Trace Last Minutes" default_value="1440"/>
<UserPref name="dasHost" display_name="DAS Host" default_value="https://localhost:9443"/>
<UserPref name="username" display_name="Username" default_value="admin"/>
<UserPref name="password" display_name="Password" default_value="admin"/>
<Content type="html">
<![CDATA[
<head>
<link type="text/css" rel="stylesheet" href="css/main.css" media="all">
<script language="javascript" type="text/javascript" src="js/libs/jquery-3.1.0.min.js"></script>
<script language="javascript" type="text/javascript" src="js/libs/jquery.base64.js"></script>
<script language="javascript" type="text/javascript" src="js/libs/mustache.min.js"></script>
<script language="javascript" type="text/javascript" src="js/main.js"></script>
<head>
<body>
<div>
<div>
<div id="refresh-traces">Refresh Traces</div>
</div>
<div id="trace-groups"></div>
</div>
<div id="trace-tree-view">
<div class="close"><div class="arrow"></div>Back</div>
<div>
<div class="container"></div>
<div class="time-line-pane">
<div class="time-line-wrapper">
<div id="time-line"></div>
<div>
</div>
</div>
</div>
<script id="bar-info" type="x-tmpl-mustache">
<div class="bar-info">
<!-- <div class="close">Close</div>-->
<div class="row emp">
<div class="left-ipane">
<div class="wrapper emp">
<div class="cell">Client HTTP Method</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper emp">
<div class="cell">{{chttpMethod}}</div>
</div>
</div>
</div>
<div class="row emp">
<div class="left-ipane">
<div class="wrapper emp">
<div class="cell">Client Request Path</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper emp">
<div class="cell">{{clientPath}}</div>
</div>
</div>
</div>
<div class="row emp">
<div class="left-ipane">
<div class="wrapper emp">
<div class="cell">Microservice HTTP Method</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper emp">
<div class="cell">{{shttpMethod}}</div>
</div>
</div>
</div>
<div class="row emp">
<div class="left-ipane">
<div class="wrapper emp">
<div class="cell">Microservice Path</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper emp">
<div class="cell">{{serverPath}}</div>
</div>
</div>
</div>
<div class="row emp">
<div class="left-ipane">
<div class="wrapper emp">
<div class="cell">Client Response Status</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper emp">
<div class="cell">{{cStatusCode}}</div>
</div>
</div>
</div>
<div class="row emp">
<div class="left-ipane">
<div class="wrapper emp">
<div class="cell">Server Response Status</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper emp">
<div class="cell">{{sStatusCode}}</div>
</div>
</div>
</div>
<div class="row gap">
<div class="left-ipane">
<div class="wrapper">
<div class="cell">Client Request Start</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper">
<div class="cell">{{clientStartTime}}</div>
</div>
</div>
</div>
<div class="row">
<div class="left-ipane">
<div class="wrapper">
<div class="cell">Server Request Receive</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper">
<div class="cell">{{serverStartTime}}</div>
</div>
</div>
</div>
<div class="row">
<div class="left-ipane">
<div class="wrapper">
<div class="cell">Server Response Sent</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper">
<div class="cell">{{serverEndTime}}</div>
</div>
</div>
</div>
<div class="row">
<div class="left-ipane">
<div class="wrapper">
<div class="cell">Client Response Receive</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper">
<div class="cell">{{clientEndTime}}</div>
</div>
</div>
</div>
<div class="row gap">
<div class="left-ipane">
<div class="wrapper">
<div class="cell">Client Instance Name</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper">
<div class="cell">{{clientInstName}}</div>
</div>
</div>
</div>
<div class="row">
<div class="left-ipane">
<div class="wrapper">
<div class="cell">Server Instance Name</div>
</div>
</div>
<div class="right-ipane">
<div class="wrapper">
<div class="cell">{{serverInstName}}</div>
</div>
</div>
</div>
</div>
</script>
<script id="trace-group" type="x-tmpl-mustache">
<div class="trace-group">
<div class="inst-name">{{origin.instanceName}}</div>
<div class="time">{{origin.timeStr}}</div>
<div class="endpoint">
<span class="method">{{origin.httpMethod}}</span>
<span class="url">{{origin.url}}</span>
</div>
</div>
</script>
<script id="trace-bar" type="x-tmpl-mustache">
<div class="trace-bar">
<div class="bar-row">
<div class="left-pane">
<div class="arrow"></div>
<span class="label">Service-01</span>
</div>
<div class="right-pane">
<div class="bar-wrapper">
<div class="bar"></div>
<div class="bar-info-container"></div>
</div>
</div>
</div>
<div class="child-container"></div>
</div>
</script>
</body>
]]>
</Content>
</Module>
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/js/libs/jquery.base64.js
================================================
/*!
* jquery.base64.js 0.1 - https://github.com/yckart/jquery.base64.js
* Makes Base64 en & -decoding simpler as it is.
*
* Based upon: https://gist.github.com/Yaffle/1284012
*
* Copyright (c) 2012 Yannick Albert (http://yckart.com)
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
* 2013/02/10
**/
;(function($) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
a256 = '',
r64 = [256],
r256 = [256],
i = 0;
var UTF8 = {
/**
* Encode multi-byte Unicode string into utf-8 multiple single-byte characters
* (BMP / basic multilingual plane only)
*
* Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars
*
* @param {String} strUni Unicode string to be encoded as UTF-8
* @returns {String} encoded string
*/
encode: function(strUni) {
// use regular expressions & String.replace callback function for better efficiency
// than procedural approaches
var strUtf = strUni.replace(/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f);
})
.replace(/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f);
});
return strUtf;
},
/**
* Decode utf-8 encoded string back into multi-byte Unicode characters
*
* @param {String} strUtf UTF-8 string to be decoded back to Unicode
* @returns {String} decoded string
*/
decode: function(strUtf) {
// note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char!
var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
function(c) { // (note parentheses for precence)
var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f);
return String.fromCharCode(cc);
})
.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
function(c) { // (note parentheses for precence)
var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f;
return String.fromCharCode(cc);
});
return strUni;
}
};
while(i < 256) {
var c = String.fromCharCode(i);
a256 += c;
r256[i] = i;
r64[i] = b64.indexOf(c);
++i;
}
function code(s, discard, alpha, beta, w1, w2) {
s = String(s);
var buffer = 0,
i = 0,
length = s.length,
result = '',
bitsInBuffer = 0;
while(i < length) {
var c = s.charCodeAt(i);
c = c < 256 ? alpha[c] : -1;
buffer = (buffer << w1) + c;
bitsInBuffer += w1;
while(bitsInBuffer >= w2) {
bitsInBuffer -= w2;
var tmp = buffer >> bitsInBuffer;
result += beta.charAt(tmp);
buffer ^= tmp << bitsInBuffer;
}
++i;
}
if(!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer));
return result;
}
var Plugin = $.base64 = function(dir, input, encode) {
return input ? Plugin[dir](input, encode) : dir ? null : this;
};
Plugin.btoa = Plugin.encode = function(plain, utf8encode) {
plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain;
plain = code(plain, false, r256, b64, 8, 6);
return plain + '===='.slice((plain.length % 4) || 4);
};
Plugin.atob = Plugin.decode = function(coded, utf8decode) {
coded = String(coded).split('=');
var i = coded.length;
do {--i;
coded[i] = code(coded[i], true, r64, a256, 6, 8);
} while (i > 0);
coded = coded.join('');
return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded;
};
}(jQuery));
================================================
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/js/main.js
================================================
gadgets.util.registerOnLoadHandler(function () {
gadgets.window.adjustHeight();
});
$(document).ready(function () {
var prefs = new _IG_Prefs();
var traceGroupsElm = $('#trace-groups');
var traceTreeVwElm = $("#trace-tree-view");
var traceTreeVw = initTraceTreeView(
traceTreeVwElm,
traceTreeVwElm.find(".container").first(),
traceTreeVwElm.find(".close").first()
);
(function () {
var refreshTracesElm = $("#refresh-traces");
var isLoading = false;
load();
function load() {
if (isLoading == false) {
isLoading = true;
loadAndRenderTraceGroups(prefs, traceGroupsElm, traceTreeVw, function () {
isLoading = false;
});
}
}
refreshTracesElm.click(function () {
load();
});
})();
});
function loadAndRenderTraceGroups(prefs, traceGroupsElm, traceTreeVw, callback) {
var analyticsPath = "/analytics/tables/MSF4J-TRACING";
var timeBack = prefs.getInt("timeBack");
var dasHost = prefs.getString("dasHost");
var username = prefs.getString("username");
var password = prefs.getString("password");
loadTraces((function (dasHost, analyticsPath, timeBack) {
return dasHost + analyticsPath +
((dasHost.substr(dasHost.length - 1) == "/") ? "" : "/") +
((new Date()).getTime() - timeBack * 60 * 1000);
})(dasHost, analyticsPath, timeBack), timeBack, username, password, function (data) {
var traceGroups = groupTraceEvents(data);
renderTraceGroups(traceGroups, traceGroupsElm, traceTreeVw);
callback();
}, function (jqXHR) {
callback();
var errorData = $.parseJSON(jqXHR.responseText);
if (errorData) {
alert(errorData.message);
} else {
alert("Failed to load traces");
}
});
}
function initBarInfoView(rootElm, traceData, closeCallBack) {
var close = null;
function buildBarInfoVwModel(traceData) {
var vwModel = {
chttpMethod: "-",
shttpMethod: "-",
clientPath: "-",
serverPath: "-",
cStatusCode: "-",
sStatusCode: "-",
clientStartTime: "-",
serverStartTime: "-",
serverEndTime: "-",
clientEndTime: "-",
serverInstName: "-",
clientInstName: "-",
serverInstId: "-",
clientInstId: "-"
};
if (traceData.type == "CTS") {
vwModel.chttpMethod = traceData.httpMethod || "-";
vwModel.clientPath = traceData.url || "-";
vwModel.clientStartTime = traceData.timeStr || "-";
vwModel.clientEndTime = (traceData.end) ? traceData.end.timeStr || "-" : "-";
vwModel.clientInstName = traceData.clientName || "-";
vwModel.clientInstId = traceData.instanceId || "-";
vwModel.cStatusCode = (traceData.end) ? traceData.end.statusCode : "-";
if (traceData.service) {
vwModel.shttpMethod = traceData.service.httpMethod || "-";
vwModel.serverPath = traceData.service.url || "-";
vwModel.serverStartTime = traceData.service.timeStr || "-";
vwModel.serverEndTime = (traceData.service.end) ? traceData.service.end.timeStr || "-" : "-";
vwModel.serverInstName = traceData.instanceName || "-";
vwModel.serverInstId = traceData.service.instanceId || "-";
vwModel.sStatusCode = (traceData.service.end) ? traceData.service.end.statusCode : "-";
}
} else if (traceData.type == "STS") {
vwModel.shttpMethod = traceData.httpMethod || "-";
vwModel.serverPath = traceData.url || "-";
vwModel.serverStartTime = traceData.timeStr || "-";
vwModel.serverEndTime = (traceData.end) ? traceData.end.timeStr || "-" : "-";
vwModel.serverInstName = traceData.instanceName || "-";
vwModel.serverInstId = traceData.instanceId || "-";
vwModel.sStatusCode = (traceData.end) ? traceData.end.statusCode : "-";
}
return vwModel;
}
function show(traceData) {
var barInfoElm = $(
Mustache.render(
$('#bar-info').html(),
buildBarInfoVwModel(traceData)
)
);
close = function () {
barInfoElm.remove();
if (closeCallBack) {
closeCallBack();
}
};
// var closeBtnElm = barInfoElm.find(".close").first();
// closeBtnElm.click(close);
rootElm.append(barInfoElm);
}
return {
show: show,
close: function () {
if (close) {
close();
}
}
};
}
function initTraceTreeView(viewElm, containerElm, closeBtnElm) {
hide();
closeBtnElm.click(function () {
hide();
});
function clean() {
containerElm.empty();
}
function hide() {
clean();
viewElm.hide();
}
function renderTimeLine(start, end) {
var timeLineElm = $("#time-line");
var timeGaps = [
{
gap: 1,
unit: "ms",
unitMs: 1
},
{
gap: 5,
unit: "ms",
unitMs: 1
},
{
gap: 10,
unit: "ms",
unitMs: 1
},
{
gap: 100,
unit: "s",
unitMs: 1000
},
{
gap: 200,
unit: "s",
unitMs: 1000
},
{
gap: 500,
unit: "s",
unitMs: 1000
},
{
gap: 1000,
unit: "s",
unitMs: 1000
},
{
gap: 1000 * 5,
unit: "s",
unitMs: 1000
},
{
gap: 1000 * 10,
unit: "s",
unitMs: 1000
},
{
gap: 1000 * 60,
unit: "s",
unitMs: 1000 * 60
},
{
gap: 1000 * 60 * 5,
unit: "m",
unitMs: 1000 * 60
},
{
gap: 1000 * 60 * 10,
unit: "m",
unitMs: 1000 * 60
},
{
gap: 1000 * 60 * 60,
unit: "h",
unitMs: 1000 * 60 * 60
}
];
var timeDiff = end - start;
function render() {
var spaceDiff = timeLineElm.width();
var minGapWidth = 40;
var timeGap = (function () {
var timeGapsLen = timeGaps.length;
for (var i = 0; i < timeGapsLen; i++) {
var timeGap = timeGaps[i];
var gapCount = (timeDiff / timeGap.gap);
var gapWidth = spaceDiff / gapCount;
if (gapWidth >= minGapWidth) {
return timeGap;
}
}
return timeGaps[timeGapsLen - 1];
})();
var gapCount = (timeDiff / timeGap.gap);
var unitGap = timeGap.gap / timeGap.unitMs;
for (var i = 0; i < gapCount; i++) {
var left = (i * timeGap.gap) * 100 / timeDiff;
var unitElm = $(document.createElement("div"));
unitElm.attr("class", "unit");
unitElm.css("left", left + "%");
unitElm.html((i * unitGap).toFixed(3) + timeGap.unit);
timeLineElm.append(unitElm);
}
}
timeLineElm.empty();
render();
timeLineElm.resize(function () {
timeLineElm.empty();
render();
});
}
function show(traceTree) {
viewElm.show();
renderTraceTree(traceTree, buildOriginTraceBarVw(traceTree, traceTree.timeRange, 0));
renderTimeLine(traceTree.timeRange.start, traceTree.timeRange.end);
}
function buildOriginTraceBarVw(traceTree, timeRange, callDepth) {
var originTraceBarVw = buildTraceBarView(traceTree, timeRange, callDepth);
con
gitextract_cwpary60/
├── .gitignore
├── LICENSE
├── README.md
├── analytics/
│ ├── README.md
│ ├── das-setup/
│ │ ├── capps/
│ │ │ ├── msf4j_http_monitoring_capp.car
│ │ │ └── org_wso2_carbon_metrics-1.0.0.car
│ │ └── setup.sh
│ ├── msf4j-analytics/
│ │ ├── pom.xml
│ │ └── src/
│ │ ├── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── analytics/
│ │ │ │ ├── AnalyticUtils.java
│ │ │ │ ├── httpmonitoring/
│ │ │ │ │ ├── HTTPMonitored.java
│ │ │ │ │ ├── HTTPMonitoringDataPublisher.java
│ │ │ │ │ ├── HTTPMonitoringEvent.java
│ │ │ │ │ ├── HTTPMonitoringInterceptor.java
│ │ │ │ │ └── config/
│ │ │ │ │ ├── HTTPMonitoringConfigBuilder.java
│ │ │ │ │ └── model/
│ │ │ │ │ ├── DasConfig.java
│ │ │ │ │ └── HTTPMonitoringConfig.java
│ │ │ │ ├── internal/
│ │ │ │ │ ├── AnalyticsSC.java
│ │ │ │ │ ├── DataHolder.java
│ │ │ │ │ └── InterceptorCapabilityProvider.java
│ │ │ │ ├── metrics/
│ │ │ │ │ ├── Metrics.java
│ │ │ │ │ ├── MetricsComponent.java
│ │ │ │ │ └── MetricsInterceptor.java
│ │ │ │ └── tracing/
│ │ │ │ └── MSF4JTracingInterceptor.java
│ │ │ └── resources/
│ │ │ └── http-monitoring.yml
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── analytics/
│ │ │ └── HTTPMonitoringConfigTest.java
│ │ └── resources/
│ │ └── deployment.yaml
│ ├── msf4j-analytics-common/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── analytics/
│ │ └── common/
│ │ └── tracing/
│ │ ├── MSF4JClientTracingFilter.java
│ │ ├── TraceEvent.java
│ │ ├── TracingConstants.java
│ │ ├── TracingEventTracker.java
│ │ └── TracingUtil.java
│ ├── msf4j_http_monitoring_capp_source/
│ │ ├── build.xml
│ │ └── msf4j_http_monitoring_capp/
│ │ ├── artifacts.xml
│ │ ├── http_event_receiver_1.0.0/
│ │ │ ├── artifact.xml
│ │ │ └── http_event_receiver.xml
│ │ ├── http_event_store_1.0.0/
│ │ │ ├── artifact.xml
│ │ │ └── org_wso2_msf4j_analytics_httpmonitoring.xml
│ │ ├── http_event_stream_1.0.0/
│ │ │ ├── artifact.xml
│ │ │ └── org.wso2.msf4j.analytics.httpmonitoring_1.0.0.json
│ │ └── spark_script_1.0.0/
│ │ ├── artifact.xml
│ │ └── http_event_script.xml
│ ├── wso2das-tracing-capp/
│ │ ├── capp-content/
│ │ │ ├── Dashboard_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-message-tracing.json
│ │ │ ├── Eventreceiver_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4jtracereceiver.xml
│ │ │ ├── Eventstore_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-tracing.xml
│ │ │ ├── Eventstream_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-tracing_1.0.0.json
│ │ │ ├── GadgetMSF4JTracing_1.0.0/
│ │ │ │ ├── artifact.xml
│ │ │ │ └── msf4j-tracing/
│ │ │ │ ├── css/
│ │ │ │ │ └── main.css
│ │ │ │ ├── gadget.json
│ │ │ │ ├── index.xml
│ │ │ │ └── js/
│ │ │ │ ├── libs/
│ │ │ │ │ └── jquery.base64.js
│ │ │ │ └── main.js
│ │ │ └── artifacts.xml
│ │ ├── pom.xml
│ │ └── zip.xml
│ └── zipkin-tracing/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── analytics/
│ │ └── zipkintracing/
│ │ ├── MSF4JZipkinTracingInterceptor.java
│ │ ├── TraceableHttpClientRequest.java
│ │ ├── TraceableHttpClientResponse.java
│ │ ├── TraceableHttpServerRequest.java
│ │ └── TraceableHttpServerResponse.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── analytics/
│ │ └── zipkintracing/
│ │ ├── TraceableHttpClientRequestTest.java
│ │ ├── TraceableHttpClientResponseTest.java
│ │ ├── TraceableHttpServerRequestTest.java
│ │ └── TraceableHttpServerResponseTest.java
│ └── resources/
│ └── testng.xml
├── archetypes/
│ ├── README.md
│ └── msf4j-microservice/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── resources/
│ ├── META-INF/
│ │ └── maven/
│ │ └── archetype-metadata.xml
│ └── archetype-resources/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ ├── Application.java
│ └── __serviceClass__.java
├── client/
│ ├── README.md
│ ├── pom.xml
│ ├── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── client/
│ │ ├── ApacheHttpClient.java
│ │ ├── FeginZipkinTracingClient.java
│ │ ├── FeignClientWrapper.java
│ │ ├── FeignTracingClient.java
│ │ ├── MSF4JClient.java
│ │ ├── ModelUtils.java
│ │ ├── codec/
│ │ │ ├── DefaultErrorDecoder.java
│ │ │ ├── DefaultRestErrorResponse.java
│ │ │ ├── MSF4JDecoder.java
│ │ │ ├── MSF4JJacksonDecoder.java
│ │ │ └── RestErrorResponseMapper.java
│ │ └── exception/
│ │ └── RestServiceException.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── client/
│ │ └── test/
│ │ ├── ClientTest.java
│ │ ├── ModelUtils.java
│ │ ├── client/
│ │ │ ├── api/
│ │ │ │ ├── CustomerServiceAPI.java
│ │ │ │ └── InvoiceServiceAPI.java
│ │ │ └── exception/
│ │ │ ├── CustomerNotFoundResponseMapper.java
│ │ │ ├── CustomerNotFoundRestServiceException.java
│ │ │ ├── InvoiceNotFoundResponseMapper.java
│ │ │ └── InvoiceNotFoundRestServiceException.java
│ │ ├── exception/
│ │ │ ├── CustomerNotFoundException.java
│ │ │ ├── CustomerNotFoundMapper.java
│ │ │ ├── EntityNotFoundException.java
│ │ │ ├── EntityNotFoundMapper.java
│ │ │ ├── GenericServerErrorException.java
│ │ │ ├── GenericServerErrorMapper.java
│ │ │ ├── InvoiceNotFoundException.java
│ │ │ └── InvoiceNotFoundMapper.java
│ │ ├── model/
│ │ │ ├── Customer.java
│ │ │ ├── Invoice.java
│ │ │ ├── InvoiceReport.java
│ │ │ └── ServiceErrorResponse.java
│ │ └── service/
│ │ ├── CustomerService.java
│ │ ├── InvoiceService.java
│ │ └── ReportService.java
│ └── resources/
│ └── testng.xml
├── core/
│ ├── deployment.yaml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ ├── AbstractSessionManager.java
│ │ │ ├── DefaultSessionManager.java
│ │ │ ├── HttpStreamHandler.java
│ │ │ ├── HttpStreamer.java
│ │ │ ├── Interceptor.java
│ │ │ ├── Microservice.java
│ │ │ ├── MicroservicesRegistry.java
│ │ │ ├── MicroservicesRunner.java
│ │ │ ├── MicroservicesServer.java
│ │ │ ├── PersistentSessionManager.java
│ │ │ ├── Request.java
│ │ │ ├── Response.java
│ │ │ ├── ServiceMethodInfo.java
│ │ │ ├── Session.java
│ │ │ ├── SessionManager.java
│ │ │ ├── SwaggerService.java
│ │ │ ├── beanconversion/
│ │ │ │ ├── BeanConversionException.java
│ │ │ │ └── MediaTypeConverter.java
│ │ │ ├── config/
│ │ │ │ └── MSF4JConfig.java
│ │ │ ├── exception/
│ │ │ │ ├── InterceptorException.java
│ │ │ │ └── OSGiDeclarativeServiceException.java
│ │ │ ├── formparam/
│ │ │ │ ├── FileInfo.java
│ │ │ │ ├── FormDataParam.java
│ │ │ │ ├── FormItem.java
│ │ │ │ ├── FormParamIterator.java
│ │ │ │ ├── MultipartStream.java
│ │ │ │ ├── ParameterParser.java
│ │ │ │ ├── RequestContext.java
│ │ │ │ ├── exception/
│ │ │ │ │ ├── FormUploadException.java
│ │ │ │ │ ├── InvalidContentTypeException.java
│ │ │ │ │ └── InvalidFileNameException.java
│ │ │ │ └── util/
│ │ │ │ ├── Closeable.java
│ │ │ │ ├── FormItemHeader.java
│ │ │ │ ├── StreamUtil.java
│ │ │ │ ├── mime/
│ │ │ │ │ ├── Base64Decoder.java
│ │ │ │ │ ├── MimeUtility.java
│ │ │ │ │ ├── ParseException.java
│ │ │ │ │ ├── QuotedPrintableDecoder.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── package-info.java
│ │ │ ├── interceptor/
│ │ │ │ ├── InterceptorExecutor.java
│ │ │ │ ├── OSGiInterceptorConfig.java
│ │ │ │ ├── RequestInterceptor.java
│ │ │ │ ├── ResponseInterceptor.java
│ │ │ │ └── annotation/
│ │ │ │ ├── RequestInterceptor.java
│ │ │ │ └── ResponseInterceptor.java
│ │ │ ├── internal/
│ │ │ │ ├── ClassComparator.java
│ │ │ │ ├── DataHolder.java
│ │ │ │ ├── HttpConnectorPortBindingListener.java
│ │ │ │ ├── HttpHeadersImpl.java
│ │ │ │ ├── MSF4JConstants.java
│ │ │ │ ├── MSF4JHttpConnectorListener.java
│ │ │ │ ├── MSF4JThreadFactory.java
│ │ │ │ ├── MSF4JWSConnectorListener.java
│ │ │ │ ├── MicroservicesLCException.java
│ │ │ │ ├── MicroservicesRegistryImpl.java
│ │ │ │ ├── MicroservicesServerActivator.java
│ │ │ │ ├── MicroservicesServerImpl.java
│ │ │ │ ├── MicroservicesServerSC.java
│ │ │ │ ├── beanconversion/
│ │ │ │ │ ├── BeanConverter.java
│ │ │ │ │ ├── JsonConverter.java
│ │ │ │ │ ├── TextPlainConverter.java
│ │ │ │ │ └── XmlConverter.java
│ │ │ │ ├── entitywriter/
│ │ │ │ │ ├── EntityWriter.java
│ │ │ │ │ ├── EntityWriterRegistry.java
│ │ │ │ │ ├── FileEntityWriter.java
│ │ │ │ │ ├── InputStreamEntityWriter.java
│ │ │ │ │ ├── ObjectEntityWriter.java
│ │ │ │ │ └── StreamingOutputEntityWriter.java
│ │ │ │ ├── mime/
│ │ │ │ │ ├── MimeMapper.java
│ │ │ │ │ └── MimeMappingException.java
│ │ │ │ ├── router/
│ │ │ │ │ ├── HandlerException.java
│ │ │ │ │ ├── HttpMethodInfo.java
│ │ │ │ │ ├── HttpMethodInfoBuilder.java
│ │ │ │ │ ├── HttpResourceModel.java
│ │ │ │ │ ├── HttpResourceModelProcessor.java
│ │ │ │ │ ├── ImmutablePair.java
│ │ │ │ │ ├── MicroserviceMetadata.java
│ │ │ │ │ ├── ParamConvertUtils.java
│ │ │ │ │ ├── PatternPathRouter.java
│ │ │ │ │ ├── SubresourceKey.java
│ │ │ │ │ ├── Util.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── session/
│ │ │ │ │ └── SessionIdGenerator.java
│ │ │ │ └── websocket/
│ │ │ │ ├── CloseCodeImpl.java
│ │ │ │ ├── EndpointDispatcher.java
│ │ │ │ ├── EndpointValidator.java
│ │ │ │ ├── EndpointsRegistryImpl.java
│ │ │ │ ├── WebSocketPongMessage.java
│ │ │ │ └── WebSocketServerSC.java
│ │ │ ├── security/
│ │ │ │ ├── JWTSecurityInterceptor.java
│ │ │ │ ├── MSF4JSecurityException.java
│ │ │ │ ├── SecurityErrorCode.java
│ │ │ │ ├── basic/
│ │ │ │ │ └── AbstractBasicAuthSecurityInterceptor.java
│ │ │ │ └── oauth2/
│ │ │ │ ├── IntrospectionResponse.java
│ │ │ │ └── OAuth2SecurityInterceptor.java
│ │ │ ├── template/
│ │ │ │ ├── RuntimeTemplateException.java
│ │ │ │ └── TemplateEngine.java
│ │ │ ├── util/
│ │ │ │ ├── BufferUtil.java
│ │ │ │ ├── Defaults.java
│ │ │ │ ├── HttpUtil.java
│ │ │ │ ├── Primitives.java
│ │ │ │ ├── QueryStringDecoderUtil.java
│ │ │ │ ├── ReflectionUtils.java
│ │ │ │ ├── RuntimeAnnotations.java
│ │ │ │ ├── SystemVariableUtil.java
│ │ │ │ └── Utils.java
│ │ │ └── websocket/
│ │ │ ├── WebSocketEndpoint.java
│ │ │ ├── WebSocketEndpointsRegistry.java
│ │ │ └── exception/
│ │ │ ├── WebSocketEndpointAnnotationException.java
│ │ │ ├── WebSocketEndpointMethodReturnTypeException.java
│ │ │ └── WebSocketMethodParameterException.java
│ │ └── resources/
│ │ ├── deployment.yaml
│ │ ├── log4j.properties
│ │ └── mime-map.properties
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ ├── DeprecatedInterceptorTest.java
│ │ ├── ExtendedServiceTest.java
│ │ ├── HostBindingTest.java
│ │ ├── HttpResourceModelTest.java
│ │ ├── HttpServerTest.java
│ │ ├── HttpsServerTest.java
│ │ ├── InterceptorTest.java
│ │ ├── InterceptorTestBase.java
│ │ ├── MSF4JResponseTest.java
│ │ ├── MimeMapperTest.java
│ │ ├── MutualAuthServerTest.java
│ │ ├── PathRouterTest.java
│ │ ├── SSLKeyStoreTest.java
│ │ ├── TransportConfigurationTest.java
│ │ ├── TransportConfigurationTest2.java
│ │ ├── beanconversion/
│ │ │ └── BeanConverterTest.java
│ │ ├── conf/
│ │ │ ├── Constants.java
│ │ │ ├── SSLClientContext.java
│ │ │ ├── SSLConfig.java
│ │ │ ├── SSLHandlerFactory.java
│ │ │ └── TrustManagerFactory.java
│ │ ├── exception/
│ │ │ ├── MappedException.java
│ │ │ ├── MappedException2.java
│ │ │ ├── TestExceptionMapper.java
│ │ │ └── TestExceptionMapper2.java
│ │ ├── interceptor/
│ │ │ ├── HighPriorityClassRequestInterceptor.java
│ │ │ ├── HighPriorityClassResponseInterceptor.java
│ │ │ ├── HighPriorityGlobalRequestInterceptor.java
│ │ │ ├── HighPriorityGlobalResponseInterceptor.java
│ │ │ ├── HighPriorityMethodRequestInterceptor.java
│ │ │ ├── HighPriorityMethodResponseInterceptor.java
│ │ │ ├── LowPriorityClassRequestInterceptor.java
│ │ │ ├── LowPriorityClassResponseInterceptor.java
│ │ │ ├── LowPriorityGlobalRequestInterceptor.java
│ │ │ ├── LowPriorityGlobalResponseInterceptor.java
│ │ │ ├── LowPriorityMethodRequestInterceptor.java
│ │ │ ├── LowPriorityMethodResponseInterceptor.java
│ │ │ ├── MediumPriorityClassRequestInterceptor.java
│ │ │ ├── MediumPriorityClassResponseInterceptor.java
│ │ │ ├── MediumPriorityGlobalRequestInterceptor.java
│ │ │ ├── MediumPriorityGlobalResponseInterceptor.java
│ │ │ ├── MediumPriorityMethodRequestInterceptor.java
│ │ │ ├── MediumPriorityMethodResponseInterceptor.java
│ │ │ ├── PriorityDataHolder.java
│ │ │ ├── TestBreakRequestInterceptor.java
│ │ │ ├── TestBreakResponseInterceptor.java
│ │ │ ├── TestExceptionBreakRequestInterceptor.java
│ │ │ ├── TestInterceptor.java
│ │ │ ├── TestInterceptorDeprecated.java
│ │ │ ├── TestRequestInterceptor.java
│ │ │ └── TestResponseInterceptor.java
│ │ ├── internal/
│ │ │ ├── HttpHeadersImplTest.java
│ │ │ └── MicroservicesRegistryTest.java
│ │ ├── pojo/
│ │ │ ├── Category.java
│ │ │ ├── Company.java
│ │ │ ├── Person.java
│ │ │ ├── Pet.java
│ │ │ ├── TextBean.java
│ │ │ └── XmlBean.java
│ │ ├── service/
│ │ │ ├── ExtendedTestMicroservice.java
│ │ │ ├── InterceptorTestMicroService.java
│ │ │ ├── PriorityInterceptorTestMicroService.java
│ │ │ ├── SecondService.java
│ │ │ ├── TestMicroServiceWithDynamicPath.java
│ │ │ ├── TestMicroservice.java
│ │ │ └── sub/
│ │ │ ├── Player.java
│ │ │ └── Team.java
│ │ ├── session/
│ │ │ └── SessionIdGeneratorTest.java
│ │ ├── util/
│ │ │ ├── QueryStringDecoderUtilTest.java
│ │ │ └── client/
│ │ │ └── websocket/
│ │ │ ├── WebSocketClient.java
│ │ │ └── WebSocketClientHandler.java
│ │ └── websocket/
│ │ ├── DeploymentTest.java
│ │ ├── EndpointRegistryTest.java
│ │ ├── ValidatorTest.java
│ │ └── endpoint/
│ │ ├── ChatAppEndpoint.java
│ │ ├── EchoEndpoint.java
│ │ ├── TestEndpoint.java
│ │ ├── TestEndpointWithAllCorrect.java
│ │ ├── TestEndpointWithMandatoryParameters.java
│ │ └── error/
│ │ ├── TestEndpoinWithOnTextError.java
│ │ ├── TestEndpointWithMandatoryParametersMissing.java
│ │ ├── TestEndpointWithOnBinaryError.java
│ │ ├── TestEndpointWithOnCloseError.java
│ │ ├── TestEndpointWithOnError.java
│ │ ├── TestEndpointWithOnOpenError.java
│ │ ├── TestEndpointWithOnPongError.java
│ │ ├── TestEndpointWithReturnTypeError.java
│ │ └── TestEndpointWithServerEndpointError.java
│ └── resources/
│ ├── cert.jks
│ ├── client.jks
│ ├── deployment.yaml
│ ├── netty-transports-1.yaml
│ ├── netty-transports-2.yaml
│ ├── netty-transports-3.yaml
│ ├── netty-transports-4.yaml
│ ├── testTxtFile.txt
│ └── testng.xml
├── deployer/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── deployer/
│ │ ├── MicroserviceDeploymentException.java
│ │ ├── MicroserviceDeploymentUtils.java
│ │ └── internal/
│ │ ├── DataHolder.java
│ │ ├── MSF4JDeployerSC.java
│ │ └── MicroservicesDeployer.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── deployer/
│ │ └── MSF4JDeployerTest.java
│ └── resources/
│ └── testng.xml
├── distribution/
│ ├── binary/
│ │ ├── LICENSE.txt
│ │ ├── README.md
│ │ ├── bin.xml
│ │ ├── conf/
│ │ │ ├── netty-transports.yml
│ │ │ └── wso2carbon.jks
│ │ └── pom.xml
│ └── msf4j-all/
│ ├── README.md
│ └── pom.xml
├── features/
│ ├── etc/
│ │ └── feature.properties
│ ├── feature-test/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── osgi/
│ │ │ └── test/
│ │ │ └── MSF4JStartupTest.java
│ │ └── resources/
│ │ ├── carbon-home/
│ │ │ └── conf/
│ │ │ ├── carbon.yml
│ │ │ └── log4j2.xml
│ │ └── testng.xml
│ ├── org.wso2.msf4j.deployer.feature/
│ │ ├── pom.xml
│ │ └── resources/
│ │ └── p2.inf
│ └── org.wso2.msf4j.feature/
│ ├── pom.xml
│ └── resources/
│ └── netty-transports.yml
├── issue_template.md
├── jaxrs-delegates/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── delegates/
│ │ │ ├── CookieHeaderProvider.java
│ │ │ ├── MSF4JResponse.java
│ │ │ ├── MSF4JRuntimeDelegate.java
│ │ │ └── MediaTypeHeaderProvider.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── javax.ws.rs.ext.RuntimeDelegate
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ ├── delegates/
│ │ │ ├── CookieHeaderProviderTest.java
│ │ │ └── MediaTypeHeaderProviderTest.java
│ │ ├── models/
│ │ │ └── SampleEntity.java
│ │ └── service/
│ │ └── ClientTestMicroService.java
│ └── resources/
│ └── testng.xml
├── perf-benchmark/
│ ├── README.md
│ ├── Samples/
│ │ ├── dropwizard/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── perftest/
│ │ │ └── echo/
│ │ │ └── dropwizard/
│ │ │ ├── AppStart.java
│ │ │ └── EchoService.java
│ │ ├── ninja-echo-message/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ ├── conf/
│ │ │ │ ├── Module.java
│ │ │ │ ├── Routes.java
│ │ │ │ ├── application.conf
│ │ │ │ └── messages.properties
│ │ │ ├── controllers/
│ │ │ │ └── ApplicationController.java
│ │ │ ├── ehcache.xml
│ │ │ ├── logback.xml
│ │ │ └── util/
│ │ │ └── BodyParserEngineTextPlain.java
│ │ ├── spark/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── perftest/
│ │ │ └── echo/
│ │ │ └── spark/
│ │ │ └── Application.java
│ │ ├── springboot/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── perftest/
│ │ │ └── echo/
│ │ │ └── springboot/
│ │ │ ├── Application.java
│ │ │ └── EchoService.java
│ │ ├── wildfly/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ ├── run.sh
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── perftest/
│ │ │ │ └── echo/
│ │ │ │ └── wildfly/
│ │ │ │ ├── EchoService.java
│ │ │ │ └── WFApplication.java
│ │ │ └── webapp/
│ │ │ └── WEB-INF/
│ │ │ └── beans.xml
│ │ └── wso2msf4j/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ ├── run.sh
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── perftest/
│ │ └── echo/
│ │ └── wso2msf4j/
│ │ ├── Application.java
│ │ └── EchoService.java
│ ├── excecute-tests.sh
│ ├── run-latency.sh
│ └── run.sh
├── pom.xml
├── poms/
│ ├── msf4j-service/
│ │ ├── README.md
│ │ └── pom.xml
│ └── parent/
│ └── pom.xml
├── pull_request_template.md
├── samples/
│ ├── README.md
│ ├── basicauth-security/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Helloworld.java
│ │ └── UsernamePasswordSecurityInterceptor.java
│ ├── circuitbreaker/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── example/
│ │ └── service/
│ │ ├── Application.java
│ │ ├── CircuitBreakerCommand.java
│ │ ├── Stock.java
│ │ ├── StockQuoteDatabase.java
│ │ └── StockQuoteService.java
│ ├── fileserver/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── FileServer.java
│ ├── formparam/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── FormService.java
│ │ │ ├── SampleClient.java
│ │ │ └── bean/
│ │ │ ├── Company.java
│ │ │ └── Person.java
│ │ └── resources/
│ │ └── sample.txt
│ ├── helloworld/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── HelloService.java
│ ├── http-monitoring/
│ │ ├── README.md
│ │ ├── client-truststore.jks
│ │ ├── data-agent-config.xml
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── sample/
│ │ │ └── httpmonitoring/
│ │ │ ├── Application.java
│ │ │ └── service/
│ │ │ ├── Student.java
│ │ │ └── StudentService.java
│ │ └── resources/
│ │ ├── deployment.yaml
│ │ ├── http-monitoring.yaml
│ │ └── metrics.yaml
│ ├── http-session/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── CounterService.java
│ ├── interceptor/
│ │ ├── README.md
│ │ ├── deployable-jar-interceptor-service/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── deployablejarinterceptorservice/
│ │ │ ├── InterceptorService.java
│ │ │ └── interceptors/
│ │ │ ├── HTTPRequestLogger.java
│ │ │ ├── HTTPResponseLogger.java
│ │ │ ├── LogTextRequestInterceptor.java
│ │ │ ├── LogTextResponseInterceptor.java
│ │ │ ├── PropertyAddRequestInterceptor.java
│ │ │ └── PropertyGetResponseInterceptor.java
│ │ ├── fatjar-interceptor-service/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── fatjarinterceptorservice/
│ │ │ ├── Application.java
│ │ │ └── InterceptorService.java
│ │ ├── interceptor-common/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── interceptor/
│ │ │ └── common/
│ │ │ ├── HTTPRequestLogger.java
│ │ │ ├── HTTPResponseLogger.java
│ │ │ ├── LogTextRequestInterceptor.java
│ │ │ ├── LogTextResponseInterceptor.java
│ │ │ ├── PropertyAddRequestInterceptor.java
│ │ │ └── PropertyGetResponseInterceptor.java
│ │ ├── osgi-interceptor-service/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── samples/
│ │ │ └── osgiinterceptorservice/
│ │ │ ├── InterceptorService.java
│ │ │ └── config/
│ │ │ └── SampleInterceptorConfig.java
│ │ └── spring-fatjar-interceptor-service/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── samples/
│ │ └── springfatjarinterceptorservice/
│ │ ├── Application.java
│ │ ├── CustomerService.java
│ │ └── ReceptionService.java
│ ├── jpa/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── dao/
│ │ │ │ ├── AbstractRepository.java
│ │ │ │ └── UserRepository.java
│ │ │ ├── model/
│ │ │ │ └── User.java
│ │ │ └── resource/
│ │ │ └── UserResource.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── persistence.xml
│ ├── jwt-claims/
│ │ ├── JWTAccessTokenBuilder/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── wso2/
│ │ │ └── jwt/
│ │ │ └── token/
│ │ │ └── builder/
│ │ │ ├── Constants.java
│ │ │ ├── JWTAccessTokenBuilder.java
│ │ │ └── internal/
│ │ │ └── JWTAccessTokenBuilderDSComponent.java
│ │ ├── README.md
│ │ ├── jwt-sample/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── example/
│ │ │ │ ├── Application.java
│ │ │ │ ├── CustomJWTClaimsInterceptor.java
│ │ │ │ └── Helloworld.java
│ │ │ └── resources/
│ │ │ └── wso2carbon.jks
│ │ ├── pom.xml
│ │ ├── sso-agent-for-jwt-webapp/
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── sample/
│ │ │ │ └── is/
│ │ │ │ └── sso/
│ │ │ │ └── agent/
│ │ │ │ ├── ForwardingServlet.java
│ │ │ │ ├── SSOAgentSampleFilter.java
│ │ │ │ ├── SampleAttributesRequestor.java
│ │ │ │ └── SampleContextEventListener.java
│ │ │ ├── resources/
│ │ │ │ ├── avis.properties
│ │ │ │ ├── travelocity.properties
│ │ │ │ └── wso2carbon.jks
│ │ │ └── webapp/
│ │ │ ├── WEB-INF/
│ │ │ │ └── web.xml
│ │ │ ├── css/
│ │ │ │ └── cart-styles.css
│ │ │ ├── errors.jsp
│ │ │ ├── home.jsp
│ │ │ └── index.jsp
│ │ └── sso-agent-sample/
│ │ └── pom.xml
│ ├── lifecycle/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── Helloworld.java
│ ├── log-interceptor-bundle/
│ │ └── pom.xml
│ ├── message-tracing/
│ │ ├── das/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── ModelUtils.java
│ │ │ ├── client/
│ │ │ │ ├── api/
│ │ │ │ │ ├── CustomerServiceAPI.java
│ │ │ │ │ └── InvoiceServiceAPI.java
│ │ │ │ └── exception/
│ │ │ │ ├── CustomerNotFoundResponseMapper.java
│ │ │ │ ├── CustomerNotFoundRestServiceException.java
│ │ │ │ ├── InvoiceNotFoundResponseMapper.java
│ │ │ │ └── InvoiceNotFoundRestServiceException.java
│ │ │ ├── exception/
│ │ │ │ ├── CustomerNotFoundException.java
│ │ │ │ ├── CustomerNotFoundMapper.java
│ │ │ │ ├── EntityNotFoundException.java
│ │ │ │ ├── EntityNotFoundMapper.java
│ │ │ │ ├── GenericServerErrorException.java
│ │ │ │ ├── GenericServerErrorMapper.java
│ │ │ │ ├── InvoiceNotFoundException.java
│ │ │ │ └── InvoiceNotFoundMapper.java
│ │ │ ├── model/
│ │ │ │ ├── Customer.java
│ │ │ │ ├── Invoice.java
│ │ │ │ ├── InvoiceReport.java
│ │ │ │ └── ServiceErrorResponse.java
│ │ │ └── service/
│ │ │ ├── CustomerService.java
│ │ │ ├── InvoiceService.java
│ │ │ └── ReportService.java
│ │ └── zipkin/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── TraceableService.java
│ │ └── TraceableServiceInterface.java
│ ├── metrics/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── sample/
│ │ │ └── metrics/
│ │ │ ├── Application.java
│ │ │ └── service/
│ │ │ └── DemoService.java
│ │ └── resources/
│ │ ├── deployment.yaml
│ │ └── metrics.yaml
│ ├── oauth2-security/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── service/
│ │ └── Helloworld.java
│ ├── petstore/
│ │ ├── README.md
│ │ ├── deployment/
│ │ │ ├── docker-compose/
│ │ │ │ ├── README.md
│ │ │ │ ├── clean.sh
│ │ │ │ ├── das/
│ │ │ │ │ └── Dockerfile
│ │ │ │ ├── docker-compose.yaml
│ │ │ │ └── run.sh
│ │ │ └── kubernetes/
│ │ │ ├── README.md
│ │ │ ├── clean.sh
│ │ │ ├── external-endpoints/
│ │ │ │ ├── das-endpoint.yaml
│ │ │ │ ├── das-service.yaml
│ │ │ │ ├── is-endpoint.yaml
│ │ │ │ └── is-service.yaml
│ │ │ ├── packs/
│ │ │ │ └── README.md
│ │ │ ├── path.sh
│ │ │ ├── petstore.sh
│ │ │ └── scale.sh
│ │ ├── microservices/
│ │ │ ├── fileserver/
│ │ │ │ ├── README.md
│ │ │ │ ├── client-truststore.jks
│ │ │ │ ├── container/
│ │ │ │ │ ├── docker/
│ │ │ │ │ │ ├── Dockerfile
│ │ │ │ │ │ └── README.md
│ │ │ │ │ └── kubernetes/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── fileserver-rc.yaml
│ │ │ │ │ └── fileserver-service.yaml
│ │ │ │ ├── data-agent-conf.xml
│ │ │ │ ├── pom.xml
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── org/
│ │ │ │ │ └── wso2/
│ │ │ │ │ └── msf4j/
│ │ │ │ │ └── examples/
│ │ │ │ │ └── petstore/
│ │ │ │ │ └── fileserver/
│ │ │ │ │ ├── FileServerService.java
│ │ │ │ │ └── Runner.java
│ │ │ │ └── resources/
│ │ │ │ ├── http-monitoring.yml
│ │ │ │ ├── metrics.yml
│ │ │ │ └── wso2carbon.jks
│ │ │ ├── frontend-admin/
│ │ │ │ └── container/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── docker/
│ │ │ │ │ ├── Dockerfile
│ │ │ │ │ ├── html/
│ │ │ │ │ │ ├── .htaccess
│ │ │ │ │ │ ├── add-pet-types.php
│ │ │ │ │ │ ├── add-pets.php
│ │ │ │ │ │ ├── config/
│ │ │ │ │ │ │ └── config.php
│ │ │ │ │ │ ├── controllers/
│ │ │ │ │ │ │ ├── API/
│ │ │ │ │ │ │ │ └── curl_api.php
│ │ │ │ │ │ │ ├── authentication/
│ │ │ │ │ │ │ │ └── auth.php
│ │ │ │ │ │ │ └── rest.php
│ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ └── custom.css
│ │ │ │ │ │ ├── includes/
│ │ │ │ │ │ │ ├── header.php
│ │ │ │ │ │ │ └── navbar.php
│ │ │ │ │ │ ├── index.php
│ │ │ │ │ │ ├── js/
│ │ │ │ │ │ │ ├── custom.js
│ │ │ │ │ │ │ └── login.js
│ │ │ │ │ │ ├── libs/
│ │ │ │ │ │ │ ├── font-awesome_4.3.0/
│ │ │ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ │ │ └── font-awesome.css
│ │ │ │ │ │ │ │ └── fonts/
│ │ │ │ │ │ │ │ └── FontAwesome.otf
│ │ │ │ │ │ │ ├── font-wso2_1.2/
│ │ │ │ │ │ │ │ └── css/
│ │ │ │ │ │ │ │ └── font-wso2.css
│ │ │ │ │ │ │ ├── jquery_1.11.3/
│ │ │ │ │ │ │ │ └── jquery-1.11.3.js
│ │ │ │ │ │ │ └── noty_2.3.5/
│ │ │ │ │ │ │ ├── jquery.noty.js
│ │ │ │ │ │ │ ├── layouts/
│ │ │ │ │ │ │ │ ├── bottom.js
│ │ │ │ │ │ │ │ ├── bottomCenter.js
│ │ │ │ │ │ │ │ ├── bottomLeft.js
│ │ │ │ │ │ │ │ ├── bottomRight.js
│ │ │ │ │ │ │ │ ├── center.js
│ │ │ │ │ │ │ │ ├── centerLeft.js
│ │ │ │ │ │ │ │ ├── centerRight.js
│ │ │ │ │ │ │ │ ├── inline.js
│ │ │ │ │ │ │ │ ├── top.js
│ │ │ │ │ │ │ │ ├── topCenter.js
│ │ │ │ │ │ │ │ ├── topLeft.js
│ │ │ │ │ │ │ │ └── topRight.js
│ │ │ │ │ │ │ ├── packaged/
│ │ │ │ │ │ │ │ └── jquery.noty.packaged.js
│ │ │ │ │ │ │ ├── promise.js
│ │ │ │ │ │ │ └── themes/
│ │ │ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ │ │ ├── default.js
│ │ │ │ │ │ │ └── relax.js
│ │ │ │ │ │ ├── login.php
│ │ │ │ │ │ ├── logout.php
│ │ │ │ │ │ ├── pet-types.php
│ │ │ │ │ │ └── pets.php
│ │ │ │ │ └── init.sh
│ │ │ │ └── kubernetes/
│ │ │ │ ├── admin-fe-controller.yaml
│ │ │ │ ├── admin-fe-service.yaml
│ │ │ │ ├── redis-master-controller.yaml
│ │ │ │ └── redis-master-service.yaml
│ │ │ ├── frontend-user/
│ │ │ │ └── container/
│ │ │ │ ├── .gitignore
│ │ │ │ ├── README.md
│ │ │ │ ├── docker/
│ │ │ │ │ ├── Dockerfile
│ │ │ │ │ ├── html/
│ │ │ │ │ │ ├── cart.php
│ │ │ │ │ │ ├── checkout.php
│ │ │ │ │ │ ├── config/
│ │ │ │ │ │ │ └── config.php
│ │ │ │ │ │ ├── controllers/
│ │ │ │ │ │ │ ├── API/
│ │ │ │ │ │ │ │ └── curl_api.php
│ │ │ │ │ │ │ ├── authentication/
│ │ │ │ │ │ │ │ └── auth.php
│ │ │ │ │ │ │ └── cart/
│ │ │ │ │ │ │ └── cart.php
│ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ └── custom.css
│ │ │ │ │ │ ├── includes/
│ │ │ │ │ │ │ ├── header.php
│ │ │ │ │ │ │ └── navbar.php
│ │ │ │ │ │ ├── index.php
│ │ │ │ │ │ ├── js/
│ │ │ │ │ │ │ ├── custom.js
│ │ │ │ │ │ │ └── login.js
│ │ │ │ │ │ ├── libs/
│ │ │ │ │ │ │ ├── font-awesome_4.3.0/
│ │ │ │ │ │ │ │ ├── css/
│ │ │ │ │ │ │ │ │ └── font-awesome.css
│ │ │ │ │ │ │ │ └── fonts/
│ │ │ │ │ │ │ │ └── FontAwesome.otf
│ │ │ │ │ │ │ ├── font-wso2_1.2/
│ │ │ │ │ │ │ │ └── css/
│ │ │ │ │ │ │ │ └── font-wso2.css
│ │ │ │ │ │ │ ├── jquery_1.11.3/
│ │ │ │ │ │ │ │ └── jquery-1.11.3.js
│ │ │ │ │ │ │ └── noty_2.3.5/
│ │ │ │ │ │ │ ├── jquery.noty.js
│ │ │ │ │ │ │ ├── layouts/
│ │ │ │ │ │ │ │ ├── bottom.js
│ │ │ │ │ │ │ │ ├── bottomCenter.js
│ │ │ │ │ │ │ │ ├── bottomLeft.js
│ │ │ │ │ │ │ │ ├── bottomRight.js
│ │ │ │ │ │ │ │ ├── center.js
│ │ │ │ │ │ │ │ ├── centerLeft.js
│ │ │ │ │ │ │ │ ├── centerRight.js
│ │ │ │ │ │ │ │ ├── inline.js
│ │ │ │ │ │ │ │ ├── top.js
│ │ │ │ │ │ │ │ ├── topCenter.js
│ │ │ │ │ │ │ │ ├── topLeft.js
│ │ │ │ │ │ │ │ └── topRight.js
│ │ │ │ │ │ │ ├── packaged/
│ │ │ │ │ │ │ │ └── jquery.noty.packaged.js
│ │ │ │ │ │ │ ├── promise.js
│ │ │ │ │ │ │ └── themes/
│ │ │ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ │ │ ├── default.js
│ │ │ │ │ │ │ └── relax.js
│ │ │ │ │ │ ├── login.php
│ │ │ │ │ │ └── logout.php
│ │ │ │ │ └── init.sh
│ │ │ │ └── kubernetes/
│ │ │ │ ├── user-fe-controller.yaml
│ │ │ │ └── user-fe-service.yaml
│ │ │ ├── pet/
│ │ │ │ ├── README.md
│ │ │ │ ├── client-truststore.jks
│ │ │ │ ├── container/
│ │ │ │ │ ├── docker/
│ │ │ │ │ │ ├── Dockerfile
│ │ │ │ │ │ ├── README.md
│ │ │ │ │ │ └── ssh/
│ │ │ │ │ │ └── Dockerfile
│ │ │ │ │ └── kubernetes/
│ │ │ │ │ ├── pet-controller.yaml
│ │ │ │ │ └── pet-service.yaml
│ │ │ │ ├── data-agent-conf.xml
│ │ │ │ ├── etc/
│ │ │ │ │ └── init.sh
│ │ │ │ ├── pom.xml
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── java/
│ │ │ │ │ └── org/
│ │ │ │ │ └── wso2/
│ │ │ │ │ └── msf4j/
│ │ │ │ │ └── examples/
│ │ │ │ │ └── petstore/
│ │ │ │ │ └── pet/
│ │ │ │ │ ├── PetCategoryService.java
│ │ │ │ │ ├── PetConstants.java
│ │ │ │ │ ├── PetService.java
│ │ │ │ │ └── Runner.java
│ │ │ │ └── resources/
│ │ │ │ ├── http-monitoring.yml
│ │ │ │ ├── metrics.yml
│ │ │ │ └── wso2carbon.jks
│ │ │ ├── redis/
│ │ │ │ └── container/
│ │ │ │ └── kubernetes/
│ │ │ │ ├── README.md
│ │ │ │ ├── redis-controller.yaml
│ │ │ │ ├── redis-master.yaml
│ │ │ │ ├── redis-sentinel-controller.yaml
│ │ │ │ └── redis-sentinel-service.yaml
│ │ │ ├── security/
│ │ │ │ ├── client-truststore.jks
│ │ │ │ ├── container/
│ │ │ │ │ ├── docker/
│ │ │ │ │ │ └── Dockerfile
│ │ │ │ │ └── kubernetes/
│ │ │ │ │ ├── README.md
│ │ │ │ │ ├── security-controller.yaml
│ │ │ │ │ └── security-service.yaml
│ │ │ │ ├── data-agent-conf.xml
│ │ │ │ ├── pom.xml
│ │ │ │ └── src/
│ │ │ │ └── main/
│ │ │ │ ├── java/
│ │ │ │ │ ├── README.md
│ │ │ │ │ └── org/
│ │ │ │ │ └── wso2/
│ │ │ │ │ └── msf4j/
│ │ │ │ │ └── examples/
│ │ │ │ │ └── petstore/
│ │ │ │ │ └── security/
│ │ │ │ │ ├── JWTGenerator.java
│ │ │ │ │ ├── Runner.java
│ │ │ │ │ ├── UserAuthenticationService.java
│ │ │ │ │ └── ldap/
│ │ │ │ │ ├── LDAPUserStoreManager.java
│ │ │ │ │ └── server/
│ │ │ │ │ ├── ApacheDirectoryServerActivator.java
│ │ │ │ │ └── LDAPServerConfigurationBuilder.java
│ │ │ │ └── resources/
│ │ │ │ ├── http-monitoring.yml
│ │ │ │ ├── metrics.yml
│ │ │ │ ├── repository/
│ │ │ │ │ └── conf/
│ │ │ │ │ └── embedded-ldap.xml
│ │ │ │ └── wso2carbon.jks
│ │ │ └── transaction/
│ │ │ ├── README.md
│ │ │ ├── client-truststore.jks
│ │ │ ├── container/
│ │ │ │ ├── docker/
│ │ │ │ │ └── Dockerfile
│ │ │ │ └── kubernetes/
│ │ │ │ ├── txn-controller.yaml
│ │ │ │ └── txn-service.yaml
│ │ │ ├── data-agent-conf.xml
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ ├── java/
│ │ │ │ └── org/
│ │ │ │ └── wso2/
│ │ │ │ └── msf4j/
│ │ │ │ └── examples/
│ │ │ │ └── petstore/
│ │ │ │ └── transaction/
│ │ │ │ ├── Runner.java
│ │ │ │ ├── TxnConstants.java
│ │ │ │ └── TxnService.java
│ │ │ └── resources/
│ │ │ ├── http-monitoring.yml
│ │ │ ├── metrics.yml
│ │ │ └── wso2carbon.jks
│ │ ├── pom.xml
│ │ └── util/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── examples/
│ │ └── petstore/
│ │ └── util/
│ │ ├── JedisUtil.java
│ │ └── model/
│ │ ├── Category.java
│ │ ├── CreditCard.java
│ │ ├── Order.java
│ │ ├── Pet.java
│ │ └── User.java
│ ├── regex-pathparam/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ └── RegexPathParam.java
│ ├── spring-helloworld/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Hello.java
│ │ ├── HelloService.java
│ │ ├── InvalidNameException.java
│ │ ├── InvalidNameExceptionMapper.java
│ │ ├── LogHeadersInterceptor.java
│ │ └── TransportConfiguration.java
│ ├── spring-profile/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ ├── Hello.java
│ │ │ ├── HelloService.java
│ │ │ └── TransportConfig.java
│ │ └── resources/
│ │ └── application.yml
│ ├── stockquote/
│ │ ├── bundle/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── stockquote/
│ │ │ ├── Stock.java
│ │ │ ├── StockQuoteService.java
│ │ │ ├── Stocks.java
│ │ │ └── exception/
│ │ │ ├── DuplicateSymbolException.java
│ │ │ ├── DuplicateSymbolMapper.java
│ │ │ ├── EntityNotFoundException.java
│ │ │ ├── EntityNotFoundMapper.java
│ │ │ ├── SymbolNotFoundException.java
│ │ │ └── SymbolNotFoundMapper.java
│ │ ├── deployable-jar/
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src/
│ │ │ └── main/
│ │ │ └── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── stockquote/
│ │ │ └── example/
│ │ │ ├── Stock.java
│ │ │ ├── StockQuoteService.java
│ │ │ ├── Stocks.java
│ │ │ └── exception/
│ │ │ ├── DuplicateSymbolException.java
│ │ │ ├── DuplicateSymbolMapper.java
│ │ │ ├── EntityNotFoundException.java
│ │ │ ├── EntityNotFoundMapper.java
│ │ │ ├── SymbolNotFoundException.java
│ │ │ └── SymbolNotFoundMapper.java
│ │ └── fatjar/
│ │ ├── README.md
│ │ ├── conf/
│ │ │ ├── netty-transports.yml
│ │ │ └── wso2carbon.jks
│ │ ├── container/
│ │ │ ├── docker/
│ │ │ │ └── Dockerfile
│ │ │ └── kubernetes/
│ │ │ ├── stockquote-controller.yaml
│ │ │ └── stockquote-service.yaml
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Stock.java
│ │ ├── StockQuoteService.java
│ │ ├── Stocks.java
│ │ └── exception/
│ │ ├── DuplicateSymbolException.java
│ │ ├── DuplicateSymbolMapper.java
│ │ ├── EntityNotFoundException.java
│ │ ├── EntityNotFoundMapper.java
│ │ ├── SymbolNotFoundException.java
│ │ └── SymbolNotFoundMapper.java
│ ├── subresource/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── example/
│ │ ├── Application.java
│ │ ├── Bowler.java
│ │ ├── Country.java
│ │ ├── Player.java
│ │ └── Team.java
│ ├── template/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── example/
│ │ │ ├── Application.java
│ │ │ └── TemplateService.java
│ │ └── resources/
│ │ └── templates/
│ │ └── hello.mustache
│ └── websocket/
│ ├── README.md
│ └── chatApp/
│ ├── bundle/
│ │ ├── README.md
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── sample/
│ │ └── websocket/
│ │ └── chatapp/
│ │ └── ChatAppEndpoint.java
│ ├── deployable-jar/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── sample/
│ │ └── websocket/
│ │ └── chatapp/
│ │ └── ChatAppEndpoint.java
│ ├── fatjar/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── sample/
│ │ └── websocket/
│ │ └── chatapp/
│ │ ├── Application.java
│ │ └── ChatAppEndpoint.java
│ └── js-client/
│ └── index.html
├── spring/
│ ├── deployment.yaml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── spring/
│ │ │ ├── MSF4JBeanDefinitionRegistryPostProcessor.java
│ │ │ ├── MSF4JSpringApplication.java
│ │ │ ├── MSF4JSpringConfiguration.java
│ │ │ ├── SpringConstants.java
│ │ │ ├── SpringMicroservicesRunner.java
│ │ │ ├── property/
│ │ │ │ └── YamlFileApplicationContextInitializer.java
│ │ │ └── transport/
│ │ │ ├── HTTPSTransportConfig.java
│ │ │ ├── HTTPTransportConfig.java
│ │ │ └── TransportConfig.java
│ │ └── resources/
│ │ └── log4j.xml
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── spring/
│ │ ├── ServerConfig.java
│ │ ├── SpringHttpServerTest.java
│ │ ├── SpringInterceptorTest.java
│ │ ├── exception/
│ │ │ ├── SpringTestExceptionMapper.java
│ │ │ └── SpringTestExceptionMapper2.java
│ │ └── service/
│ │ ├── SpringTestMicroservice.java
│ │ └── second/
│ │ ├── CustomService.java
│ │ ├── SecondService.java
│ │ └── TestMicroServiceWithDynamicPath.java
│ └── resources/
│ ├── cert.jks
│ ├── client.jks
│ ├── deployment.yaml
│ ├── netty-transports-1.yml
│ ├── netty-transports-2.yml
│ ├── testTxtFile.txt
│ └── testng.xml
├── swagger/
│ ├── deployment.yaml
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── swagger/
│ │ │ ├── ExtendedSwaggerReader.java
│ │ │ ├── MSF4JBeanConfig.java
│ │ │ ├── SwaggerDefinitionService.java
│ │ │ └── internal/
│ │ │ ├── DataHolder.java
│ │ │ └── SwaggerDefinitionSC.java
│ │ └── resources/
│ │ └── META-INF/
│ │ └── services/
│ │ └── org.wso2.msf4j.SwaggerService
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── swagger/
│ │ └── SwaggerTest.java
│ └── resources/
│ ├── deployment.yaml
│ └── testng.xml
├── templating/
│ └── msf4j-mustache-template/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ └── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── template/
│ │ └── MustacheTemplateEngine.java
│ └── test/
│ ├── java/
│ │ └── org/
│ │ └── wso2/
│ │ └── msf4j/
│ │ └── template/
│ │ └── MustacheTemplateEngineTest.java
│ └── resources/
│ └── templates/
│ ├── nomodel.mustache
│ └── withmodel.mustache
├── tests/
│ ├── osgi-tests/
│ │ ├── pom.xml
│ │ └── src/
│ │ └── test/
│ │ ├── java/
│ │ │ └── org/
│ │ │ └── wso2/
│ │ │ └── msf4j/
│ │ │ └── osgi/
│ │ │ └── test/
│ │ │ ├── MSF4JOSGiTest.java
│ │ │ └── service/
│ │ │ ├── SecondService.java
│ │ │ └── TestService.java
│ │ └── resources/
│ │ ├── carbon-home/
│ │ │ ├── conf/
│ │ │ │ ├── carbon.yml
│ │ │ │ ├── etc/
│ │ │ │ │ └── pax-logging.properties
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── osgi/
│ │ │ │ └── launch.properties
│ │ │ └── deployment/
│ │ │ └── README.txt
│ │ └── testng.xml
│ ├── pom.xml
│ └── test-distribution/
│ ├── carbon-home/
│ │ └── conf/
│ │ └── deployment.yaml
│ ├── pom.xml
│ └── src/
│ └── assembly/
│ └── bin.xml
└── tooling/
├── LICENSE
├── README.md
├── features/
│ ├── org.wso2.developerstudio.msf4j.feature/
│ │ ├── build.properties
│ │ ├── feature.xml
│ │ └── pom.xml
│ └── pom.xml
├── plugins/
│ ├── org.wso2.developerstudio.msf4j.artifact/
│ │ ├── .gitignore
│ │ ├── META-INF/
│ │ │ └── MANIFEST.MF
│ │ ├── build.properties
│ │ ├── plugin.xml
│ │ ├── pom.xml
│ │ ├── project_wizard.xml
│ │ └── src/
│ │ └── org/
│ │ └── wso2/
│ │ └── developerstudio/
│ │ └── msf4j/
│ │ └── artifact/
│ │ ├── Activator.java
│ │ ├── generator/
│ │ │ └── SwaggerToJavaGenerator.java
│ │ ├── model/
│ │ │ └── MSF4JProjectModel.java
│ │ ├── project/
│ │ │ └── nature/
│ │ │ └── MSF4JArtifactProjectNature.java
│ │ ├── ui/
│ │ │ └── wizard/
│ │ │ ├── MSF4JPerspective.java
│ │ │ └── MSF4JProjectCreationWizard.java
│ │ ├── util/
│ │ │ ├── GeneratorUtils.java
│ │ │ ├── LibraryUtils.java
│ │ │ ├── MSF4JArtifactConstants.java
│ │ │ ├── MSF4JDependencyResolverJob.java
│ │ │ ├── MSF4JImageUtils.java
│ │ │ ├── MSF4JMavenDependencyResolverJob.java
│ │ │ └── MSF4JProjectImporter.java
│ │ └── validators/
│ │ └── MSF4JArtifactFieldController.java
│ └── pom.xml
├── pom.xml
├── repository/
│ ├── composite/
│ │ ├── category.xml
│ │ └── pom.xml
│ ├── main/
│ │ ├── category.xml
│ │ └── pom.xml
│ └── pom.xml
└── swagger-mustache/
├── 1.4/
│ ├── ApiException.mustache
│ ├── ApiOriginFilter.mustache
│ ├── ApiResponseMessage.mustache
│ ├── NotFoundException.mustache
│ ├── README.mustache
│ ├── api.mustache
│ ├── apiService.mustache
│ ├── apiServiceFactory.mustache
│ ├── apiServiceImpl.mustache
│ ├── bodyParams.mustache
│ ├── formParams.mustache
│ ├── generatedAnnotation.mustache
│ ├── headerParams.mustache
│ ├── model.mustache
│ ├── pathParams.mustache
│ ├── pom.mustache
│ ├── queryParams.mustache
│ ├── returnTypes.mustache
│ ├── serviceBodyParams.mustache
│ ├── serviceFormParams.mustache
│ ├── serviceHeaderParams.mustache
│ ├── servicePathParams.mustache
│ ├── serviceQueryParams.mustache
│ └── web.mustache
└── README.md
Showing preview only (296K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3248 symbols across 507 files)
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/MSF4JClientTracingFilter.java
class MSF4JClientTracingFilter (line 30) | public class MSF4JClientTracingFilter implements ClientRequestFilter, Cl...
method MSF4JClientTracingFilter (line 43) | public MSF4JClientTracingFilter(String clientName) {
method MSF4JClientTracingFilter (line 53) | public MSF4JClientTracingFilter(String clientName, String dasUrl) {
method MSF4JClientTracingFilter (line 64) | public MSF4JClientTracingFilter(String clientName, TraceEvent parentEv...
method filter (line 79) | @Override
method filter (line 114) | @Override
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TraceEvent.java
class TraceEvent (line 24) | public class TraceEvent {
method TraceEvent (line 37) | public TraceEvent(String type, String traceId, String originId, long t...
method getType (line 44) | public String getType() {
method getTraceId (line 48) | public String getTraceId() {
method getOriginId (line 52) | public String getOriginId() {
method getTime (line 56) | public long getTime() {
method getInstanceId (line 60) | public String getInstanceId() {
method setInstanceId (line 64) | public void setInstanceId(String instanceId) {
method getInstanceName (line 68) | public String getInstanceName() {
method setInstanceName (line 72) | public void setInstanceName(String instanceName) {
method getParentId (line 76) | public String getParentId() {
method setParentId (line 80) | public void setParentId(String parentId) {
method getStatusCode (line 84) | public int getStatusCode() {
method setStatusCode (line 88) | public void setStatusCode(int statusCode) {
method getHttpMethod (line 92) | public String getHttpMethod() {
method setHttpMethod (line 96) | public void setHttpMethod(String httpMethod) {
method getUrl (line 100) | public String getUrl() {
method setUrl (line 104) | public void setUrl(String url) {
method toString (line 108) | @Override
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingConstants.java
class TracingConstants (line 24) | public class TracingConstants {
type TracingType (line 38) | public enum TracingType {
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingEventTracker.java
class TracingEventTracker (line 27) | public class TracingEventTracker {
method setTraceEvent (line 31) | public static void setTraceEvent(TraceEvent traceEvent) {
method getTraceEvent (line 35) | public static TraceEvent getTraceEvent() {
FILE: analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingUtil.java
class TracingUtil (line 35) | public class TracingUtil {
method generateUniqueId (line 44) | public static String generateUniqueId() {
method pushToDAS (line 53) | public static void pushToDAS(TraceEvent traceEvent, String dasUrl) {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/AnalyticUtils.java
class AnalyticUtils (line 33) | public class AnalyticUtils {
method getConfigurationProvider (line 43) | public static ConfigProvider getConfigurationProvider() {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringDataPublisher.java
class HTTPMonitoringDataPublisher (line 43) | public final class HTTPMonitoringDataPublisher {
method HTTPMonitoringDataPublisher (line 70) | public HTTPMonitoringDataPublisher(DasConfig dasConfig) {
method getLocalAddress (line 77) | private static InetAddress getLocalAddress() throws SocketException, U...
method init (line 95) | private void init(DasConfig dasConfig) {
method destroy (line 132) | private void destroy() {
method publishEvent (line 144) | public void publishEvent(HTTPMonitoringEvent httpMonitoringEvent) {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringEvent.java
class HTTPMonitoringEvent (line 21) | public class HTTPMonitoringEvent {
method getTimestamp (line 41) | public long getTimestamp() {
method setTimestamp (line 45) | public void setTimestamp(long timestamp) {
method getServerName (line 49) | public String getServerName() {
method setServerName (line 53) | public void setServerName(String serverName) {
method getServerAddress (line 57) | public String getServerAddress() {
method setServerAddress (line 61) | public void setServerAddress(String serverAddress) {
method getStartNanoTime (line 65) | public long getStartNanoTime() {
method setStartNanoTime (line 69) | public void setStartNanoTime(long startNanoTime) {
method getServiceClass (line 73) | public String getServiceClass() {
method setServiceClass (line 77) | public void setServiceClass(String serviceClass) {
method getServiceName (line 81) | public String getServiceName() {
method setServiceName (line 85) | public void setServiceName(String serviceName) {
method getServiceContext (line 89) | public String getServiceContext() {
method setServiceContext (line 93) | public void setServiceContext(String serviceContext) {
method getServiceMethod (line 97) | public String getServiceMethod() {
method setServiceMethod (line 101) | public void setServiceMethod(String serviceMethod) {
method getRequestUri (line 105) | public String getRequestUri() {
method setRequestUri (line 109) | public void setRequestUri(String requestUri) {
method getHttpMethod (line 113) | public String getHttpMethod() {
method setHttpMethod (line 117) | public void setHttpMethod(String httpMethod) {
method getContentType (line 121) | public String getContentType() {
method setContentType (line 125) | public void setContentType(String contentType) {
method getResponseHttpStatusCode (line 129) | public Integer getResponseHttpStatusCode() {
method setResponseHttpStatusCode (line 133) | public void setResponseHttpStatusCode(Integer responseHttpStatusCode) {
method getReferrer (line 137) | public String getReferrer() {
method setReferrer (line 141) | public void setReferrer(String referrer) {
method getResponseTime (line 145) | public long getResponseTime() {
method setResponseTime (line 149) | public void setResponseTime(long responseTime) {
method getRequestSizeBytes (line 153) | public long getRequestSizeBytes() {
method setRequestSizeBytes (line 157) | public void setRequestSizeBytes(long requestSizeBytes) {
method getActivityId (line 161) | public String getActivityId() {
method setActivityId (line 165) | public void setActivityId(String activityId) {
method getParentRequest (line 169) | public String getParentRequest() {
method setParentRequest (line 173) | public void setParentRequest(String parentRequest) {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringInterceptor.java
class HTTPMonitoringInterceptor (line 38) | public class HTTPMonitoringInterceptor implements Interceptor {
method HTTPMonitoringInterceptor (line 50) | public HTTPMonitoringInterceptor() {
method extractFinalAnnotation (line 66) | private HTTPMonitored extractFinalAnnotation(Method method) {
method preCall (line 74) | @Override
method postCall (line 95) | @Override
class MethodInterceptor (line 107) | private static class MethodInterceptor implements Interceptor {
method MethodInterceptor (line 113) | MethodInterceptor(boolean annotationScanned, Interceptor interceptor) {
method preCall (line 118) | @Override
method postCall (line 127) | @Override
class HTTPInterceptor (line 135) | private class HTTPInterceptor implements Interceptor {
method HTTPInterceptor (line 154) | private HTTPInterceptor(boolean tracing) {
method isTracing (line 158) | boolean isTracing() {
method generateTraceId (line 162) | private String generateTraceId() {
method handleTracing (line 166) | private void handleTracing(Request request, HTTPMonitoringEvent http...
method preCall (line 182) | @Override
method postCall (line 221) | @Override
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/HTTPMonitoringConfigBuilder.java
class HTTPMonitoringConfigBuilder (line 27) | public final class HTTPMonitoringConfigBuilder {
method build (line 29) | public static HTTPMonitoringConfig build() {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/model/DasConfig.java
class DasConfig (line 25) | @Configuration(description = "DAS configuration")
method getType (line 44) | public String getType() {
method setType (line 48) | public void setType(String type) {
method getReceiverURL (line 52) | public String getReceiverURL() {
method setReceiverURL (line 56) | public void setReceiverURL(String receiverURL) {
method getAuthURL (line 60) | public String getAuthURL() {
method setAuthURL (line 64) | public void setAuthURL(String authURL) {
method getUsername (line 68) | public String getUsername() {
method setUsername (line 72) | public void setUsername(String username) {
method getPassword (line 76) | public String getPassword() {
method setPassword (line 80) | public void setPassword(String password) {
method getDataAgentConfigPath (line 84) | public String getDataAgentConfigPath() {
method setDataAgentConfigPath (line 88) | public void setDataAgentConfigPath(String dataAgentConfigPath) {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/model/HTTPMonitoringConfig.java
class HTTPMonitoringConfig (line 24) | @Configuration(namespace = "wso2.msf4j.analytics.configuration", descrip...
method isEnabled (line 33) | public boolean isEnabled() {
method setEnabled (line 37) | public void setEnabled(boolean enabled) {
method getDas (line 41) | public DasConfig getDas() {
method setDas (line 45) | public void setDas(DasConfig das) {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/AnalyticsSC.java
class AnalyticsSC (line 33) | @Component(
method registerConfigProvider (line 42) | @Reference(
method unregisterConfigProvider (line 53) | protected void unregisterConfigProvider(ConfigProvider configProvider) {
method activate (line 57) | @Activate
method stop (line 63) | @Deactivate
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/DataHolder.java
class DataHolder (line 24) | public class DataHolder {
method getConfigProvider (line 28) | public ConfigProvider getConfigProvider() {
method setConfigProvider (line 32) | public void setConfigProvider(ConfigProvider configProvider) {
method getBundleContext (line 36) | public BundleContext getBundleContext() {
method setBundleContext (line 40) | public void setBundleContext(BundleContext bundleContext) {
method getInstance (line 46) | public static DataHolder getInstance() {
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/InterceptorCapabilityProvider.java
class InterceptorCapabilityProvider (line 27) | @Component(
method getCount (line 45) | @Override
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/Metrics.java
class Metrics (line 27) | public final class Metrics {
method Metrics (line 35) | private Metrics() {
class MetricsHolder (line 41) | private static class MetricsHolder {
method getInstance (line 50) | public static Metrics getInstance() {
method initializeServices (line 57) | private void initializeServices() {
method getMetricService (line 79) | public MetricService getMetricService() {
method setMetricService (line 95) | void setMetricService(MetricService metricService) {
method getMetricManagementService (line 104) | public MetricManagementService getMetricManagementService() {
method setMetricManagementService (line 120) | void setMetricManagementService(MetricManagementService metricManageme...
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/MetricsComponent.java
class MetricsComponent (line 32) | @Component(name = "org.wso2.msf4j.analytics.metrics.MetricsComponent")
method activate (line 41) | @Activate
method deactivate (line 51) | @Deactivate
method setMetricService (line 63) | @Reference(
method unsetMetricService (line 82) | protected void unsetMetricService(MetricService metricService) {
method setMetricManagementService (line 91) | @Reference(
method unsetMetricManagementService (line 110) | protected void unsetMetricManagementService(MetricManagementService me...
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/MetricsInterceptor.java
class MetricsInterceptor (line 42) | @Component(
method MetricsInterceptor (line 52) | public MetricsInterceptor() {
method getTimedAnnotation (line 58) | private Timed getTimedAnnotation(Method method) {
method getMeteredAnnotation (line 66) | private Metered getMeteredAnnotation(Method method) {
method getCountedAnnotation (line 74) | private Counted getCountedAnnotation(Method method) {
method preCall (line 82) | @Override
method postCall (line 114) | @Override
class MethodInterceptors (line 123) | private static class MethodInterceptors implements Interceptor {
method MethodInterceptors (line 129) | MethodInterceptors(boolean annotationScanned, List<Interceptor> inte...
method preCall (line 136) | @Override
method postCall (line 147) | @Override
class TimerInterceptor (line 157) | private static class TimerInterceptor implements Interceptor {
method TimerInterceptor (line 163) | private TimerInterceptor(Timer timer) {
method preCall (line 167) | @Override
method postCall (line 174) | @Override
class MeterInterceptor (line 181) | private static class MeterInterceptor implements Interceptor {
method MeterInterceptor (line 185) | private MeterInterceptor(Meter meter) {
method preCall (line 189) | @Override
method postCall (line 195) | @Override
class CounterInterceptor (line 200) | private static class CounterInterceptor implements Interceptor {
method CounterInterceptor (line 205) | private CounterInterceptor(Counter counter, boolean monotonic) {
method preCall (line 210) | @Override
method postCall (line 216) | @Override
FILE: analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/tracing/MSF4JTracingInterceptor.java
class MSF4JTracingInterceptor (line 34) | public class MSF4JTracingInterceptor implements Interceptor {
method MSF4JTracingInterceptor (line 47) | public MSF4JTracingInterceptor(String microServiceName) {
method MSF4JTracingInterceptor (line 57) | public MSF4JTracingInterceptor(String microServiceName, String dasUrl) {
method preCall (line 67) | @Override
method postCall (line 101) | @Override
FILE: analytics/msf4j-analytics/src/test/java/org/wso2/msf4j/analytics/HTTPMonitoringConfigTest.java
class HTTPMonitoringConfigTest (line 34) | public class HTTPMonitoringConfigTest {
method load (line 39) | @BeforeClass
method clear (line 44) | @AfterClass
method testEnabled (line 52) | @Test
method testDasConfigLoad (line 57) | @Test
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/js/libs/jquery.base64.js
function code (line 76) | function code(s, discard, alpha, beta, w1, w2) {
FILE: analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/js/main.js
function load (line 23) | function load() {
function loadAndRenderTraceGroups (line 38) | function loadAndRenderTraceGroups(prefs, traceGroupsElm, traceTreeVw, ca...
function initBarInfoView (line 67) | function initBarInfoView(rootElm, traceData, closeCallBack) {
function initTraceTreeView (line 148) | function initTraceTreeView(viewElm, containerElm, closeBtnElm) {
function buildTraceBarView (line 306) | function buildTraceBarView(traceData, timeRange, callDepth) {
function loadTraces (line 424) | function loadTraces(url, timeBack, username, password, callback, errorCa...
function renderTraceGroups (line 441) | function renderTraceGroups(traceGroups, rootElm, traceTreeVw) {
function groupTraceEvents (line 457) | function groupTraceEvents(data) {
function itrValidTraceGroups (line 578) | function itrValidTraceGroups(traceGroups, callback) {
function validateOriginEvent (line 590) | function validateOriginEvent(event) {
FILE: analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/MSF4JZipkinTracingInterceptor.java
class MSF4JZipkinTracingInterceptor (line 38) | public class MSF4JZipkinTracingInterceptor implements Interceptor {
method MSF4JZipkinTracingInterceptor (line 49) | public MSF4JZipkinTracingInterceptor(String microServiceName) {
method MSF4JZipkinTracingInterceptor (line 59) | public MSF4JZipkinTracingInterceptor(String microServiceName, String z...
method preCall (line 71) | @Override
method postCall (line 84) | @Override
FILE: analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientRequest.java
class TraceableHttpClientRequest (line 31) | public class TraceableHttpClientRequest implements HttpClientRequest {
method TraceableHttpClientRequest (line 35) | public TraceableHttpClientRequest(Request request) {
method addHeader (line 39) | @Override
method getUri (line 49) | @Override
method getHttpMethod (line 54) | @Override
FILE: analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientResponse.java
class TraceableHttpClientResponse (line 27) | public class TraceableHttpClientResponse implements HttpResponse {
method TraceableHttpClientResponse (line 31) | public TraceableHttpClientResponse(Response response) {
method getHttpStatusCode (line 35) | @Override
FILE: analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerRequest.java
class TraceableHttpServerRequest (line 29) | public class TraceableHttpServerRequest implements HttpServerRequest {
method TraceableHttpServerRequest (line 33) | TraceableHttpServerRequest(Request req) {
method getHttpHeaderValue (line 37) | @Override
method getUri (line 42) | @Override
method getHttpMethod (line 47) | @Override
FILE: analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerResponse.java
class TraceableHttpServerResponse (line 27) | public class TraceableHttpServerResponse implements HttpResponse {
method TraceableHttpServerResponse (line 31) | TraceableHttpServerResponse(Response response) {
method getHttpStatusCode (line 35) | @Override
FILE: analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientRequestTest.java
class TraceableHttpClientRequestTest (line 34) | public class TraceableHttpClientRequestTest extends Assert {
method setUp (line 39) | @BeforeClass
method testAddHeader (line 46) | @Test
method testGetUri (line 52) | @Test
method testGetHttpMethod (line 57) | @Test
FILE: analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientResponseTest.java
class TraceableHttpClientResponseTest (line 31) | public class TraceableHttpClientResponseTest extends Assert {
method setUp (line 36) | @BeforeClass
method testGetStatusCode (line 42) | @Test
FILE: analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerRequestTest.java
class TraceableHttpServerRequestTest (line 35) | public class TraceableHttpServerRequestTest extends Assert {
method setUp (line 40) | @BeforeClass
method testGetHeader (line 51) | @Test
method testGetUrl (line 56) | @Test
method testGetHttpMethod (line 61) | @Test
FILE: analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerResponseTest.java
class TraceableHttpServerResponseTest (line 34) | public class TraceableHttpServerResponseTest extends Assert {
method setUp (line 39) | @BeforeClass
method testGetStatusCode (line 48) | @Test
FILE: archetypes/msf4j-microservice/src/main/resources/archetype-resources/src/main/java/Application.java
class Application (line 26) | public class Application {
method main (line 27) | public static void main(String[] args) {
FILE: archetypes/msf4j-microservice/src/main/resources/archetype-resources/src/main/java/__serviceClass__.java
class $ (line 32) | @Path("/service")
FILE: client/src/main/java/org/wso2/msf4j/client/ApacheHttpClient.java
class ApacheHttpClient (line 72) | public final class ApacheHttpClient implements Client {
method ApacheHttpClient (line 77) | public ApacheHttpClient() {
method ApacheHttpClient (line 81) | public ApacheHttpClient(HttpClient client) {
method execute (line 85) | @Override
method toHttpUriRequest (line 105) | HttpUriRequest toHttpUriRequest(Request request, Request.Options optio...
method getContentType (line 168) | private ContentType getContentType(Request request) {
method toFeignResponse (line 182) | Response toFeignResponse(HttpResponse httpResponse) throws IOException {
method toFeignBody (line 209) | Response.Body toFeignBody(HttpResponse httpResponse) throws IOException {
class HttpEntityResponseBody (line 220) | private static class HttpEntityResponseBody implements Response.Body {
method HttpEntityResponseBody (line 223) | HttpEntityResponseBody(HttpEntity entity) {
method length (line 227) | @Override
method isRepeatable (line 233) | @Override
method asInputStream (line 238) | @Override
method asReader (line 243) | @Override
method close (line 248) | @Override
FILE: client/src/main/java/org/wso2/msf4j/client/FeginZipkinTracingClient.java
class FeginZipkinTracingClient (line 47) | public class FeginZipkinTracingClient implements Client {
method FeginZipkinTracingClient (line 56) | public FeginZipkinTracingClient(Client client, String instanceName) {
method FeginZipkinTracingClient (line 67) | public FeginZipkinTracingClient(Client client, String instanceName, St...
method execute (line 76) | @Override
FILE: client/src/main/java/org/wso2/msf4j/client/FeignClientWrapper.java
class FeignClientWrapper (line 27) | public class FeignClientWrapper implements Client {
method FeignClientWrapper (line 31) | public FeignClientWrapper(Client client) {
method execute (line 35) | @Override
FILE: client/src/main/java/org/wso2/msf4j/client/FeignTracingClient.java
class FeignTracingClient (line 38) | class FeignTracingClient implements Client {
method FeignTracingClient (line 48) | public FeignTracingClient(Client client, String instanceName) {
method FeignTracingClient (line 57) | public FeignTracingClient(Client client, String instanceName, String d...
method execute (line 64) | @Override
method generateClientStartTraceEvent (line 73) | private TraceEvent generateClientStartTraceEvent(Request request) {
method tracePreRequest (line 104) | private Request tracePreRequest(Request request, TraceEvent traceEvent) {
method tracePostRequest (line 119) | private void tracePostRequest(Response response, TraceEvent traceEvent) {
FILE: client/src/main/java/org/wso2/msf4j/client/MSF4JClient.java
class MSF4JClient (line 55) | public class MSF4JClient<T> {
method MSF4JClient (line 59) | public MSF4JClient(T api) {
method api (line 63) | public T api() {
class Builder (line 72) | public static class Builder<T> {
method newFeignClientBuilder (line 91) | public Feign.Builder newFeignClientBuilder() {
method newHystrixFeignClientBuilder (line 97) | public HystrixFeign.Builder newHystrixFeignClientBuilder() {
method requestInterceptor (line 106) | public MSF4JClient.Builder<T> requestInterceptor(RequestInterceptor ...
method requestInterceptors (line 115) | public MSF4JClient.Builder<T> requestInterceptors(Iterable<RequestIn...
method fallbackFactory (line 126) | public MSF4JClient.Builder<T> fallbackFactory(FallbackFactory<? exte...
method enableCircuitBreaker (line 131) | public MSF4JClient.Builder<T> enableCircuitBreaker() {
method enableTracing (line 136) | public MSF4JClient.Builder<T> enableTracing() {
method instanceName (line 141) | public MSF4JClient.Builder<T> instanceName(String instanceName) {
method analyticsEndpoint (line 146) | public MSF4JClient.Builder<T> analyticsEndpoint(String analyticsEndp...
method serviceEndpoint (line 151) | public MSF4JClient.Builder<T> serviceEndpoint(String serviceEndpoint) {
method apiClass (line 156) | public MSF4JClient.Builder<T> apiClass(Class<T> apiClass) {
method decode404 (line 161) | public MSF4JClient.Builder<T> decode404(boolean decode404) {
method encoder (line 166) | public MSF4JClient.Builder<T> encoder(Encoder encoder) {
method decoder (line 171) | public MSF4JClient.Builder<T> decoder(Decoder decoder) {
method tracingType (line 176) | public MSF4JClient.Builder<T> tracingType(TracingConstants.TracingTy...
method addErrorResponseMapper (line 181) | public MSF4JClient.Builder<T> addErrorResponseMapper(RestErrorRespon...
method errorDecoder (line 197) | public MSF4JClient.Builder<T> errorDecoder(ErrorDecoder errorDecoder) {
method getHostnameVerifier (line 202) | public HostnameVerifier getHostnameVerifier() {
method setHostnameVerifier (line 206) | public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
method getSslContext (line 210) | public SSLContext getSslContext() {
method setSslContext (line 214) | public void setSslContext(SSLContext sslContext) {
method build (line 218) | public MSF4JClient<T> build() {
FILE: client/src/main/java/org/wso2/msf4j/client/ModelUtils.java
class ModelUtils (line 24) | public class ModelUtils {
method toString (line 28) | public static String toString(Object o) {
FILE: client/src/main/java/org/wso2/msf4j/client/codec/DefaultErrorDecoder.java
class DefaultErrorDecoder (line 37) | public class DefaultErrorDecoder implements ErrorDecoder {
method DefaultErrorDecoder (line 43) | public DefaultErrorDecoder(Map<String, Class<? extends RestServiceExce...
method decode (line 47) | @Override
method getExceptionSupplierFromExceptionClass (line 65) | private RestServiceException getExceptionSupplierFromExceptionClass(Cl...
FILE: client/src/main/java/org/wso2/msf4j/client/codec/DefaultRestErrorResponse.java
class DefaultRestErrorResponse (line 24) | public class DefaultRestErrorResponse {
method DefaultRestErrorResponse (line 31) | public DefaultRestErrorResponse() {
method getMessage (line 34) | public String getMessage() {
method setMessage (line 38) | public void setMessage(String message) {
method getErrorCode (line 42) | public String getErrorCode() {
method setErrorCode (line 46) | public void setErrorCode(String errorCode) {
method toString (line 50) | @Override
FILE: client/src/main/java/org/wso2/msf4j/client/codec/MSF4JDecoder.java
class MSF4JDecoder (line 32) | public class MSF4JDecoder implements Decoder {
method decode (line 38) | @Override
FILE: client/src/main/java/org/wso2/msf4j/client/codec/MSF4JJacksonDecoder.java
class MSF4JJacksonDecoder (line 35) | public class MSF4JJacksonDecoder extends JacksonDecoder {
method MSF4JJacksonDecoder (line 39) | public MSF4JJacksonDecoder() {
method MSF4JJacksonDecoder (line 43) | public MSF4JJacksonDecoder(Iterable<Module> modules) {
method MSF4JJacksonDecoder (line 48) | public MSF4JJacksonDecoder(ObjectMapper mapper) {
method decode (line 52) | @Override
FILE: client/src/main/java/org/wso2/msf4j/client/codec/RestErrorResponseMapper.java
class RestErrorResponseMapper (line 30) | public abstract class RestErrorResponseMapper<T extends RestServiceExcep...
method getExceptionKey (line 31) | public abstract String getExceptionKey();
method getExceptionClass (line 33) | public abstract Class<T> getExceptionClass();
FILE: client/src/main/java/org/wso2/msf4j/client/exception/RestServiceException.java
class RestServiceException (line 22) | public class RestServiceException extends Exception {
method RestServiceException (line 25) | public RestServiceException(String message) {
FILE: client/test/java/org/wso2/msf4j/client/test/ClientTest.java
class ClientTest (line 45) | public class ClientTest {
method main (line 54) | public static void main(String[] args) {
method setup (line 68) | @BeforeClass
method teardown (line 84) | @AfterClass
method testClient (line 91) | @Test
method request (line 117) | protected HttpURLConnection request(String path, String method, boolea...
FILE: client/test/java/org/wso2/msf4j/client/test/ModelUtils.java
class ModelUtils (line 24) | public class ModelUtils {
method toString (line 28) | public static String toString(Object o) {
FILE: client/test/java/org/wso2/msf4j/client/test/client/api/CustomerServiceAPI.java
type CustomerServiceAPI (line 25) | public interface CustomerServiceAPI {
method getCustomer (line 27) | @RequestLine("GET /customer/{id}")
FILE: client/test/java/org/wso2/msf4j/client/test/client/api/InvoiceServiceAPI.java
type InvoiceServiceAPI (line 24) | public interface InvoiceServiceAPI {
method getInvoice (line 26) | @RequestLine("GET /invoice/{id}")
FILE: client/test/java/org/wso2/msf4j/client/test/client/exception/CustomerNotFoundResponseMapper.java
class CustomerNotFoundResponseMapper (line 23) | public class CustomerNotFoundResponseMapper extends RestErrorResponseMap...
method getExceptionKey (line 27) | @Override
method getExceptionClass (line 32) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/client/exception/CustomerNotFoundRestServiceException.java
class CustomerNotFoundRestServiceException (line 20) | public class CustomerNotFoundRestServiceException extends RestServiceExc...
method CustomerNotFoundRestServiceException (line 22) | public CustomerNotFoundRestServiceException(String message) {
FILE: client/test/java/org/wso2/msf4j/client/test/client/exception/InvoiceNotFoundResponseMapper.java
class InvoiceNotFoundResponseMapper (line 23) | public class InvoiceNotFoundResponseMapper extends RestErrorResponseMapp...
method getExceptionKey (line 26) | @Override
method getExceptionClass (line 31) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/client/exception/InvoiceNotFoundRestServiceException.java
class InvoiceNotFoundRestServiceException (line 20) | public class InvoiceNotFoundRestServiceException extends RestServiceExce...
method InvoiceNotFoundRestServiceException (line 22) | public InvoiceNotFoundRestServiceException(String message) {
FILE: client/test/java/org/wso2/msf4j/client/test/exception/CustomerNotFoundException.java
class CustomerNotFoundException (line 24) | public class CustomerNotFoundException extends EntityNotFoundException {
method CustomerNotFoundException (line 25) | public CustomerNotFoundException() {
method CustomerNotFoundException (line 29) | public CustomerNotFoundException(String message) {
method CustomerNotFoundException (line 33) | public CustomerNotFoundException(String message, Throwable cause) {
method CustomerNotFoundException (line 37) | public CustomerNotFoundException(Throwable cause) {
method CustomerNotFoundException (line 41) | protected CustomerNotFoundException(String message, Throwable cause,
FILE: client/test/java/org/wso2/msf4j/client/test/exception/CustomerNotFoundMapper.java
class CustomerNotFoundMapper (line 29) | public class CustomerNotFoundMapper implements ExceptionMapper<CustomerN...
method toResponse (line 33) | public Response toResponse(CustomerNotFoundException ex) {
FILE: client/test/java/org/wso2/msf4j/client/test/exception/EntityNotFoundException.java
class EntityNotFoundException (line 24) | public class EntityNotFoundException extends Exception {
method EntityNotFoundException (line 25) | public EntityNotFoundException() {
method EntityNotFoundException (line 29) | public EntityNotFoundException(String message) {
method EntityNotFoundException (line 33) | public EntityNotFoundException(String message, Throwable cause) {
method EntityNotFoundException (line 37) | public EntityNotFoundException(Throwable cause) {
method EntityNotFoundException (line 41) | protected EntityNotFoundException(String message, Throwable cause,
FILE: client/test/java/org/wso2/msf4j/client/test/exception/EntityNotFoundMapper.java
class EntityNotFoundMapper (line 27) | public class EntityNotFoundMapper implements ExceptionMapper<EntityNotFo...
method toResponse (line 28) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/exception/GenericServerErrorException.java
class GenericServerErrorException (line 21) | public class GenericServerErrorException extends Exception {
method GenericServerErrorException (line 22) | public GenericServerErrorException() {
method GenericServerErrorException (line 26) | public GenericServerErrorException(String message) {
method GenericServerErrorException (line 30) | public GenericServerErrorException(String message, Throwable cause) {
method GenericServerErrorException (line 34) | public GenericServerErrorException(Throwable cause) {
method GenericServerErrorException (line 38) | protected GenericServerErrorException(String message, Throwable cause,
FILE: client/test/java/org/wso2/msf4j/client/test/exception/GenericServerErrorMapper.java
class GenericServerErrorMapper (line 29) | public class GenericServerErrorMapper implements ExceptionMapper<Generic...
method toResponse (line 33) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/exception/InvoiceNotFoundException.java
class InvoiceNotFoundException (line 24) | public class InvoiceNotFoundException extends EntityNotFoundException {
method InvoiceNotFoundException (line 25) | public InvoiceNotFoundException() {
method InvoiceNotFoundException (line 29) | public InvoiceNotFoundException(String message) {
method InvoiceNotFoundException (line 33) | public InvoiceNotFoundException(String message, Throwable cause) {
method InvoiceNotFoundException (line 37) | public InvoiceNotFoundException(Throwable cause) {
method InvoiceNotFoundException (line 41) | protected InvoiceNotFoundException(String message, Throwable cause,
FILE: client/test/java/org/wso2/msf4j/client/test/exception/InvoiceNotFoundMapper.java
class InvoiceNotFoundMapper (line 29) | public class InvoiceNotFoundMapper implements ExceptionMapper<InvoiceNot...
method toResponse (line 33) | public Response toResponse(InvoiceNotFoundException ex) {
FILE: client/test/java/org/wso2/msf4j/client/test/model/Customer.java
class Customer (line 23) | @SuppressWarnings("unused")
method Customer (line 34) | public Customer() {
method Customer (line 37) | public Customer(String id, String firstName, String lastName, String a...
method getId (line 44) | public String getId() {
method setId (line 48) | public void setId(String id) {
method getFirstName (line 52) | public String getFirstName() {
method setFirstName (line 56) | public void setFirstName(String firstName) {
method getLastName (line 60) | public String getLastName() {
method setLastName (line 64) | public void setLastName(String lastName) {
method getAddress (line 68) | public String getAddress() {
method setAddress (line 72) | public void setAddress(String address) {
method toString (line 76) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/model/Invoice.java
class Invoice (line 26) | @SuppressWarnings("unused")
method Invoice (line 36) | public Invoice() {
method getId (line 39) | public String getId() {
method Invoice (line 43) | public Invoice(String id, String customerId, double amount) {
method setId (line 49) | public void setId(String id) {
method getCustomerId (line 53) | public String getCustomerId() {
method setCustomerId (line 57) | public void setCustomerId(String customerId) {
method getAmount (line 61) | public double getAmount() {
method setAmount (line 65) | public void setAmount(double amount) {
method toString (line 69) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/model/InvoiceReport.java
class InvoiceReport (line 25) | @SuppressWarnings("unused")
method InvoiceReport (line 35) | public InvoiceReport() {
method InvoiceReport (line 38) | public InvoiceReport(Invoice invoice, Customer customer) {
method InvoiceReport (line 44) | public InvoiceReport(String id, Customer customer, double amount, Date...
method getId (line 50) | public String getId() {
method setId (line 54) | public void setId(String id) {
method getCustomer (line 58) | public Customer getCustomer() {
method setCustomer (line 62) | public void setCustomer(Customer customer) {
method getAmount (line 66) | public double getAmount() {
method setAmount (line 70) | public void setAmount(double amount) {
method toString (line 74) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/model/ServiceErrorResponse.java
class ServiceErrorResponse (line 23) | public class ServiceErrorResponse {
method ServiceErrorResponse (line 30) | public ServiceErrorResponse() {
method ServiceErrorResponse (line 33) | public ServiceErrorResponse(String errorCode, String message) {
method getMessage (line 38) | public String getMessage() {
method setMessage (line 42) | public void setMessage(String message) {
method getErrorCode (line 46) | public String getErrorCode() {
method setErrorCode (line 50) | public void setErrorCode(String errorCode) {
method toString (line 54) | @Override
FILE: client/test/java/org/wso2/msf4j/client/test/service/CustomerService.java
class CustomerService (line 35) | @Path("/customer")
method CustomerService (line 41) | public CustomerService() {
method getCustomer (line 52) | @GET
FILE: client/test/java/org/wso2/msf4j/client/test/service/InvoiceService.java
class InvoiceService (line 36) | @Path("/invoice")
method InvoiceService (line 42) | public InvoiceService() {
method getCustomer (line 53) | @GET
FILE: client/test/java/org/wso2/msf4j/client/test/service/ReportService.java
class ReportService (line 44) | @Path("/report")
method ReportService (line 53) | public ReportService() {
method getInvoiceReport (line 76) | @GET
FILE: core/src/main/java/org/wso2/msf4j/AbstractSessionManager.java
class AbstractSessionManager (line 32) | public abstract class AbstractSessionManager implements SessionManager {
method init (line 56) | public final void init() {
method getSession (line 71) | public final Session getSession(String sessionId) {
method createSession (line 84) | public final Session createSession() {
method invalidateSession (line 96) | public final void invalidateSession(Session session) {
method getDefaultMaxInactiveInterval (line 102) | @Override
method getDefaultMaxActiveSessions (line 107) | @Override
method getSessionIdLength (line 112) | @Override
method stop (line 117) | @Override
method checkValidity (line 123) | protected final void checkValidity() {
FILE: core/src/main/java/org/wso2/msf4j/DefaultSessionManager.java
class DefaultSessionManager (line 26) | public class DefaultSessionManager extends AbstractSessionManager {
method loadSessions (line 28) | @Override
method saveSession (line 34) | @Override
method readSession (line 40) | @Override
method deleteSession (line 47) | @Override
method updateSession (line 53) | @Override
FILE: core/src/main/java/org/wso2/msf4j/HttpStreamHandler.java
type HttpStreamHandler (line 26) | public interface HttpStreamHandler {
method init (line 33) | void init(Response response);
method chunk (line 41) | void chunk(ByteBuffer content) throws Exception;
method end (line 49) | void end() throws Exception;
method error (line 57) | void error(Throwable cause);
FILE: core/src/main/java/org/wso2/msf4j/HttpStreamer.java
class HttpStreamer (line 23) | public class HttpStreamer {
method callback (line 32) | public void callback(HttpStreamHandler httpStreamHandler) {
method getHttpStreamHandler (line 36) | public HttpStreamHandler getHttpStreamHandler() {
FILE: core/src/main/java/org/wso2/msf4j/Interceptor.java
type Interceptor (line 30) | public interface Interceptor extends RequestInterceptor, ResponseInterce...
method preCall (line 45) | boolean preCall(Request request, Response responder, ServiceMethodInfo...
method postCall (line 58) | void postCall(Request request, int status, ServiceMethodInfo serviceMe...
method interceptRequest (line 60) | @Override
method interceptResponse (line 68) | @Override
method onResponseInterceptionError (line 86) | @Override
FILE: core/src/main/java/org/wso2/msf4j/Microservice.java
type Microservice (line 22) | public interface Microservice {
FILE: core/src/main/java/org/wso2/msf4j/MicroservicesRegistry.java
type MicroservicesRegistry (line 30) | public interface MicroservicesRegistry {
method getServiceWithBasePath (line 38) | Optional<Map.Entry<String, Object>> getServiceWithBasePath(String path);
method getHttpServices (line 45) | Set<Object> getHttpServices();
method addService (line 52) | void addService(Object... service);
method addService (line 60) | void addService(String basePath, Object service);
method removeService (line 67) | void removeService(Object service);
method setSessionManager (line 74) | void setSessionManager(SessionManager sessionManager);
method addGlobalRequestInterceptor (line 81) | void addGlobalRequestInterceptor(RequestInterceptor... requestIntercep...
method removeGlobalRequestInterceptor (line 88) | void removeGlobalRequestInterceptor(RequestInterceptor requestIntercep...
method addGlobalResponseInterceptor (line 95) | void addGlobalResponseInterceptor(ResponseInterceptor... responseInter...
method removeGlobalResponseInterceptor (line 102) | void removeGlobalResponseInterceptor(ResponseInterceptor responseInter...
method addInterceptor (line 109) | @Deprecated
method removeInterceptor (line 117) | @Deprecated
method addExceptionMapper (line 125) | void addExceptionMapper(ExceptionMapper... mapper);
method removeExceptionMapper (line 132) | void removeExceptionMapper(ExceptionMapper em);
method initServices (line 137) | void initServices();
method initService (line 144) | void initService(Object httpService);
method preDestroyServices (line 149) | void preDestroyServices();
method preDestroyService (line 156) | void preDestroyService(Object httpService);
FILE: core/src/main/java/org/wso2/msf4j/MicroservicesRunner.java
class MicroservicesRunner (line 57) | public class MicroservicesRunner {
method MicroservicesRunner (line 84) | public MicroservicesRunner(int... ports) {
method MicroservicesRunner (line 96) | public MicroservicesRunner() {
method MicroservicesRunner (line 106) | public MicroservicesRunner(TransportsConfiguration transportsConfigura...
method deploy (line 116) | public MicroservicesRunner deploy(Object... microservice) {
method deploy (line 129) | public MicroservicesRunner deploy(String basePath, Object microservice) {
method deployWebSocketEndpoint (line 140) | public MicroservicesRunner deployWebSocketEndpoint(Object webSocketEnd...
method setSessionManager (line 151) | public MicroservicesRunner setSessionManager(SessionManager sessionMan...
method addGlobalRequestInterceptor (line 161) | public MicroservicesRunner addGlobalRequestInterceptor(RequestIntercep...
method addGlobalResponseInterceptor (line 171) | public MicroservicesRunner addGlobalResponseInterceptor(ResponseInterc...
method addInterceptor (line 184) | public MicroservicesRunner addInterceptor(Interceptor... interceptor) {
method addExceptionMapper (line 196) | public MicroservicesRunner addExceptionMapper(ExceptionMapper... excep...
method configureTransport (line 207) | protected void configureTransport(int... ports) {
method configureTransport (line 226) | protected void configureTransport() {
method configureTransport (line 283) | protected void configureTransport(TransportsConfiguration transportsCo...
method checkState (line 309) | private void checkState() {
method start (line 318) | public void start() {
method stop (line 336) | public void stop() {
method getMsRegistry (line 346) | public MicroservicesRegistryImpl getMsRegistry() {
method handleServiceLifecycleMethods (line 350) | protected void handleServiceLifecycleMethods() {
FILE: core/src/main/java/org/wso2/msf4j/MicroservicesServer.java
type MicroservicesServer (line 32) | public interface MicroservicesServer {
method getListenerConfigurations (line 39) | Map<String, ListenerConfiguration> getListenerConfigurations();
FILE: core/src/main/java/org/wso2/msf4j/PersistentSessionManager.java
class PersistentSessionManager (line 37) | public class PersistentSessionManager extends AbstractSessionManager {
method PersistentSessionManager (line 41) | public PersistentSessionManager() {
method loadSessions (line 48) | @Override
method readSession (line 69) | @Override
method saveSession (line 86) | @Override
method deleteSession (line 96) | @Override
method updateSession (line 104) | @Override
FILE: core/src/main/java/org/wso2/msf4j/Request.java
class Request (line 38) | public class Request {
method Request (line 46) | public Request(HttpCarbonMessage httpCarbonMessage) {
method setSessionManager (line 61) | public void setSessionManager(SessionManager sessionManager) {
method isEmpty (line 68) | public boolean isEmpty() {
method getMessageBody (line 75) | @Deprecated
method getHeaders (line 83) | public HttpHeaders getHeaders() {
method getHeader (line 93) | public String getHeader(String key) {
method getProperty (line 103) | public Object getProperty(String key) {
method getProperties (line 110) | public Map<String, Object> getProperties() {
method setProperty (line 120) | public void setProperty(String key, Object value) {
method removeProperty (line 129) | public void removeProperty(String key) {
method getUri (line 136) | public String getUri() {
method getHttpMethod (line 143) | public String getHttpMethod() {
method getAcceptTypes (line 150) | public List<String> getAcceptTypes() {
method getContentType (line 157) | public String getContentType() {
method getSession (line 167) | public Session getSession() {
method getSession (line 193) | public Session getSession(boolean create) {
method getSessionInternal (line 219) | Session getSessionInternal() {
method getHttpCarbonMessage (line 228) | HttpCarbonMessage getHttpCarbonMessage() {
method respond (line 239) | public boolean respond(HttpCarbonMessage carbonMessage) throws ServerC...
method getMessageContentStream (line 249) | public InputStream getMessageContentStream() {
FILE: core/src/main/java/org/wso2/msf4j/Response.java
class Response (line 41) | public class Response {
method Response (line 56) | public Response(HttpCarbonMessage responder) {
method Response (line 60) | public Response(Request request) {
method isEmpty (line 69) | public boolean isEmpty() {
method getMessageBody (line 76) | @Deprecated
method getHeaders (line 84) | public HttpHeaders getHeaders() {
method getHeader (line 94) | public String getHeader(String key) {
method setHeader (line 105) | public Response setHeader(String key, String value) {
method setHeaders (line 115) | public void setHeaders(Map<String, String> headerMap) {
method getProperty (line 125) | public Object getProperty(String key) {
method getProperties (line 132) | public Map<String, Object> getProperties() {
method setProperty (line 142) | public void setProperty(String key, Object value) {
method removeHeader (line 149) | public void removeHeader(String key) {
method removeProperty (line 158) | public void removeProperty(String key) {
method getHttpCarbonMessage (line 165) | HttpCarbonMessage getHttpCarbonMessage() {
method setStatus (line 175) | public Response setStatus(int statusCode) {
method getStatusCode (line 185) | public int getStatusCode() {
method setMediaType (line 201) | public Response setMediaType(String mediaType) {
method setEntity (line 212) | public Response setEntity(Object entity) {
method setChunkSize (line 242) | public void setChunkSize(int chunkSize) {
method send (line 249) | public void send() {
method processEntity (line 280) | @SuppressWarnings("unchecked")
FILE: core/src/main/java/org/wso2/msf4j/ServiceMethodInfo.java
class ServiceMethodInfo (line 26) | public class ServiceMethodInfo {
method ServiceMethodInfo (line 32) | public ServiceMethodInfo(String methodName, Method method, Request req...
method getMethodName (line 38) | public String getMethodName() {
method getMethod (line 42) | public Method getMethod() {
method getAttribute (line 52) | public Object getAttribute(String name) {
method setAttribute (line 62) | public void setAttribute(String name, Object obj) {
FILE: core/src/main/java/org/wso2/msf4j/Session.java
class Session (line 29) | public class Session implements Serializable {
method Session (line 42) | public Session() {
method Session (line 45) | public Session(String id, int maxInactiveInterval) {
method getCreationTime (line 52) | long getCreationTime() {
method getId (line 56) | String getId() {
method setMaxInactiveInterval (line 60) | void setMaxInactiveInterval(int interval) {
method getMaxInactiveInterval (line 64) | int getMaxInactiveInterval() {
method getAttribute (line 68) | public Object getAttribute(String name) {
method getAttributeNames (line 73) | public Set<String> getAttributeNames() {
method setAttribute (line 78) | public void setAttribute(String name, Object value) {
method removeAttribute (line 84) | public void removeAttribute(String name) {
method checkValidity (line 90) | private void checkValidity() {
method invalidate (line 96) | public void invalidate() {
method isValid (line 102) | boolean isValid() {
method isNew (line 106) | boolean isNew() {
method getIsNew (line 110) | boolean getIsNew() {
method setNew (line 114) | public void setNew(boolean isNew) {
method setAccessed (line 118) | Session setAccessed() {
method getLastAccessedTime (line 124) | long getLastAccessedTime() {
method setManager (line 128) | public void setManager(SessionManager sessionManager) {
FILE: core/src/main/java/org/wso2/msf4j/SessionManager.java
type SessionManager (line 26) | public interface SessionManager {
method init (line 31) | void init();
method getSession (line 39) | Session getSession(String sessionId);
method createSession (line 46) | Session createSession();
method invalidateSession (line 53) | void invalidateSession(Session session);
method getDefaultMaxInactiveInterval (line 60) | int getDefaultMaxInactiveInterval();
method getDefaultMaxActiveSessions (line 67) | int getDefaultMaxActiveSessions();
method getSessionIdLength (line 72) | int getSessionIdLength();
method loadSessions (line 79) | void loadSessions(Map<String, Session> sessions);
method readSession (line 87) | Session readSession(String sessionId);
method saveSession (line 94) | void saveSession(Session session);
method deleteSession (line 101) | void deleteSession(Session session);
method updateSession (line 109) | void updateSession(Session session);
method stop (line 114) | void stop();
FILE: core/src/main/java/org/wso2/msf4j/SwaggerService.java
type SwaggerService (line 22) | public interface SwaggerService {
method init (line 24) | void init(MicroservicesRegistry serviceRegistry);
FILE: core/src/main/java/org/wso2/msf4j/beanconversion/BeanConversionException.java
class BeanConversionException (line 22) | public class BeanConversionException extends RuntimeException {
method BeanConversionException (line 24) | public BeanConversionException(String msg) {
method BeanConversionException (line 28) | public BeanConversionException(String msg, Exception cause) {
FILE: core/src/main/java/org/wso2/msf4j/beanconversion/MediaTypeConverter.java
class MediaTypeConverter (line 26) | public abstract class MediaTypeConverter {
method convertToMedia (line 36) | public ByteBuffer convertToMedia(Object object) {
method convertToObject (line 51) | public Object convertToObject(ByteBuffer content, Type targetType) thr...
method convertToObject (line 66) | public Object convertToObject(InputStream inputStream, Type targetType...
method getSupportedMediaTypes (line 78) | public abstract String[] getSupportedMediaTypes();
method toMedia (line 87) | protected abstract ByteBuffer toMedia(Object object) throws BeanConver...
method toObject (line 97) | protected abstract Object toObject(ByteBuffer content, Type targetType...
method toObject (line 107) | protected abstract Object toObject(InputStream inputStream, Type targe...
FILE: core/src/main/java/org/wso2/msf4j/config/MSF4JConfig.java
class MSF4JConfig (line 24) | @Configuration(namespace = "wso2.msf4j.configuration", description = "MS...
method getThreadCount (line 33) | public int getThreadCount() {
method setThreadCount (line 37) | public void setThreadCount(int threadCount) {
method getThreadPoolName (line 41) | public String getThreadPoolName() {
method setThreadPoolName (line 45) | public void setThreadPoolName(String threadPoolName) {
FILE: core/src/main/java/org/wso2/msf4j/exception/InterceptorException.java
class InterceptorException (line 23) | public class InterceptorException extends Exception {
method InterceptorException (line 25) | public InterceptorException(String message, Throwable cause) {
FILE: core/src/main/java/org/wso2/msf4j/exception/OSGiDeclarativeServiceException.java
class OSGiDeclarativeServiceException (line 23) | public class OSGiDeclarativeServiceException extends RuntimeException {
method OSGiDeclarativeServiceException (line 25) | public OSGiDeclarativeServiceException(String message) {
method OSGiDeclarativeServiceException (line 29) | public OSGiDeclarativeServiceException(String message, Throwable cause) {
FILE: core/src/main/java/org/wso2/msf4j/formparam/FileInfo.java
class FileInfo (line 25) | public class FileInfo {
method getFileName (line 29) | public String getFileName() {
method setFileName (line 33) | public void setFileName(String fileName) {
method getContentType (line 37) | public String getContentType() {
method setContentType (line 41) | public void setContentType(String contentType) {
FILE: core/src/main/java/org/wso2/msf4j/formparam/FormItem.java
class FormItem (line 40) | public class FormItem {
method FormItem (line 82) | FormItem(String pName, String pFieldName, String pContentType, boolean...
method getContentType (line 96) | public String getContentType() {
method getFieldName (line 105) | public String getFieldName() {
method getName (line 114) | public String getName() {
method isFormField (line 124) | public boolean isFormField() {
method openStream (line 135) | public InputStream openStream() throws IOException {
method close (line 146) | public void close() {
method getHeaders (line 159) | public FormItemHeader getHeaders() {
method setHeaders (line 168) | void setHeaders(FormItemHeader pHeaders) {
class ItemSkippedException (line 172) | static class ItemSkippedException extends RuntimeException {
FILE: core/src/main/java/org/wso2/msf4j/formparam/FormParamIterator.java
class FormParamIterator (line 39) | public class FormParamIterator implements Iterator {
method FormParamIterator (line 129) | public FormParamIterator(Request request) throws FormUploadException, ...
method getBoundary (line 142) | private byte[] getBoundary(String contentType) {
method getFileName (line 168) | private String getFileName(FormItemHeader headers) {
method getFileName (line 178) | private String getFileName(String pContentDisposition) {
method getFieldName (line 210) | private String getFieldName(FormItemHeader headers) {
method getFieldName (line 221) | private String getFieldName(String pContentDisposition) {
method getParsedHeaders (line 247) | private FormItemHeader getParsedHeaders(String headerPart) {
method newFileItemHeaders (line 285) | private FormItemHeader newFileItemHeaders() {
method parseEndOfLine (line 298) | private int parseEndOfLine(String headerPart, int end) {
method parseHeaderLine (line 318) | private void parseHeaderLine(FormItemHeader headers, String header) {
method FormParamIterator (line 337) | private FormParamIterator(RequestContext ctx) throws FormUploadExcepti...
method findNextItem (line 378) | private boolean findNextItem() {
method getContentLength (line 440) | private long getContentLength(FormItemHeader pHeaders) {
method hasNext (line 455) | public boolean hasNext() {
method next (line 468) | public FormItem next() {
FILE: core/src/main/java/org/wso2/msf4j/formparam/MultipartStream.java
class MultipartStream (line 89) | public class MultipartStream {
method MultipartStream (line 211) | public MultipartStream(InputStream input, byte[] boundary, int bufSize) {
method MultipartStream (line 245) | MultipartStream(InputStream input, byte[] boundary) {
method getHeaderEncoding (line 258) | public String getHeaderEncoding() {
method setHeaderEncoding (line 269) | public void setHeaderEncoding(String encoding) {
method readByte (line 280) | public byte readByte() throws IOException {
method readBoundary (line 301) | public boolean readBoundary() {
method setBoundary (line 347) | public void setBoundary(byte[] boundary) {
method readHeaders (line 365) | public String readHeaders() {
method readBodyData (line 430) | public int readBodyData(OutputStream output) {
method newInputStream (line 439) | ItemInputStream newInputStream() {
method discardBodyData (line 452) | public int discardBodyData() {
method skipPreamble (line 462) | public boolean skipPreamble() {
method arrayequals (line 494) | public static boolean arrayequals(byte[] a, byte[] b, int count) {
method findByte (line 512) | protected int findByte(byte value, int pos) {
method findSeparator (line 530) | protected int findSeparator() {
class MalformedStreamException (line 555) | public static class MalformedStreamException extends RuntimeException {
method MalformedStreamException (line 566) | public MalformedStreamException() {
method MalformedStreamException (line 576) | public MalformedStreamException(String message) {
class IllegalBoundaryException (line 585) | public static class IllegalBoundaryException extends RuntimeException {
method IllegalBoundaryException (line 598) | public IllegalBoundaryException(String message) {
class ItemInputStream (line 607) | public class ItemInputStream extends InputStream implements Closeable {
method ItemInputStream (line 633) | ItemInputStream() {
method findSeparator (line 640) | private void findSeparator() {
method getBytesRead (line 657) | public long getBytesRead() {
method available (line 667) | @Override
method read (line 687) | @Override
method read (line 713) | @Override
method close (line 740) | @Override
method close (line 752) | public void close(boolean pCloseUnderlying) throws IOException {
method skip (line 786) | @Override
method makeAvailable (line 808) | private int makeAvailable() {
method isClosed (line 851) | public boolean isClosed() {
FILE: core/src/main/java/org/wso2/msf4j/formparam/ParameterParser.java
class ParameterParser (line 39) | public class ParameterParser {
method ParameterParser (line 74) | public ParameterParser() {
method hasChar (line 84) | private boolean hasChar() {
method getToken (line 97) | private String getToken(boolean quoted) {
method isOneOf (line 126) | private boolean isOneOf(char ch, final char[] charray) {
method parseToken (line 145) | private String parseToken(final char[] terminators) {
method parseQuotedToken (line 169) | private String parseQuotedToken(final char[] terminators) {
method isLowerCaseNames (line 199) | public boolean isLowerCaseNames() {
method setLowerCaseNames (line 211) | public void setLowerCaseNames(boolean b) {
method parse (line 224) | public Map<String, String> parse(final String str, char[] separators) {
method parse (line 250) | public Map<String, String> parse(final String str, char separator) {
method parse (line 266) | public Map<String, String> parse(final char[] charArray, char separato...
method parse (line 283) | public Map<String, String> parse(final char[] charArray, int offset, i...
FILE: core/src/main/java/org/wso2/msf4j/formparam/RequestContext.java
class RequestContext (line 27) | public class RequestContext {
method RequestContext (line 31) | public RequestContext(Request request) {
method getCharacterEncoding (line 40) | public String getCharacterEncoding() {
method getContentType (line 49) | public String getContentType() {
method getInputStream (line 58) | public InputStream getInputStream() {
FILE: core/src/main/java/org/wso2/msf4j/formparam/exception/FormUploadException.java
class FormUploadException (line 26) | public class FormUploadException extends RuntimeException {
method FormUploadException (line 43) | public FormUploadException() {
method FormUploadException (line 53) | public FormUploadException(final String msg) {
method FormUploadException (line 64) | public FormUploadException(String msg, Throwable cause) {
method printStackTrace (line 74) | @Override
method printStackTrace (line 89) | @Override
method getCause (line 101) | @Override
FILE: core/src/main/java/org/wso2/msf4j/formparam/exception/InvalidContentTypeException.java
class InvalidContentTypeException (line 22) | public class InvalidContentTypeException extends FormUploadException {
method InvalidContentTypeException (line 35) | public InvalidContentTypeException(String message) {
method InvalidContentTypeException (line 46) | public InvalidContentTypeException(String msg, Throwable cause) {
FILE: core/src/main/java/org/wso2/msf4j/formparam/exception/InvalidFileNameException.java
class InvalidFileNameException (line 30) | public class InvalidFileNameException extends RuntimeException {
method InvalidFileNameException (line 49) | public InvalidFileNameException(String pName, String pMessage) {
method getName (line 59) | public String getName() {
FILE: core/src/main/java/org/wso2/msf4j/formparam/util/Closeable.java
type Closeable (line 25) | public interface Closeable {
method close (line 32) | void close() throws IOException;
method isClosed (line 40) | boolean isClosed() throws IOException;
FILE: core/src/main/java/org/wso2/msf4j/formparam/util/FormItemHeader.java
class FormItemHeader (line 34) | public class FormItemHeader implements Serializable {
method getHeader (line 50) | public String getHeader(String name) {
method getHeaderNames (line 62) | public Iterator<String> getHeaderNames() {
method getHeaders (line 69) | public Iterator<String> getHeaders(String name) {
method addHeader (line 84) | public synchronized void addHeader(String name, String value) {
FILE: core/src/main/java/org/wso2/msf4j/formparam/util/StreamUtil.java
class StreamUtil (line 32) | public final class StreamUtil {
method StreamUtil (line 38) | private StreamUtil() {
method copy (line 66) | public static long copy(InputStream inputStream, OutputStream outputSt...
method copy (line 87) | public static long copy(InputStream inputStream, OutputStream outputSt...
method asString (line 132) | public static String asString(InputStream inputStream) throws IOExcept...
method asString (line 149) | public static String asString(InputStream inputStream, String encoding...
method checkFileName (line 164) | public static String checkFileName(String fileName) {
FILE: core/src/main/java/org/wso2/msf4j/formparam/util/mime/Base64Decoder.java
class Base64Decoder (line 25) | final class Base64Decoder {
method Base64Decoder (line 88) | private Base64Decoder() {
method decode (line 101) | public static int decode(byte[] data, OutputStream out) throws IOExcep...
FILE: core/src/main/java/org/wso2/msf4j/formparam/util/mime/MimeUtility.java
class MimeUtility (line 30) | public final class MimeUtility {
method MimeUtility (line 83) | private MimeUtility() {
method decodeText (line 98) | public static String decodeText(String text) throws UnsupportedEncodin...
method decodeWord (line 200) | private static String decodeWord(String word) throws ParseException, U...
method javaCharset (line 267) | private static String javaCharset(String charset) {
FILE: core/src/main/java/org/wso2/msf4j/formparam/util/mime/ParseException.java
class ParseException (line 24) | final class ParseException extends Exception {
method ParseException (line 36) | public ParseException(String message) {
FILE: core/src/main/java/org/wso2/msf4j/formparam/util/mime/QuotedPrintableDecoder.java
class QuotedPrintableDecoder (line 25) | final class QuotedPrintableDecoder {
method QuotedPrintableDecoder (line 36) | private QuotedPrintableDecoder() {
method decode (line 49) | public static int decode(byte[] data, OutputStream out) throws IOExcep...
method hexToBinary (line 103) | private static int hexToBinary(final byte b) throws IOException {
FILE: core/src/main/java/org/wso2/msf4j/interceptor/InterceptorExecutor.java
class InterceptorExecutor (line 36) | public class InterceptorExecutor {
method InterceptorExecutor (line 38) | private InterceptorExecutor() {
method executeGlobalRequestInterceptors (line 49) | public static boolean executeGlobalRequestInterceptors(MicroservicesRe...
method executeClassLevelRequestInterceptors (line 64) | public static boolean executeClassLevelRequestInterceptors(Request req...
method executeMethodLevelRequestInterceptors (line 83) | public static boolean executeMethodLevelRequestInterceptors(Request re...
method executeGlobalResponseInterceptors (line 101) | public static boolean executeGlobalResponseInterceptors(MicroservicesR...
method executeClassLevelResponseInterceptors (line 117) | public static boolean executeClassLevelResponseInterceptors(Request re...
method executeClassResponseInterceptorsForClasses (line 136) | public static boolean executeClassResponseInterceptorsForClasses(Reque...
method executeMethodLevelResponseInterceptors (line 159) | public static boolean executeMethodLevelResponseInterceptors(Request r...
method executeMethodResponseInterceptorsForMethods (line 178) | public static boolean executeMethodResponseInterceptorsForMethods(Requ...
method executeGlobalRequestInterceptors (line 200) | private static boolean executeGlobalRequestInterceptors(Request reques...
method executeGlobalResponseInterceptors (line 221) | private static boolean executeGlobalResponseInterceptors(Request reque...
method executeNonGlobalRequestInterceptors (line 243) | private static boolean executeNonGlobalRequestInterceptors(
method executeNonGlobalResponseInterceptors (line 281) | private static boolean executeNonGlobalResponseInterceptors(
method executeRequestInterceptor (line 318) | private static boolean executeRequestInterceptor(RequestInterceptor in...
method executeResponseInterceptor (line 335) | private static boolean executeResponseInterceptor(ResponseInterceptor ...
FILE: core/src/main/java/org/wso2/msf4j/interceptor/OSGiInterceptorConfig.java
class OSGiInterceptorConfig (line 27) | public class OSGiInterceptorConfig {
method addGlobalRequestInterceptors (line 38) | protected final void addGlobalRequestInterceptors(RequestInterceptor.....
method addGlobalResponseInterceptors (line 48) | protected final void addGlobalResponseInterceptors(ResponseInterceptor...
method getGlobalRequestInterceptorArray (line 57) | public final RequestInterceptor[] getGlobalRequestInterceptorArray() {
method getGlobalResponseInterceptorArray (line 67) | public final ResponseInterceptor[] getGlobalResponseInterceptorArray() {
FILE: core/src/main/java/org/wso2/msf4j/interceptor/RequestInterceptor.java
type RequestInterceptor (line 41) | @FunctionalInterface
method interceptRequest (line 54) | boolean interceptRequest(Request request, Response response) throws Ex...
method onRequestInterceptionError (line 64) | default boolean onRequestInterceptionError(Request request, Response r...
FILE: core/src/main/java/org/wso2/msf4j/interceptor/ResponseInterceptor.java
type ResponseInterceptor (line 40) | @FunctionalInterface
method interceptResponse (line 53) | boolean interceptResponse(Request request, Response response) throws E...
method onResponseInterceptionError (line 63) | default boolean onResponseInterceptionError(Request request, Response ...
FILE: core/src/main/java/org/wso2/msf4j/internal/ClassComparator.java
class ClassComparator (line 27) | public class ClassComparator implements Comparator<Class>, Serializable {
method compare (line 31) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/DataHolder.java
class DataHolder (line 27) | public class DataHolder {
method DataHolder (line 34) | private DataHolder() {
method getInstance (line 37) | public static DataHolder getInstance() {
method getBundleContext (line 41) | public BundleContext getBundleContext() {
method setBundleContext (line 45) | public void setBundleContext(BundleContext bundleContext) {
method getMicroservicesRegistries (line 49) | public Map<String, MicroservicesRegistryImpl> getMicroservicesRegistri...
method setConfigProvider (line 53) | public void setConfigProvider(ConfigProvider configProvider) {
method getConfigProvider (line 57) | public ConfigProvider getConfigProvider() {
FILE: core/src/main/java/org/wso2/msf4j/internal/HttpConnectorPortBindingListener.java
class HttpConnectorPortBindingListener (line 28) | public class HttpConnectorPortBindingListener implements PortBindingEven...
method onOpen (line 32) | @Override
method onClose (line 37) | @Override
method onError (line 42) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/HttpHeadersImpl.java
class HttpHeadersImpl (line 46) | public class HttpHeadersImpl implements HttpHeaders {
method HttpHeadersImpl (line 53) | public HttpHeadersImpl(io.netty.handler.codec.http.HttpHeaders httpHea...
method getRequestHeader (line 57) | @Override
method getHeaderString (line 62) | @Override
method getRequestHeaders (line 82) | @Override
method getAcceptableMediaTypes (line 94) | @Override
method getAcceptableLanguages (line 107) | @Override
method getLanguageQualityFactor (line 142) | private float getLanguageQualityFactor(String q) {
class AcceptLanguageComparator (line 157) | private static class AcceptLanguageComparator implements Comparator<Lo...
method AcceptLanguageComparator (line 161) | AcceptLanguageComparator(Map<Locale, Float> prefs) {
method compare (line 165) | public int compare(Locale lang1, Locale lang2) {
method getMediaType (line 172) | @Override
method getLanguage (line 178) | @Override
method getCookies (line 184) | @Override
method getDate (line 202) | @Override
method getLength (line 220) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/MSF4JConstants.java
class MSF4JConstants (line 21) | public class MSF4JConstants {
FILE: core/src/main/java/org/wso2/msf4j/internal/MSF4JHttpConnectorListener.java
class MSF4JHttpConnectorListener (line 62) | public class MSF4JHttpConnectorListener implements HttpConnectorListener {
method MSF4JHttpConnectorListener (line 67) | public MSF4JHttpConnectorListener() {
method MSF4JHttpConnectorListener (line 108) | public MSF4JHttpConnectorListener(String channelId, MicroservicesRegis...
method onMessage (line 115) | @Override
method setBaseUri (line 151) | private void setBaseUri(Request request) {
method dispatchMethod (line 168) | private void dispatchMethod(MicroservicesRegistryImpl registry, Reques...
method getHttpCarbonMessage (line 222) | private HttpCarbonMessage getHttpCarbonMessage(Request request) throws...
method handleThrowable (line 235) | private void handleThrowable(MicroservicesRegistryImpl currentMicroser...
method handleHandlerException (line 257) | private void handleHandlerException(HandlerException e, Request reques...
method onError (line 267) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/MSF4JThreadFactory.java
class MSF4JThreadFactory (line 23) | public class MSF4JThreadFactory implements ThreadFactory {
method MSF4JThreadFactory (line 28) | public MSF4JThreadFactory(ThreadGroup threadGroup) {
method newThread (line 32) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/MSF4JWSConnectorListener.java
class MSF4JWSConnectorListener (line 55) | @Component(
method onHandshake (line 64) | @Override
method onMessage (line 81) | @Override
method onMessage (line 90) | @Override
method onMessage (line 99) | @Override
method onMessage (line 108) | @Override
method onClose (line 117) | @Override
method onError (line 121) | @Override
method onIdleTimeout (line 126) | @Override
method handleWebSocketHandshake (line 131) | private boolean handleWebSocketHandshake(WebSocketHandshaker carbonMes...
method handleTextWebSocketMessage (line 169) | private void handleTextWebSocketMessage(WebSocketTextMessage textCarbo...
method handleBinaryWebSocketMessage (line 207) | private void handleBinaryWebSocketMessage(WebSocketBinaryMessage binar...
method handleCloseWebSocketMessage (line 250) | private void handleCloseWebSocketMessage(WebSocketCloseMessage closeCa...
method handleControlCarbonMessage (line 292) | private void handleControlCarbonMessage(WebSocketControlMessage contro...
method handleError (line 325) | private void handleError(Throwable throwable, PatternPathRouter.Routab...
method executeMethod (line 350) | private void executeMethod(Method method, Object webSocketEndpoint, Li...
FILE: core/src/main/java/org/wso2/msf4j/internal/MicroservicesLCException.java
class MicroservicesLCException (line 22) | public class MicroservicesLCException extends RuntimeException {
method MicroservicesLCException (line 24) | public MicroservicesLCException(String message, Throwable throwable) {
FILE: core/src/main/java/org/wso2/msf4j/internal/MicroservicesRegistryImpl.java
class MicroservicesRegistryImpl (line 52) | public class MicroservicesRegistryImpl implements MicroservicesRegistry {
method MicroservicesRegistryImpl (line 62) | public MicroservicesRegistryImpl() {
method addService (line 76) | public void addService(Object... service) {
method addService (line 86) | public void addService(String basePath, Object service) {
method getServiceWithBasePath (line 92) | public Optional<Map.Entry<String, Object>> getServiceWithBasePath(Stri...
method removeService (line 96) | public void removeService(Object service) {
method setSessionManager (line 111) | public void setSessionManager(SessionManager sessionManager) {
method addInterceptor (line 118) | public void addInterceptor(Interceptor... interceptor) {
method removeInterceptor (line 123) | public void removeInterceptor(Interceptor interceptor) {
method getMetadata (line 128) | public MicroserviceMetadata getMetadata() {
method getHttpServices (line 132) | public Set<Object> getHttpServices() {
method addGlobalRequestInterceptor (line 141) | public void addGlobalRequestInterceptor(RequestInterceptor... requestI...
method addGlobalResponseInterceptor (line 150) | public void addGlobalResponseInterceptor(ResponseInterceptor... respon...
method removeGlobalRequestInterceptor (line 159) | public void removeGlobalRequestInterceptor(RequestInterceptor requestI...
method removeGlobalResponseInterceptor (line 168) | public void removeGlobalResponseInterceptor(ResponseInterceptor respon...
method getGlobalRequestInterceptorList (line 177) | public List<RequestInterceptor> getGlobalRequestInterceptorList() {
method getGlobalResponseInterceptorList (line 186) | public List<ResponseInterceptor> getGlobalResponseInterceptorList() {
method addExceptionMapper (line 190) | public void addExceptionMapper(ExceptionMapper... mapper) {
method getExceptionMapper (line 207) | Optional<ExceptionMapper> getExceptionMapper(Throwable throwable) {
method removeExceptionMapper (line 215) | public void removeExceptionMapper(ExceptionMapper em) {
method getServiceCount (line 229) | public int getServiceCount() {
method updateMetadata (line 233) | private void updateMetadata() {
method initServices (line 237) | public void initServices() {
method initService (line 241) | public void initService(Object httpService) {
method preDestroyServices (line 245) | public void preDestroyServices() {
method preDestroyService (line 249) | public void preDestroyService(Object httpService) {
method getSessionManager (line 253) | public SessionManager getSessionManager() {
method invokeLifecycleMethods (line 257) | private void invokeLifecycleMethods(Class lcAnnotation) {
method invokeLifecycleMethod (line 261) | private void invokeLifecycleMethod(Object httpService, Class lcAnnotat...
method getLifecycleMethod (line 272) | private Method getLifecycleMethod(Object httpService, Class lcAnnotati...
method isValidLifecycleMethod (line 277) | private boolean isValidLifecycleMethod(Optional<Method> method, Class ...
FILE: core/src/main/java/org/wso2/msf4j/internal/MicroservicesServerActivator.java
class MicroservicesServerActivator (line 25) | public class MicroservicesServerActivator implements BundleActivator {
method start (line 27) | public void start(BundleContext bundleContext) throws Exception {
method stop (line 31) | public void stop(BundleContext bundleContext) throws Exception {
FILE: core/src/main/java/org/wso2/msf4j/internal/MicroservicesServerImpl.java
class MicroservicesServerImpl (line 30) | public class MicroservicesServerImpl implements MicroservicesServer {
method MicroservicesServerImpl (line 34) | public MicroservicesServerImpl(Map<String, ListenerConfiguration> conf...
method getListenerConfigurations (line 38) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/MicroservicesServerSC.java
class MicroservicesServerSC (line 71) | @Component(
method start (line 87) | @Activate
method addService (line 91) | @Reference(
method removeService (line 112) | protected void removeService(Microservice service, Map properties) {
method addSwaggerService (line 126) | @Reference(
method removeSwaggerService (line 148) | protected void removeSwaggerService(SwaggerService service, Map proper...
method removeCarbonTransport (line 160) | protected void removeCarbonTransport(ServerConnector serverConnector) {
method registerConfigProvider (line 164) | @Reference(
method unregisterConfigProvider (line 219) | protected void unregisterConfigProvider(ConfigProvider configProvider) {
method addInterceptorConfig (line 223) | @Reference(
method removeInterceptorConfig (line 234) | protected void removeInterceptorConfig(OSGiInterceptorConfig intercept...
method addInterceptor (line 254) | @Reference(
method removeInterceptor (line 272) | protected void removeInterceptor(Interceptor interceptor, Map properti...
method addExceptionMapper (line 287) | @Reference(
method removeExceptionMapper (line 297) | protected void removeExceptionMapper(ExceptionMapper exceptionMapper, ...
method addSessionManager (line 308) | @Reference(
method removeSessionManager (line 318) | protected void removeSessionManager(SessionManager sessionManager, Map...
method onAllRequiredCapabilitiesAvailable (line 332) | @Override
method addMicroserviceToRegistry (line 413) | private void addMicroserviceToRegistry(Microservice service, Object ch...
method addRequestResponseInterceptorsToRegistry (line 447) | private void addRequestResponseInterceptorsToRegistry(OSGiInterceptorC...
method addInterceptorToRegistry (line 472) | @Deprecated
method addExceptionMapperToRegistry (line 491) | private void addExceptionMapperToRegistry(ExceptionMapper exceptionMap...
method addSessionManagerToRegistry (line 505) | private void addSessionManagerToRegistry(SessionManager sessionManager...
FILE: core/src/main/java/org/wso2/msf4j/internal/beanconversion/BeanConverter.java
class BeanConverter (line 29) | public class BeanConverter {
method BeanConverter (line 34) | private BeanConverter() {
method getConverter (line 48) | public static MediaTypeConverter getConverter(String mediaType) {
method addMediaTypeConverter (line 59) | private static void addMediaTypeConverter(MediaTypeConverter mediaType...
FILE: core/src/main/java/org/wso2/msf4j/internal/beanconversion/JsonConverter.java
class JsonConverter (line 39) | public class JsonConverter extends MediaTypeConverter {
method getSupportedMediaTypes (line 47) | @Override
method toMedia (line 58) | @Override
method toObject (line 73) | @Override
method toObject (line 87) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/beanconversion/TextPlainConverter.java
class TextPlainConverter (line 33) | public class TextPlainConverter extends MediaTypeConverter {
method getSupportedMediaTypes (line 38) | @Override
method toMedia (line 49) | @Override
method toObject (line 61) | @Override
method toObject (line 66) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/beanconversion/XmlConverter.java
class XmlConverter (line 39) | public class XmlConverter extends MediaTypeConverter {
method getSupportedMediaTypes (line 46) | @Override
method toMedia (line 58) | @Override
method toObject (line 79) | @Override
method toObject (line 94) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/entitywriter/EntityWriter.java
type EntityWriter (line 27) | public interface EntityWriter<T> {
method getType (line 36) | Class<T> getType();
method writeData (line 50) | void writeData(HttpCarbonMessage carbonMessage, T entity, String media...
FILE: core/src/main/java/org/wso2/msf4j/internal/entitywriter/EntityWriterRegistry.java
class EntityWriterRegistry (line 28) | public class EntityWriterRegistry {
method EntityWriterRegistry (line 39) | private EntityWriterRegistry() {
method registerEntityWriter (line 47) | private static void registerEntityWriter(EntityWriter entityWriter) {
method getEntityWriter (line 57) | public static EntityWriter getEntityWriter(Class type) {
FILE: core/src/main/java/org/wso2/msf4j/internal/entitywriter/FileEntityWriter.java
class FileEntityWriter (line 40) | public class FileEntityWriter implements EntityWriter<File> {
method getType (line 47) | @Override
method writeData (line 55) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/entitywriter/InputStreamEntityWriter.java
class InputStreamEntityWriter (line 35) | public class InputStreamEntityWriter implements EntityWriter<InputStream> {
method getType (line 42) | @Override
method writeData (line 50) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/entitywriter/ObjectEntityWriter.java
class ObjectEntityWriter (line 33) | public class ObjectEntityWriter implements EntityWriter<Object> {
method getType (line 38) | @Override
method writeData (line 46) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/entitywriter/StreamingOutputEntityWriter.java
class StreamingOutputEntityWriter (line 32) | public class StreamingOutputEntityWriter implements EntityWriter<Streami...
method getType (line 37) | @Override
method writeData (line 45) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/mime/MimeMapper.java
class MimeMapper (line 30) | public class MimeMapper {
method loadMimeMap (line 35) | private static void loadMimeMap() throws IOException {
method getMimeType (line 49) | public static String getMimeType(String extension) throws MimeMappingE...
FILE: core/src/main/java/org/wso2/msf4j/internal/mime/MimeMappingException.java
class MimeMappingException (line 23) | public class MimeMappingException extends RuntimeException {
method MimeMappingException (line 25) | public MimeMappingException(String msg) {
method MimeMappingException (line 29) | public MimeMappingException(Exception cause) {
method MimeMappingException (line 33) | public MimeMappingException(String msg, Exception cause) {
FILE: core/src/main/java/org/wso2/msf4j/internal/router/HandlerException.java
class HandlerException (line 27) | public class HandlerException extends Exception {
method HandlerException (line 32) | public HandlerException(Response.Status failureStatus, String message) {
method HandlerException (line 38) | public HandlerException(Response.Status failureStatus, String message,...
method getFailureResponse (line 44) | public HttpCarbonMessage getFailureResponse() {
method getFailureStatus (line 48) | public Response.Status getFailureStatus() {
FILE: core/src/main/java/org/wso2/msf4j/internal/router/HttpMethodInfo.java
class HttpMethodInfo (line 55) | public class HttpMethodInfo {
method HttpMethodInfo (line 76) | public HttpMethodInfo(Method method,
method HttpMethodInfo (line 99) | public HttpMethodInfo(Method method,
method invoke (line 137) | public void invoke(PatternPathRouter.RoutableDestination<HttpResourceM...
method invokeResource (line 170) | private ImmutablePair<Boolean, Object> invokeResource(
method invokeSubResource (line 209) | private ImmutablePair<Boolean, Object> invokeSubResource(
method chunk (line 363) | public void chunk(ByteBuffer chunk) throws Exception {
method end (line 379) | public void end(boolean isResponseInterceptorsSuccessful) throws Excep...
method isStreamingSupported (line 395) | public boolean isStreamingSupported() {
FILE: core/src/main/java/org/wso2/msf4j/internal/router/HttpMethodInfoBuilder.java
class HttpMethodInfoBuilder (line 29) | public class HttpMethodInfoBuilder {
method httpResourceModel (line 43) | public HttpMethodInfoBuilder httpResourceModel(HttpResourceModel httpR...
method httpRequest (line 54) | public HttpMethodInfoBuilder httpRequest(Request request) {
method httpResponder (line 65) | public HttpMethodInfoBuilder httpResponder(Response responder) {
method requestInfo (line 77) | public HttpMethodInfoBuilder requestInfo(Map<String, String> groupValu...
method build (line 88) | public HttpMethodInfo build() throws HandlerException {
method getHttpResourceModel (line 96) | public HttpResourceModel getHttpResourceModel() {
method getResponder (line 100) | public Response getResponder() {
method getRequest (line 104) | public Request getRequest() {
FILE: core/src/main/java/org/wso2/msf4j/internal/router/HttpResourceModel.java
class HttpResourceModel (line 57) | public final class HttpResourceModel {
method getParent (line 95) | public HttpResourceModel getParent() {
method setParent (line 103) | public void setParent(HttpResourceModel parent) {
method getSubResources (line 113) | public Map<SubresourceKey, HttpResourceModel> getSubResources() {
method setSubResources (line 121) | public void setSubResources(Map<SubresourceKey, HttpResourceModel> sub...
method addSubResources (line 125) | public void addSubResources(SubresourceKey subresourceKey, HttpResourc...
method setSubResourceScanned (line 133) | public void setSubResourceScanned(boolean subResourceScanned) {
method isSubResourceScanned (line 141) | public boolean isSubResourceScanned() {
method HttpResourceModel (line 153) | public HttpResourceModel(String path, Method method, Object handler, b...
method parseConsumesMediaTypes (line 164) | private List<String> parseConsumesMediaTypes() {
method parseProducesMediaTypes (line 183) | private List<String> parseProducesMediaTypes() {
method matchConsumeMediaType (line 202) | public boolean matchConsumeMediaType(String consumesMediaType) {
method matchProduceMediaType (line 210) | public boolean matchProduceMediaType(List<String> producesMediaTypes) {
method getHttpMethod (line 222) | public Set<String> getHttpMethod() {
method getPath (line 229) | public String getPath() {
method getMethod (line 236) | public Method getMethod() {
method getHttpHandler (line 243) | public Object getHttpHandler() {
method setSubResourceLocator (line 251) | public void setSubResourceLocator(boolean subResourceLocator) {
method isSubResourceLocator (line 260) | public boolean isSubResourceLocator() {
method toString (line 264) | @Override
method getHttpMethods (line 276) | private Set<String> getHttpMethods(Method method) {
method makeParamInfoList (line 318) | private List<ParameterInfo<?>> makeParamInfoList(Method method) {
method isStreamingReqSupported (line 365) | public boolean isStreamingReqSupported() {
method getParamInfoList (line 381) | public List<ParameterInfo<?>> getParamInfoList() {
method getConsumesMediaTypes (line 385) | public List<String> getConsumesMediaTypes() {
method getProducesMediaTypes (line 389) | public List<String> getProducesMediaTypes() {
class ParameterInfo (line 397) | public static final class ParameterInfo<T> {
method ParameterInfo (line 403) | private ParameterInfo(Type parameterType, Annotation annotation, Str...
method create (line 412) | static <V> ParameterInfo<V> create(Type parameterType, Annotation an...
method getAnnotation (line 417) | @SuppressWarnings("unchecked")
method getParameterType (line 422) | public Type getParameterType() {
method getDefaultVal (line 426) | public String getDefaultVal() {
method convert (line 430) | Object convert(T input) {
method getConverter (line 434) | public Function<T, Object> getConverter() {
FILE: core/src/main/java/org/wso2/msf4j/internal/router/HttpResourceModelProcessor.java
class HttpResourceModelProcessor (line 68) | public class HttpResourceModelProcessor {
method HttpResourceModelProcessor (line 80) | public HttpResourceModelProcessor(HttpResourceModel httpResourceModel) {
method buildHttpMethodInfo (line 93) | @SuppressWarnings("unchecked")
method createObject (line 157) | private void createObject(Request request, Object[] args, int idx, Htt...
method getFormDataParamValue (line 167) | private Object getFormDataParamValue(HttpResourceModel.ParameterInfo<L...
method extractRequestFormParams (line 212) | private MultivaluedMap<String, Object> extractRequestFormParams(Reques...
method createBean (line 262) | private Object createBean(List<Object> parameter, FormDataParam formDa...
method createAndTrackTempFile (line 271) | private File createAndTrackTempFile(FormItem item) throws IOException {
method getFormParamValue (line 286) | private Object getFormParamValue(HttpResourceModel.ParameterInfo<List<...
method getContextParamValue (line 326) | @SuppressWarnings("unchecked")
method getPathParamValue (line 363) | @SuppressWarnings("unchecked")
method getQueryParamValue (line 377) | @SuppressWarnings("unchecked")
method getHeaderParamValue (line 390) | @SuppressWarnings("unchecked")
method getCookieParamValue (line 404) | @SuppressWarnings("unchecked")
method getParameter (line 424) | private List<Object> getParameter(String key) {
method getFormParameters (line 431) | public Map<String, List<Object>> getFormParameters() {
method setFormParameters (line 440) | public void setFormParameters(MultivaluedMap<String, Object> parameter...
FILE: core/src/main/java/org/wso2/msf4j/internal/router/ImmutablePair.java
class ImmutablePair (line 45) | final class ImmutablePair<A, B> {
method ImmutablePair (line 55) | private ImmutablePair(A first, B second) {
method of (line 60) | public static <A, B> ImmutablePair<A, B> of(A first, B second) {
method getFirst (line 69) | public A getFirst() {
method getSecond (line 78) | public B getSecond() {
method toString (line 87) | @Override
method hashCode (line 97) | @Override
method equals (line 108) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/router/MicroserviceMetadata.java
class MicroserviceMetadata (line 47) | public final class MicroserviceMetadata {
method MicroserviceMetadata (line 59) | public MicroserviceMetadata(Map<String, Object> services) {
method addMicroserviceMetadata (line 98) | public void addMicroserviceMetadata(final Object service, String baseP...
method isHttpMethodAvailable (line 120) | private boolean isHttpMethodAvailable(Method method) {
method getDestinationMethod (line 141) | public PatternPathRouter
method getMatchedDestination (line 203) | private List<PatternPathRouter.RoutableDestination<HttpResourceModel>>
method getExactPrefixMatchCount (line 251) | private int getExactPrefixMatchCount(Iterable<String> first, Iterable<...
FILE: core/src/main/java/org/wso2/msf4j/internal/router/ParamConvertUtils.java
class ParamConvertUtils (line 45) | public final class ParamConvertUtils {
method ParamConvertUtils (line 63) | private ParamConvertUtils() {
method createPathParamConverter (line 74) | public static Function<String, Object> createPathParamConverter(final ...
method createHeaderParamConverter (line 91) | public static Function<List<String>, Object> createHeaderParamConverte...
method createCookieParamConverter (line 105) | public static Function<String, Object> createCookieParamConverter(Type...
method createQueryParamConverter (line 119) | public static Function<List<String>, Object> createQueryParamConverter...
method createFormParamConverter (line 133) | public static Function<List<String>, Object> createFormParamConverter(...
method createFormDataParamConverter (line 147) | public static Function<List<String>, Object> createFormDataParamConver...
method createListConverter (line 173) | private static Function<List<String>, Object> createListConverter(Type...
method createPrimitiveTypeConverter (line 224) | private static Function<List<String>, Object> createPrimitiveTypeConve...
method createStringConstructorConverter (line 258) | private static Function<List<String>, Object> createStringConstructorC...
method createStringMethodConverter (line 280) | private static Function<List<String>, Object> createStringMethodConver...
method createCollectionConverter (line 309) | @SuppressWarnings("unchecked")
class BasicConverter (line 373) | private abstract static class BasicConverter implements Function<List<...
method BasicConverter (line 377) | protected BasicConverter(Object defaultValue) {
method apply (line 381) | @Override
method getDefaultValue (line 397) | protected Object getDefaultValue() {
method convert (line 401) | protected abstract Object convert(String value) throws Exception;
FILE: core/src/main/java/org/wso2/msf4j/internal/router/PatternPathRouter.java
class PatternPathRouter (line 35) | public final class PatternPathRouter<T> {
method PatternPathRouter (line 53) | public PatternPathRouter() {
method create (line 57) | public static <T> PatternPathRouter<T> create() {
method add (line 67) | public void add(final String source, final T destination) {
method createPathPart (line 109) | private static PathPart createPathPart(String uriChunk) {
method stripBraces (line 124) | private static String stripBraces(String token) {
class PathPart (line 132) | private static class PathPart {
method getPattern (line 136) | public String getPattern() {
method setPattern (line 140) | public void setPattern(String pattern) {
method getName (line 144) | public String getName() {
method setName (line 148) | public void setName(String name) {
method getDestinations (line 160) | public List<RoutableDestination<T>> getDestinations(String path) {
class RoutableDestination (line 210) | public static final class RoutableDestination<T> {
method RoutableDestination (line 220) | public RoutableDestination(T destination, Map<String, String> groupN...
method getDestination (line 228) | public T getDestination() {
method getGroupNameValues (line 236) | public Map<String, String> getGroupNameValues() {
method toString (line 240) | @Override
class RouteDestinationWithGroups (line 249) | private final class RouteDestinationWithGroups {
method RouteDestinationWithGroups (line 254) | public RouteDestinationWithGroups(T destination, List<String> groupN...
method getDestination (line 259) | public T getDestination() {
method getGroupNames (line 263) | public List<String> getGroupNames() {
FILE: core/src/main/java/org/wso2/msf4j/internal/router/SubresourceKey.java
class SubresourceKey (line 26) | public class SubresourceKey {
method SubresourceKey (line 32) | public SubresourceKey(String path, Class<?> tClass, Set<String> httpMe...
method getTypedClass (line 43) | public Class<?> getTypedClass() {
method getPath (line 52) | public String getPath() {
method getHttpMethods (line 61) | public Set<String> getHttpMethods() {
method equals (line 65) | @Override
method hashCode (line 75) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/router/Util.java
class Util (line 33) | public class Util {
method isHttpMethodAvailable (line 45) | public static boolean isHttpMethodAvailable(Method method) {
method stripBraces (line 60) | public static String stripBraces(String token) {
method getResponseType (line 72) | public static String getResponseType(List<String> acceptTypes, List<St...
FILE: core/src/main/java/org/wso2/msf4j/internal/session/SessionIdGenerator.java
class SessionIdGenerator (line 33) | @SuppressWarnings("unused")
method setSessionIdLength (line 60) | public void setSessionIdLength(int sessionIdLength) {
method setSecureRandomClass (line 64) | public void setSecureRandomClass(String secureRandomClass) {
method setSecureRandomAlgorithm (line 68) | public void setSecureRandomAlgorithm(String secureRandomAlgorithm) {
method setSecureRandomProvider (line 72) | public void setSecureRandomProvider(String secureRandomProvider) {
method setJvmRoute (line 76) | public void setJvmRoute(String jvmRoute) {
method generateSessionId (line 80) | public String generateSessionId(String route) {
method getRandomBytes (line 120) | protected void getRandomBytes(byte bytes[]) {
method createSecureRandom (line 134) | private SecureRandom createSecureRandom() {
FILE: core/src/main/java/org/wso2/msf4j/internal/websocket/CloseCodeImpl.java
class CloseCodeImpl (line 27) | public class CloseCodeImpl implements CloseReason.CloseCode {
method CloseCodeImpl (line 34) | public CloseCodeImpl(int closeCode) {
method getCode (line 38) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/websocket/EndpointDispatcher.java
class EndpointDispatcher (line 39) | public class EndpointDispatcher {
method validateEndpointUri (line 46) | public boolean validateEndpointUri(Object websocketEndpoint) {
method getUri (line 62) | public String getUri(Object webSocketEndpoint) {
method getOnOpenMethod (line 72) | public Optional<Method> getOnOpenMethod(Object webSocketEndpoint) {
method getOnCloseMethod (line 90) | public Optional<Method> getOnCloseMethod(Object webSocketEndpoint) {
method getOnErrorMethod (line 108) | public Optional<Method> getOnErrorMethod(Object webSocketEndpoint) {
method getOnStringMessageMethod (line 125) | public Optional<Method> getOnStringMessageMethod(Object webSocketEndpo...
method getOnBinaryMessageMethod (line 149) | public Optional<Method> getOnBinaryMessageMethod(Object webSocketEndpo...
method getOnPongMessageMethod (line 171) | public Optional<Method> getOnPongMessageMethod(Object webSocketEndpoin...
FILE: core/src/main/java/org/wso2/msf4j/internal/websocket/EndpointValidator.java
class EndpointValidator (line 38) | public class EndpointValidator {
method validate (line 48) | public boolean validate(Object webSocketEndpoint) throws WebSocketEndp...
method validateURI (line 60) | private boolean validateURI(Object webSocketEndpoint) throws WebSocket...
method validateOnStringMethod (line 67) | private boolean validateOnStringMethod(Object webSocketEndpoint)
method validateOnBinaryMethod (line 97) | private boolean validateOnBinaryMethod(Object webSocketEndpoint)
method validateOnPongMethod (line 140) | private boolean validateOnPongMethod(Object webSocketEndpoint)
method validateOnOpenMethod (line 173) | private boolean validateOnOpenMethod(Object webSocketEndpoint)
method validateOnCloseMethod (line 199) | private boolean validateOnCloseMethod(Object webSocketEndpoint)
method validateOnErrorMethod (line 225) | private boolean validateOnErrorMethod(Object webSocketEndpoint)
method validateReturnType (line 263) | private boolean validateReturnType(Method method) throws WebSocketEndp...
FILE: core/src/main/java/org/wso2/msf4j/internal/websocket/EndpointsRegistryImpl.java
class EndpointsRegistryImpl (line 42) | public class EndpointsRegistryImpl implements WebSocketEndpointsRegistry {
method EndpointsRegistryImpl (line 54) | private EndpointsRegistryImpl() {
method getInstance (line 60) | public static EndpointsRegistryImpl getInstance() {
method addEndpoint (line 70) | public List<Object> addEndpoint(Object... webSocketEndpoints) {
method removeEndpoint (line 105) | public void removeEndpoint(Object webSocketEndpoint) {
method getRoutableEndpoint (line 118) | public PatternPathRouter.RoutableDestination<Object> getRoutableEndpoi...
method getAllEndpoints (line 124) | @Override
method getBestEndpoint (line 138) | private PatternPathRouter.RoutableDestination<Object> getBestEndpoint(
method updatePatternPathRouter (line 157) | private void updatePatternPathRouter() {
method getHitCount (line 173) | private int getHitCount(String[] destinationUriChunkArray, String[] re...
FILE: core/src/main/java/org/wso2/msf4j/internal/websocket/WebSocketPongMessage.java
class WebSocketPongMessage (line 27) | public class WebSocketPongMessage implements PongMessage {
method WebSocketPongMessage (line 34) | public WebSocketPongMessage(ByteBuffer byteBuffer) {
method getApplicationData (line 38) | @Override
FILE: core/src/main/java/org/wso2/msf4j/internal/websocket/WebSocketServerSC.java
class WebSocketServerSC (line 37) | @Component(
method start (line 49) | @Activate
method addEndpoint (line 61) | @Reference(
method removeEndpoint (line 77) | protected void removeEndpoint(WebSocketEndpoint endpoint) {
method onAllRequiredCapabilitiesAvailable (line 81) | @Override
FILE: core/src/main/java/org/wso2/msf4j/security/JWTSecurityInterceptor.java
class JWTSecurityInterceptor (line 47) | public class JWTSecurityInterceptor implements RequestInterceptor {
method interceptRequest (line 57) | @Override
method verifySignature (line 73) | private boolean verifySignature(String jwt) {
method getPublicKey (line 90) | private PublicKey getPublicKey(String keyStorePath, String keyStorePas...
FILE: core/src/main/java/org/wso2/msf4j/security/MSF4JSecurityException.java
class MSF4JSecurityException (line 22) | public class MSF4JSecurityException extends Exception {
method MSF4JSecurityException (line 32) | public MSF4JSecurityException(SecurityErrorCode errorCode, String mess...
method MSF4JSecurityException (line 47) | public MSF4JSecurityException(SecurityErrorCode errorCode, String mess...
method getErrorCode (line 57) | public SecurityErrorCode getErrorCode() {
FILE: core/src/main/java/org/wso2/msf4j/security/SecurityErrorCode.java
type SecurityErrorCode (line 22) | public enum SecurityErrorCode {
method SecurityErrorCode (line 30) | SecurityErrorCode(int code) {
method getCode (line 34) | public int getCode() {
FILE: core/src/main/java/org/wso2/msf4j/security/basic/AbstractBasicAuthSecurityInterceptor.java
class AbstractBasicAuthSecurityInterceptor (line 32) | public abstract class AbstractBasicAuthSecurityInterceptor implements Re...
method interceptRequest (line 38) | @Override
method authenticate (line 62) | protected abstract boolean authenticate(String username, String passwo...
FILE: core/src/main/java/org/wso2/msf4j/security/oauth2/IntrospectionResponse.java
class IntrospectionResponse (line 22) | public final class IntrospectionResponse {
FILE: core/src/main/java/org/wso2/msf4j/security/oauth2/OAuth2SecurityInterceptor.java
class OAuth2SecurityInterceptor (line 46) | public class OAuth2SecurityInterceptor implements RequestInterceptor {
method interceptRequest (line 71) | @Override
method validateToken (line 100) | private boolean validateToken(String authHeader) throws MSF4JSecurityE...
method extractAccessToken (line 123) | private String extractAccessToken(String authHeader) throws MSF4JSecur...
method getValidatedTokenResponse (line 144) | private String getValidatedTokenResponse(String accessToken) throws MS...
method getResponseDataMap (line 164) | private Map<String, String> getResponseDataMap(String responseStr) {
class ExtendedTypeToken (line 177) | private static class ExtendedTypeToken<T> extends TypeToken {
method handleSecurityError (line 184) | private void handleSecurityError(SecurityErrorCode errorCode, Response...
FILE: core/src/main/java/org/wso2/msf4j/template/RuntimeTemplateException.java
class RuntimeTemplateException (line 23) | public class RuntimeTemplateException extends RuntimeException {
method RuntimeTemplateException (line 25) | public RuntimeTemplateException() {
method RuntimeTemplateException (line 29) | public RuntimeTemplateException(Exception cause) {
FILE: core/src/main/java/org/wso2/msf4j/template/TemplateEngine.java
type TemplateEngine (line 22) | public interface TemplateEngine {
method render (line 31) | String render(String view, Object model);
FILE: core/src/main/java/org/wso2/msf4j/util/BufferUtil.java
class BufferUtil (line 26) | public class BufferUtil {
method merge (line 34) | public static ByteBuffer merge(List<ByteBuffer> byteBuffers) {
FILE: core/src/main/java/org/wso2/msf4j/util/Defaults.java
class Defaults (line 26) | public class Defaults {
method Defaults (line 27) | private Defaults() {
method defaultValue (line 52) | @Nullable
FILE: core/src/main/java/org/wso2/msf4j/util/HttpUtil.java
class HttpUtil (line 36) | public class HttpUtil {
method createTextResponse (line 49) | public static HttpCarbonMessage createTextResponse(int status, String ...
method setConnectionHeader (line 78) | public static void setConnectionHeader(Request request, Response respo...
FILE: core/src/main/java/org/wso2/msf4j/util/Primitives.java
class Primitives (line 29) | public final class Primitives {
method Primitives (line 30) | private Primitives() {
method add (line 63) | private static void add(Map<Class<?>, Class<?>> forward, Map<Class<?>,...
method allPrimitiveTypes (line 75) | public static Set<Class<?>> allPrimitiveTypes() {
method allWrapperTypes (line 83) | public static Set<Class<?>> allWrapperTypes() {
method isWrapperType (line 93) | public static boolean isWrapperType(Class<?> type) {
method wrap (line 108) | public static <T> Class<T> wrap(Class<T> type) {
method unwrap (line 125) | public static <T> Class<T> unwrap(Class<T> type) {
FILE: core/src/main/java/org/wso2/msf4j/util/QueryStringDecoderUtil.java
class QueryStringDecoderUtil (line 52) | public class QueryStringDecoderUtil {
method QueryStringDecoderUtil (line 70) | public QueryStringDecoderUtil(String uri) {
method QueryStringDecoderUtil (line 81) | public QueryStringDecoderUtil(String uri, boolean hasPath) {
method QueryStringDecoderUtil (line 92) | public QueryStringDecoderUtil(String uri, Charset charset) {
method QueryStringDecoderUtil (line 104) | public QueryStringDecoderUtil(String uri, Charset charset, boolean has...
method QueryStringDecoderUtil (line 117) | public QueryStringDecoderUtil(String uri, Charset charset, boolean has...
method QueryStringDecoderUtil (line 141) | public QueryStringDecoderUtil(URI uri) {
method QueryStringDecoderUtil (line 152) | public QueryStringDecoderUtil(URI uri, Charset charset) {
method QueryStringDecoderUtil (line 164) | public QueryStringDecoderUtil(URI uri, Charset charset, int maxParams) {
method uri (line 195) | public String uri() {
method path (line 204) | public String path() {
method parameters (line 225) | public Map<String, List<String>> parameters() {
method decodeParams (line 243) | private void decodeParams(String s) {
method addParam (line 287) | private boolean addParam(Map<String, List<String>> params, String name...
method decodeComponent (line 314) | public static String decodeComponent(final String s) {
method decodeComponent (line 340) | public static String decodeComponent(final String s, final Charset cha...
method decodeHexNibble (line 404) | private static char decodeHexNibble(final char c) {
FILE: core/src/main/java/org/wso2/msf4j/util/ReflectionUtils.java
class ReflectionUtils (line 32) | public class ReflectionUtils {
method ReflectionUtils (line 36) | private ReflectionUtils() {
method createInstanceFromClass (line 52) | public static <T> T createInstanceFromClass(Class<T> clazz, Class<?>[]...
method loadClassFromBundle (line 69) | @SuppressWarnings("unchecked")
FILE: core/src/main/java/org/wso2/msf4j/util/RuntimeAnnotations.java
class RuntimeAnnotations (line 37) | @Deprecated
method run (line 66) | @Override
method run (line 76) | @Override
method run (line 85) | @Override
method run (line 93) | @Override
method run (line 102) | @Override
method putAnnotation (line 122) | public static <T extends Annotation> void putAnnotation(Class<?> clazz...
method putAnnotation (line 127) | @SuppressWarnings("unchecked")
method createAnnotationData (line 149) | @SuppressWarnings("unchecked")
method annotationForMap (line 171) | @SuppressWarnings("unchecked")
FILE: core/src/main/java/org/wso2/msf4j/util/SystemVariableUtil.java
class SystemVariableUtil (line 28) | public class SystemVariableUtil {
method getValue (line 32) | public static String getValue(String variableName, String defaultValue) {
method getArbitraryAttributes (line 44) | public static Map<String, String> getArbitraryAttributes() {
FILE: core/src/main/java/org/wso2/msf4j/util/Utils.java
class Utils (line 40) | public class Utils {
method toString (line 48) | public static String toString(Object object) {
method toString (line 67) | public static String toString(Object object, String[] fields) {
method split (line 101) | public static List<String> split(String sequence, String delimiter, bo...
method getIntersection (line 116) | public static int getIntersection(Set set1, Set set2) {
method resolveTransportsNSConfiguration (line 127) | public static TransportsConfiguration resolveTransportsNSConfiguration...
FILE: core/src/main/java/org/wso2/msf4j/websocket/WebSocketEndpoint.java
type WebSocketEndpoint (line 25) | public interface WebSocketEndpoint {
FILE: core/src/main/java/org/wso2/msf4j/websocket/WebSocketEndpointsRegistry.java
type WebSocketEndpointsRegistry (line 27) | public interface WebSocketEndpointsRegistry {
method getAllEndpoints (line 28) | Set<Object> getAllEndpoints();
FILE: core/src/main/java/org/wso2/msf4j/websocket/exception/WebSocketEndpointAnnotationException.java
class WebSocketEndpointAnnotationException (line 24) | public class WebSocketEndpointAnnotationException extends Exception {
method WebSocketEndpointAnnotationException (line 29) | public WebSocketEndpointAnnotationException(String message) {
FILE: core/src/main/java/org/wso2/msf4j/websocket/exception/WebSocketEndpointMethodReturnTypeException.java
class WebSocketEndpointMethodReturnTypeException (line 24) | public class WebSocketEndpointMethodReturnTypeException extends Exception {
method WebSocketEndpointMethodReturnTypeException (line 29) | public WebSocketEndpointMethodReturnTypeException(String message) {
FILE: core/src/main/java/org/wso2/msf4j/websocket/exception/WebSocketMethodParameterException.java
class WebSocketMethodParameterException (line 24) | public class WebSocketMethodParameterException extends Exception {
method WebSocketMethodParameterException (line 26) | public WebSocketMethodParameterException(String message) {
FILE: core/src/test/java/org/wso2/msf4j/DeprecatedInterceptorTest.java
class DeprecatedInterceptorTest (line 40) | public class DeprecatedInterceptorTest extends InterceptorTestBase {
method setup (line 47) | @BeforeClass
method teardown (line 60) | @AfterClass
method reset (line 65) | @BeforeMethod
method testPreInterceptorReject (line 71) | @Test
method testPreException (line 89) | @Test
method testPostException (line 107) | @Test
method testUnknownPath (line 121) | @Test
FILE: core/src/test/java/org/wso2/msf4j/ExtendedServiceTest.java
class ExtendedServiceTest (line 45) | public class ExtendedServiceTest {
method setup (line 59) | @BeforeClass
method teardown (line 71) | @AfterClass
method testValidEndPoints (line 81) | @Test
method testPutWithData (line 93) | @Test
method request (line 107) | private HttpURLConnection request(String path, String method) throws I...
method request (line 111) | private HttpURLConnection request(String path, String method, boolean ...
method getContent (line 125) | private String getContent(HttpURLConnection urlConn) throws IOException {
method writeContent (line 129) | protected void writeContent(HttpURLConnection urlConn, String content)...
FILE: core/src/test/java/org/wso2/msf4j/HostBindingTest.java
class HostBindingTest (line 34) | public class HostBindingTest {
method testHostForMicroserviceRunner (line 40) | @Test
method testDifferentHostForMicroserviceRunner (line 57) | @Test
method isHostPortAvailable (line 91) | private boolean isHostPortAvailable(String host, int port) {
FILE: core/src/test/java/org/wso2/msf4j/HttpResourceModelTest.java
class HttpResourceModelTest (line 27) | public class HttpResourceModelTest {
method testStreamingReqSupportedCheckWhenStreamingSupported (line 29) | @Test
method testStreamingReqSupportedCheckWhenStreamingUnsupported (line 39) | @Test
class TestClass (line 52) | private static class TestClass {
method methodWithHttpStreaming (line 54) | public void methodWithHttpStreaming(HttpStreamer httpStreamer) {
method methodWithNoHttpStreaming (line 57) | public void methodWithNoHttpStreaming(Object object) {
FILE: core/src/test/java/org/wso2/msf4j/HttpServerTest.java
class HttpServerTest (line 90) | public class HttpServerTest {
method setup (line 114) | @BeforeClass
method teardown (line 129) | @AfterClass
method testMultipleMicroServiceRunners (line 135) | @Test
method testDynamicMicroserviceRegistration (line 146) | @Test
method testValidEndPoints (line 161) | @Test
method testSmallFileUpload (line 181) | @Test
method testLargeFileUpload (line 186) | @Test
method testStreamUpload (line 191) | protected void testStreamUpload(int size, String filename) throws IOEx...
method testStreamUploadFailure (line 213) | public void testStreamUploadFailure() throws IOException {
method testChunkAggregatedUpload (line 229) | @Test
method testChunkAggregatedUploadFailure (line 251) | public void testChunkAggregatedUploadFailure() throws IOException {
method testPathWithMultipleMethods (line 269) | @Test
method testNonExistingEndPoints (line 282) | @Test
method testPutWithData (line 290) | @Test
method testPostWithData (line 304) | @Test
method testNonExistingMethods (line 318) | @Test
method testMultiplePathParameters (line 325) | @Test
method testMultiplePathParametersWithParamterInDifferentOrder (line 339) | @Test
method testNotRoutablePathParamMismatch (line 352) | @Test
method testMultiMatchParamPut (line 359) | @Test
method testHandlerException (line 366) | @Test
method testMultiMatchFoo (line 386) | @Test
method testMultiMatchAll (line 391) | @Test
method testMultiMatchParam (line 396) | @Test
method testMultiMatchParamBar (line 401) | @Test
method testMultiMatchFooParamBar (line 406) | @Test
method testMultiMatchFooBarParam (line 411) | @Test
method testMultiMatchFooBarParamId (line 416) | @Test
method testMultiMatchFooPut (line 421) | @Test
method testChunkResponse (line 427) | public void testChunkResponse() throws IOException {
method testStringQueryParam (line 438) | @Test
method testPrimitiveQueryParam (line 447) | @Test
method testSortedSetQueryParam (line 455) | @Test
method testListHeaderParam (line 466) | @Test
method testHeaderResponse (line 475) | @Test
method testDefaultQueryParam (line 485) | @Test
method testConnectionClose (line 503) | @Test(timeOut = 5000)
method testUploadReject (line 527) | @Test
method testNoPathGetMethod (line 546) | @Test
method testNoPathPostMethod (line 553) | @Test
method testNoPathPutMethod (line 560) | @Test
method testNoPathDeleteMethod (line 567) | @Test
method testSleep (line 574) | @Test
method testWrongMethod (line 581) | @Test
method testExceptionHandler (line 588) | @Test
method testConsumeJsonProduceString (line 595) | @Test
method testConsumeStringProduceJson (line 607) | @Test
method testConsumeStringProduceString (line 621) | @Test
method testConsumeXmlProduceXml (line 632) | @Test
method testDownloadPngFile (line 652) | @Test
method testDownloadPngFileFromInputStream (line 663) | @Test
method testDownloadJpgFile (line 675) | @Test
method testDownloadJpgFileFromInputStream (line 687) | @Test
method testDownloadTxtFile (line 699) | @Test
method testDownloadTxtFileFromInputStream (line 710) | @Test
method testGzipCompressionWithNoGzipAccept (line 721) | @Test
method testGzipCompressionWithGzipAccept (line 732) | @Test
method testContentTypeSetting0 (line 744) | @Test
method testContentTypeSetting1 (line 755) | @Test
method testExceptionMapper (line 766) | @Test
method testExceptionMapper2 (line 774) | @Test
method tesFormParamWithURLEncoded (line 781) | @Test
method testFormParamWithMultipart (line 800) | @Test
method testFormDataParamWithSimpleRequest (line 819) | @Test
method tesFormParamWithCollection (line 856) | @Test
method testFormParamWithFile (line 930) | @Test
method testFormDataParamWithComplexForm (line 950) | @Test
method testFormDataParamWithMultipleFiles (line 977) | @Test
method testFormDataParamWithFileStream (line 999) | @Test
method testGetAllFormItemsWithURLEncoded (line 1024) | @Test
method getAllFormItemsMultipart (line 1043) | @Test
method testPathParamWithRegexOne (line 1090) | @Test
method testPathParamWithRegexTwo (line 1101) | @Test
method testDualInvocation (line 1111) | @Test
method testJsonProduceWithStringJsonArrayAndJsonObject (line 1128) | @Test
method testSetAndGetFromSession (line 1153) | @Test
method testSetAndGetFromSession2 (line 1175) | @Test
method testSessionExpiry (line 1199) | @Test
method testCookieParam (line 1241) | @Test
method testSubResources (line 1268) | @Test
method testLocation (line 1337) | @Test
method createRawSocket (line 1352) | protected Socket createRawSocket(URL url) throws IOException {
method testContent (line 1356) | protected void testContent(String path, String content) throws IOExcep...
method testContent (line 1360) | protected void testContent(String path, String content, String method)...
method request (line 1367) | protected HttpURLConnection request(String path, String method) throws...
method request (line 1371) | protected HttpURLConnection request(String path, String method, boolea...
method request (line 1385) | protected HttpURLConnection request(String path, String method, boolea...
method getContent (line 1399) | protected String getContent(HttpURLConnection urlConn) throws IOExcept...
method writeContent (line 1403) | protected void writeContent(HttpURLConnection urlConn, String content)...
method isStreamEqual (line 1407) | protected boolean isStreamEqual(InputStream input1, InputStream input2...
method petInstance (line 1426) | protected Pet petInstance() {
FILE: core/src/test/java/org/wso2/msf4j/HttpsServerTest.java
class HttpsServerTest (line 42) | public class HttpsServerTest extends HttpServerTest {
method setup (line 54) | @BeforeClass
method teardown (line 72) | @AfterClass
method request (line 78) | @Override
method createRawSocket (line 97) | @Override
method setSslClientContext (line 102) | static void setSslClientContext(SSLClientContext sslClientContext) {
FILE: core/src/test/java/org/wso2/msf4j/InterceptorTest.java
class InterceptorTest (line 55) | public class InterceptorTest extends InterceptorTestBase {
method setup (line 64) | @BeforeClass
method tearDown (line 88) | @AfterClass
method reset (line 93) | @BeforeMethod
method interceptionTest (line 122) | @Test
method subResourceInterceptionTest (line 155) | @Test
method priorityTest (line 234) | @Test
method interceptorFlowBreakOnExceptionTest (line 266) | @Test
method requestInterceptorFlowBreakByUserTest (line 296) | @Test
method responseInterceptorFlowBreakByUserTest (line 324) | @Test
FILE: core/src/test/java/org/wso2/msf4j/InterceptorTestBase.java
class InterceptorTestBase (line 41) | public abstract class InterceptorTestBase {
method doGetAndGetStatusCode (line 53) | protected int doGetAndGetStatusCode(String path, boolean keepAlive, Ma...
method doGetAndGetResponseObject (line 68) | protected <T> T doGetAndGetResponseObject(String path, boolean keepAli...
method doGetAndGetResponseString (line 81) | protected String doGetAndGetResponseString(String path, boolean keepAl...
method doPostAndGetResponseObject (line 97) | protected <T> T doPostAndGetResponseObject(String path, String rawData...
method getResponseObject (line 119) | protected <T> T getResponseObject(HttpURLConnection urlConn, Class<T> ...
method getResponseString (line 130) | protected String getResponseString(HttpURLConnection urlConn) throws I...
method createHttpUrlConnection (line 147) | protected HttpURLConnection createHttpUrlConnection(String path, Strin...
FILE: core/src/test/java/org/wso2/msf4j/MSF4JResponseTest.java
class MSF4JResponseTest (line 30) | public class MSF4JResponseTest {
method testStatusOk (line 32) | @Test
method testStatusNotFound (line 40) | @Test
method testEntity (line 48) | @Test
method testSingleHeaderSingleVal (line 58) | @Test
method testMultipleHeaderSingleVal (line 67) | @Test
method testSingleHeaderRepeatedSingleVal (line 78) | @Test
method testSingleHeaderListVal (line 89) | @Test
FILE: core/src/test/java/org/wso2/msf4j/MimeMapperTest.java
class MimeMapperTest (line 29) | public class MimeMapperTest {
method testMimeMappingForKnownExtension (line 31) | @Test
method testMimeMappingForUnknownExtension (line 37) | @Test(expectedExceptions = MimeMappingException.class)
FILE: core/src/test/java/org/wso2/msf4j/MutualAuthServerTest.java
class MutualAuthServerTest (line 36) | public class MutualAuthServerTest extends HttpsServerTest {
method setup (line 47) | @BeforeClass
method teardown (line 69) | @AfterClass
FILE: core/src/test/java/org/wso2/msf4j/PathRouterTest.java
class PathRouterTest (line 34) | public class PathRouterTest {
method testPathRoutings (line 36) | @Test
FILE: core/src/test/java/org/wso2/msf4j/SSLKeyStoreTest.java
class SSLKeyStoreTest (line 32) | public class SSLKeyStoreTest {
method setup (line 37) | @BeforeClass
method cleanup (line 45) | @AfterClass
method testSslCertPathConfiguration1 (line 50) | @Test(expectedExceptions = IllegalArgumentException.class)
method testSslCertPathConfiguration2 (line 57) | @Test(expectedExceptions = IllegalArgumentException.class)
method testSslKeyStorePassConfiguration2 (line 63) | @Test(expectedExceptions = IllegalArgumentException.class)
method testSslCertPassConfiguration (line 69) | @Test
FILE: core/src/test/java/org/wso2/msf4j/TransportConfigurationTest.java
class TransportConfigurationTest (line 52) | public class TransportConfigurationTest extends HttpServerTest {
method setup (line 64) | @BeforeClass
method getConfiguration (line 87) | public TransportsConfiguration getConfiguration(String configFileLocat...
method teardown (line 107) | @AfterClass
method request (line 113) | @Override
method createRawSocket (line 132) | @Override
method setSslClientContext (line 137) | static void setSslClientContext(SSLClientContext sslClientContext) {
FILE: core/src/test/java/org/wso2/msf4j/TransportConfigurationTest2.java
class TransportConfigurationTest2 (line 44) | public class TransportConfigurationTest2 extends HttpServerTest {
method setup (line 56) | @BeforeClass
method teardown (line 75) | @AfterClass
method request (line 81) | @Override
method createRawSocket (line 100) | @Override
method setSslClientContext (line 105) | static void setSslClientContext(SSLClientContext sslClientContext) {
FILE: core/src/test/java/org/wso2/msf4j/beanconversion/BeanConverterTest.java
class BeanConverterTest (line 32) | public class BeanConverterTest {
method testJsonBeanConversionTextJson (line 34) | @Test
method testJsonBeanConversionApplicationJson (line 48) | @Test
method testTextPlainBeanConversion (line 62) | @Test
method testAnyBeanConversion (line 70) | @Test
method testXmlBeanConversion (line 78) | @Test
method makeXmlBan (line 88) | private XmlBean makeXmlBan() {
method makePet (line 96) | private Pet makePet() {
FILE: core/src/test/java/org/wso2/msf4j/conf/Constants.java
class Constants (line 22) | public class Constants {
FILE: core/src/test/java/org/wso2/msf4j/conf/SSLClientContext.java
class SSLClientContext (line 33) | public class SSLClientContext {
method SSLClientContext (line 38) | public SSLClientContext() {
method SSLClientContext (line 42) | public SSLClientContext(File keyStore, String keyStorePassword) {
method getKeyStore (line 58) | private static KeyStore getKeyStore(File keyStore, String keyStorePass...
method getClientContext (line 75) | public SSLContext getClientContext() {
FILE: core/src/test/java/org/wso2/msf4j/conf/SSLConfig.java
class SSLConfig (line 24) | public class SSLConfig {
method SSLConfig (line 31) | private SSLConfig(File keyStore, String keyStorePassword,
method builder (line 46) | public static Builder builder(File keyStore, String keyStorePassword) {
method getKeyStore (line 53) | public File getKeyStore() {
method getKeyStorePassword (line 60) | public String getKeyStorePassword() {
method getCertificatePassword (line 67) | public String getCertificatePassword() {
method getTrustKeyStore (line 74) | public File getTrustKeyStore() {
method getTrustKeyStorePassword (line 81) | public String getTrustKeyStorePassword() {
class Builder (line 88) | public static class Builder {
method Builder (line 95) | private Builder(File keyStore, String keyStorePassword) {
method setCertificatePassword (line 106) | public Builder setCertificatePassword(String certificatePassword) {
method setTrustKeyStore (line 117) | public Builder setTrustKeyStore(File trustKeyStore) {
method setTrustKeyStorePassword (line 128) | public Builder setTrustKeyStorePassword(String trustKeyStorePassword) {
method build (line 139) | public SSLConfig build() {
FILE: core/src/test/java/org/wso2/msf4j/conf/SSLHandlerFactory.java
class SSLHandlerFactory (line 40) | public class SSLHandlerFactory {
method SSLHandlerFactory (line 46) | public SSLHandlerFactory(SSLConfig sslConfig) {
method getKeyStore (line 74) | private static KeyStore getKeyStore(File keyStore, String keyStorePass...
FILE: core/src/test/java/org/wso2/msf4j/conf/TrustManagerFactory.java
class TrustManagerFactory (line 34) | public class TrustManagerFactory extends TrustManagerFactorySpi {
method getAcceptedIssuers (line 38) | public X509Certificate[] getAcceptedIssuers() {
method checkClientTrusted (line 42) | public void checkClientTrusted(X509Certificate[] chain, String authTyp...
method checkServerTrusted (line 48) | public void checkServerTrusted(X509Certificate[] chain, String authTyp...
method getTrustManagers (line 55) | public static TrustManager[] getTrustManagers() {
method engineGetTrustManagers (line 59) | @Override
method engineInit (line 64) | @Override
method engineInit (line 69) | @Override
FILE: core/src/test/java/org/wso2/msf4j/exception/MappedException.java
class MappedException (line 24) | public class MappedException extends Exception {
method MappedException (line 25) | public MappedException() {
method MappedException (line 29) | public MappedException(String message) {
method MappedException (line 33) | public MappedException(String message, Throwable cause) {
method MappedException (line 37) | public MappedException(Throwable cause) {
method MappedException (line 41) | protected MappedException(String message, Throwable cause, boolean ena...
FILE: core/src/test/java/org/wso2/msf4j/exception/MappedException2.java
class MappedException2 (line 24) | public class MappedException2 extends Exception {
method MappedException2 (line 25) | public MappedException2() {
method MappedException2 (line 29) | public MappedException2(String message) {
method MappedException2 (line 33) | public MappedException2(String message, Throwable cause) {
method MappedException2 (line 37) | public MappedException2(Throwable cause) {
method MappedException2 (line 41) | protected MappedException2(String message, Throwable cause, boolean en...
FILE: core/src/test/java/org/wso2/msf4j/exception/TestExceptionMapper.java
class TestExceptionMapper (line 27) | public class TestExceptionMapper implements ExceptionMapper<MappedExcept...
method toResponse (line 29) | @Override
FILE: core/src/test/java/org/wso2/msf4j/exception/TestExceptionMapper2.java
class TestExceptionMapper2 (line 27) | public class TestExceptionMapper2 implements ExceptionMapper<MappedExcep...
method toResponse (line 29) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/HighPriorityClassRequestInterceptor.java
class HighPriorityClassRequestInterceptor (line 26) | public class HighPriorityClassRequestInterceptor implements RequestInter...
method interceptRequest (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/HighPriorityClassResponseInterceptor.java
class HighPriorityClassResponseInterceptor (line 26) | public class HighPriorityClassResponseInterceptor implements ResponseInt...
method interceptResponse (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/HighPriorityGlobalRequestInterceptor.java
class HighPriorityGlobalRequestInterceptor (line 28) | public class HighPriorityGlobalRequestInterceptor implements RequestInte...
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptRequest (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/HighPriorityGlobalResponseInterceptor.java
class HighPriorityGlobalResponseInterceptor (line 28) | public class HighPriorityGlobalResponseInterceptor implements ResponseIn...
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptResponse (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/HighPriorityMethodRequestInterceptor.java
class HighPriorityMethodRequestInterceptor (line 26) | public class HighPriorityMethodRequestInterceptor implements RequestInte...
method interceptRequest (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/HighPriorityMethodResponseInterceptor.java
class HighPriorityMethodResponseInterceptor (line 26) | public class HighPriorityMethodResponseInterceptor implements ResponseIn...
method interceptResponse (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/LowPriorityClassRequestInterceptor.java
class LowPriorityClassRequestInterceptor (line 26) | public class LowPriorityClassRequestInterceptor implements RequestInterc...
method interceptRequest (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/LowPriorityClassResponseInterceptor.java
class LowPriorityClassResponseInterceptor (line 26) | public class LowPriorityClassResponseInterceptor implements ResponseInte...
method interceptResponse (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/LowPriorityGlobalRequestInterceptor.java
class LowPriorityGlobalRequestInterceptor (line 28) | public class LowPriorityGlobalRequestInterceptor implements RequestInter...
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptRequest (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/LowPriorityGlobalResponseInterceptor.java
class LowPriorityGlobalResponseInterceptor (line 28) | public class LowPriorityGlobalResponseInterceptor implements ResponseInt...
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptResponse (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/LowPriorityMethodRequestInterceptor.java
class LowPriorityMethodRequestInterceptor (line 26) | public class LowPriorityMethodRequestInterceptor implements RequestInter...
method interceptRequest (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/LowPriorityMethodResponseInterceptor.java
class LowPriorityMethodResponseInterceptor (line 26) | public class LowPriorityMethodResponseInterceptor implements ResponseInt...
method interceptResponse (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/MediumPriorityClassRequestInterceptor.java
class MediumPriorityClassRequestInterceptor (line 26) | public class MediumPriorityClassRequestInterceptor implements RequestInt...
method interceptRequest (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/MediumPriorityClassResponseInterceptor.java
class MediumPriorityClassResponseInterceptor (line 26) | public class MediumPriorityClassResponseInterceptor implements ResponseI...
method interceptResponse (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/MediumPriorityGlobalRequestInterceptor.java
class MediumPriorityGlobalRequestInterceptor (line 28) | public class MediumPriorityGlobalRequestInterceptor implements RequestIn...
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptRequest (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/MediumPriorityGlobalResponseInterceptor.java
class MediumPriorityGlobalResponseInterceptor (line 28) | public class MediumPriorityGlobalResponseInterceptor implements Response...
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptResponse (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/MediumPriorityMethodRequestInterceptor.java
class MediumPriorityMethodRequestInterceptor (line 26) | public class MediumPriorityMethodRequestInterceptor implements RequestIn...
method interceptRequest (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/MediumPriorityMethodResponseInterceptor.java
class MediumPriorityMethodResponseInterceptor (line 26) | public class MediumPriorityMethodResponseInterceptor implements Response...
method interceptResponse (line 28) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/PriorityDataHolder.java
class PriorityDataHolder (line 23) | public class PriorityDataHolder {
method getPriorityOrder (line 32) | public static String getPriorityOrder() {
method setPriorityOrder (line 41) | public static void setPriorityOrder(String priorityOrder) {
FILE: core/src/test/java/org/wso2/msf4j/interceptor/TestBreakRequestInterceptor.java
class TestBreakRequestInterceptor (line 28) | public class TestBreakRequestInterceptor implements RequestInterceptor {
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptRequest (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/TestBreakResponseInterceptor.java
class TestBreakResponseInterceptor (line 28) | public class TestBreakResponseInterceptor implements ResponseInterceptor {
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptResponse (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/TestExceptionBreakRequestInterceptor.java
class TestExceptionBreakRequestInterceptor (line 28) | public class TestExceptionBreakRequestInterceptor implements RequestInte...
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptRequest (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/TestInterceptor.java
class TestInterceptor (line 28) | public class TestInterceptor implements Interceptor {
method getNumPreCalls (line 32) | public int getNumPreCalls() {
method getNumPostCalls (line 36) | public int getNumPostCalls() {
method reset (line 40) | public void reset() {
method preCall (line 45) | @Override
method postCall (line 64) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/TestInterceptorDeprecated.java
class TestInterceptorDeprecated (line 30) | public class TestInterceptorDeprecated implements Interceptor {
method reset (line 38) | public static void reset() {
method getPreCallInterceptorCallsCount (line 48) | public static int getPreCallInterceptorCallsCount() {
method getPostCallInterceptorCallsCount (line 57) | public static int getPostCallInterceptorCallsCount() {
method preCall (line 61) | @Override
method postCall (line 69) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/TestRequestInterceptor.java
class TestRequestInterceptor (line 28) | public class TestRequestInterceptor implements RequestInterceptor {
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptRequest (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/interceptor/TestResponseInterceptor.java
class TestResponseInterceptor (line 28) | public class TestResponseInterceptor implements ResponseInterceptor {
method reset (line 35) | public static void reset() {
method getFilterCalls (line 44) | public static int getFilterCalls() {
method interceptResponse (line 48) | @Override
FILE: core/src/test/java/org/wso2/msf4j/internal/HttpHeadersImplTest.java
class HttpHeadersImplTest (line 37) | public class HttpHeadersImplTest {
method setUp (line 41) | @BeforeMethod
method testGetRequestHeader (line 63) | @Test
method testGetHeaderString (line 71) | @Test
method testGetRequestHeaders (line 80) | @Test
method testGetAcceptableMediaTypes (line 93) | @Test
method testGetAcceptableLanguages (line 108) | @Test
method testGetMediaType (line 121) | @Test
method testGetLanguage (line 133) | @Test
method testGetCookies (line 143) | @Test
method testGetDate (line 155) | @Test
method testGetLength (line 165) | @Test
FILE: core/src/test/java/org/wso2/msf4j/internal/MicroservicesRegistryTest.java
class MicroservicesRegistryTest (line 42) | public class MicroservicesRegistryTest {
method setup (line 51) | @BeforeClass
method testMicroservicesRegistry (line 61) | @Test
FILE: core/src/test/java/org/wso2/msf4j/pojo/Category.java
class Category (line 21) | public class Category {
method Category (line 25) | public Category(String name) {
method getName (line 29) | public String getName() {
FILE: core/src/test/java/org/wso2/msf4j/pojo/Company.java
class Company (line 22) | public class Company {
method getType (line 25) | public String getType() {
method setType (line 29) | public void setType(String type) {
method toString (line 33) | @Override
FILE: core/src/test/java/org/wso2/msf4j/pojo/Person.java
class Person (line 22) | public class Person {
method getAge (line 26) | public int getAge() {
method setAge (line 30) | public void setAge(int age) {
method getName (line 34) | public String getName() {
method setName (line 38) | public void setName(String name) {
method toString (line 42) | @Override
FILE: core/src/test/java/org/wso2/msf4j/pojo/Pet.java
class Pet (line 23) | public class Pet {
method Pet (line 33) | public Pet() {
method getAgeMonths (line 36) | public int getAgeMonths() {
method setAgeMonths (line 40) | public void setAgeMonths(int ageMonths) {
method getCategory (line 44) | public Category getCategory() {
method setCategory (line 48) | public void setCategory(Category category) {
method getDateAdded (line 52) | public long getDateAdded() {
method getDetails (line 56) | public String getDetails() {
method setDetails (line 60) | public void setDetails(String details) {
method getId (line 64) | public String getId() {
method getImage (line 68) | public String getImage() {
method setImage (line 72) | public void setImage(String image) {
method getPrice (line 76) | public float getPrice() {
method setPrice (line 80) | public void setPrice(float price) {
FILE: core/src/test/java/org/wso2/msf4j/pojo/TextBean.java
class TextBean (line 22) | public class TextBean {
method getText (line 25) | public String getText() {
method setText (line 29) | public void setText(String text) {
FILE: core/src/test/java/org/wso2/msf4j/pojo/XmlBean.java
class XmlBean (line 26) | @XmlRootElement
method getName (line 33) | public String getName() {
method setName (line 37) | @XmlElement
method getValue (line 42) | public int getValue() {
method setValue (line 46) | @XmlElement
method getId (line 51) | public int getId() {
method setId (line 55) | @XmlAttribute
FILE: core/src/test/java/org/wso2/msf4j/service/ExtendedTestMicroservice.java
class ExtendedTestMicroservice (line 30) | @Path("/ext-test/v1")
method testExtendendGet (line 33) | @Path("resource")
FILE: core/src/test/java/org/wso2/msf4j/service/InterceptorTestMicroService.java
class InterceptorTestMicroService (line 40) | @Path("/test/interceptorTest")
method interceptorBreakOnExceptionTest (line 45) | @GET
method requestInterceptorBreakByUserTest (line 52) | @GET
method responseInterceptorBreakByUserTest (line 59) | @GET
method subResourceLocatorTest (line 67) | @Produces(MediaType.APPLICATION_JSON)
FILE: core/src/test/java/org/wso2/msf4j/service/PriorityInterceptorTestMicroService.java
class PriorityInterceptorTestMicroService (line 43) | @Path("/test/priorityInterceptorTest")
method priorityInterceptorTest (line 56) | @GET
FILE: core/src/test/java/org/wso2/msf4j/service/SecondService.java
class SecondService (line 25) | @Path("/SecondService")
method add (line 28) | @GET
FILE: core/src/test/java/org/wso2/msf4j/service/TestMicroServiceWithDynamicPath.java
class TestMicroServiceWithDynamicPath (line 23) | public class TestMicroServiceWithDynamicPath {
method sayHello (line 25) | @GET
FILE: core/src/test/java/org/wso2/msf4j/service/TestMicroservice.java
class TestMicroservice (line 87) | @SuppressWarnings("UnusedParameters")
method noMethodPathGet (line 94) | @GET
method noMethodPathPost (line 99) | @POST
method noMethodPathPut (line 104) | @PUT
method noMethodPathDelete (line 109) | @DELETE
method jsonConsume01 (line 114) | @Path("jsonConsumeStringProduce")
method textConsume01 (line 122) | @Path("textConsumeJsonProduce")
method textConsume02 (line 132) | @Path("textConsumeTextProduce")
method textConsume03 (line 140) | @Path("textConsumeTextProduceXml")
method testSleep (line 148) | @Path("sleep/{seconds}")
method produceHtmlContent0 (line 159) | @Path("response/typehtml")
method produceHtmlContent1 (line 168) | @Path("response/typehtml/str")
method testGet (line 177) | @Path("resource")
method testGetTweet (line 185) | @Path("tweets/{id}")
method testPutTweet (line 193) | @Path("tweets/{id}")
method testNoMethodRoute (line 201) | @Path("facebook/{id}/message")
method testPutMessage (line 207) | @Path("facebook/{id}/message")
method testPostMessage (line 223) | @Path("facebook/{id}/message")
method testMultipleParametersInPath (line 239) | @Path("/user/{userId}/message/{messageId}")
method testMultipleParametersInDifferentParameterDeclarationOrder (line 248) | @Path("/message/{messageId}/user/{userId}")
method notRoutableParameterMismatch (line 257) | @Path("/NotRoutable/{id}")
method exception (line 265) | @Path("/exception")
method getStringContent (line 271) | private String getStringContent(Request request) throws IOException {
method getStringFromInputStream (line 281) | private static String getStringFromInputStream(InputStream in) {
method multiMatchAll (line 303) | @Path("/multi-match/**")
method multiMatchParam (line 309) | @Path("/multi-match/{param}")
method multiMatchFoo (line 315) | @Path("/multi-match/foo")
method multiMatchParamPut (line 321) | @Path("/multi-match/foo")
method multiMatchParamBar (line 327) | @Path("/multi-match/{param}/bar")
method multiMatchFooParam (line 333) | @Path("/multi-match/foo/{param}")
method multiMatchFooParamBar (line 339) | @Path("/multi-match/foo/{param}/bar")
method multiMatchFooBarParam (line 345) | @Path("/multi-match/foo/bar/{param}")
method multiMatchFooParamBarBaz (line 351) | @Path("/multi-match/foo/{param}/bar/baz")
method multiMatchFooBarParamId (line 357) | @Path("/multi-match/foo/bar/{param}/{id}")
method serveFile (line 363) | @Path("/fileserver/{fileType}")
method serveInputStream (line 380) | @Path("/fileserver/ip/{fileType}")
method streamUpload (line 399) | @Path("/stream/upload")
method streamUploadFailure (line 432) | @Path("/stream/upload/fail")
method aggregatedUpload (line 466) | @Path("/aggregate/upload")
method gzipFile (line 475) | @Path("/gzipfile")
method testException (line 482) | @Path("/uexception")
method testNoResponse (line 488) | @Path("/noresponse")
method testStringQueryParam (line 493) | @Path("/stringQueryParam/{path}")
method testPrimitiveQueryParam (line 499) | @Path("/primitiveQueryParam")
method testSortedSetQueryParam (line 505) | @Path("/sortedSetQueryParam")
method testListHeaderParam (line 516) | @Path("/listHeaderParam")
method testHeaderResponse (line 525) | @Path("/headerResponse")
method testDefaultValue (line 531) | @Path("/defaultValue")
method testConnectionClose (line 545) | @Path("/connectionClose")
method testUploadReject (line 551) | @Path("/uploadReject")
method testCustomException (line 557) | @Path("/customException")
method testExceptionMapping (line 563) | @Path("/mappedException")
method testExceptionMapping2 (line 569) | @Path("/mappedException2")
method tesFormParamWithURLEncoded (line 575) | @Path("/formParam")
method tesFormDataParam (line 582) | @Path("/formDataParam")
method tesFormParamList (line 589) | @Path("/formParamWithList")
method tesFormParamSet (line 596) | @Path("/formParamWithSet")
method testFormParamWithFile (line 603) | @POST
method complexForm (line 618) | @POST
method multipleFiles (line 630) | @POST
method multipleFiles (line 637) | @POST
method getAllFormItemsURLEncoded (line 655) | @POST
method getAllFormItemsMultipart (line 665) | @POST
method getAllFormItemsXFormUrlEncoded (line 679) | @POST
method testPathParamWithRegexOne (line 689) | @GET
method testPathParamWithRegexTwo (line 697) | @GET
method testDualInvocation1 (line 707) | @GET
method testDualInvocation2 (line 714) | @GET
method testJsonProduceWithString (line 722) | @GET
method testJsonProduceWithJsonArray (line 730) | @GET
method testJsonProduceWithJJsonObject (line 741) | @GET
method setObjectInSession (line 758) | @GET
method setObjectInSession2 (line 767) | @GET
method getObjectFromSession (line 778) | @GET
method expireSession (line 784) | @GET
method echoCookieValue (line 790) | @GET
method getCountryTeam (line 808) | @Produces(MediaType.APPLICATION_JSON)
method locationRealtiveUriTest (line 814) | @GET
method locationAbsoluteUriTest (line 820) | @GET
class CustomException (line 830) | public static final class CustomException extends Exception {
FILE: core/src/test/java/org/wso2/msf4j/service/sub/Player.java
class Player (line 26) | @Path("/")
method Player (line 36) | public Player(String countryId, int playerId) {
method Player (line 43) | public Player() {
method getPlayerProfileFiled (line 48) | @POST
method getPlayerProfile (line 56) | @POST
method setType (line 66) | public void setType(String type) {
method setAge (line 70) | public void setAge(byte age) {
method setCountryId (line 74) | public void setCountryId(String countryId) {
method setPlayerId (line 78) | public void setPlayerId(int playerId) {
method setName (line 82) | public void setName(String name) {
method setCountryName (line 86) | public void setCountryName(String countryName) {
method getName (line 90) | public String getName() {
method getPlayerId (line 94) | public int getPlayerId() {
method getCountryId (line 98) | public String getCountryId() {
method getCountryName (line 102) | public String getCountryName() {
method getAge (line 106) | public byte getAge() {
method getType (line 110) | public String getType() {
FILE: core/src/test/java/org/wso2/msf4j/service/sub/Team.java
class Team (line 33) | @Path("/")
method getCountryId (line 39) | public String getCountryId() {
method getCountryName (line 43) | public String getCountryName() {
method setCountryName (line 47) | public void setCountryName(String countryName) {
method getTeamType (line 51) | public String getTeamType() {
method setTeamType (line 55) | public void setTeamType(String teamType) {
method setCountryId (line 61) | public void setCountryId(String countryId) {
method Team (line 65) | public Team(String countryId) {
method Team (line 70) | public Team(String countryId, String countryName) {
method getPlayerObj (line 76) | @Path("/{playerId}")
method getPlayer (line 81) | @Path("/interceptorTest/{playerId}")
method getCountryTeam (line 89) | @GET
method getCountryTeamFromPost (line 95) | @POST
FILE: core/src/test/java/org/wso2/msf4j/session/SessionIdGeneratorTest.java
class SessionIdGeneratorTest (line 32) | public class SessionIdGeneratorTest {
method test (line 34) | @Test
FILE: core/src/test/java/org/wso2/msf4j/util/QueryStringDecoderUtilTest.java
class QueryStringDecoderUtilTest (line 38) | public class QueryStringDecoderUtilTest {
method testBasicUris (line 40) | @Test
method testBasic (line 46) | @Test
method testExotic (line 93) | @Test
method testHashDos (line 117) | @Test
method testHasPath (line 131) | @Test
method testUrlDecoding (line 144) | @Test
method assertQueryString (line 180) | private static void assertQueryString(String expected, String actual) {
method testURI (line 188) | @Test
method testURISlashPath (line 216) | @Test
method testURINoPath (line 244) | @Test
method testURI2 (line 272) | @Test
FILE: core/src/test/java/org/wso2/msf4j/util/client/websocket/WebSocketClient.java
class WebSocketClient (line 58) | public class WebSocketClient {
method WebSocketClient (line 73) | public WebSocketClient(String url) {
method WebSocketClient (line 78) | public WebSocketClient(String url, String subProtocol, Map<String, Str...
method handhshake (line 91) | public boolean handhshake() throws InterruptedException, URISyntaxExce...
method sendText (line 171) | public void sendText(String text) throws InterruptedException {
method sendBinary (line 183) | public void sendBinary(ByteBuffer buf) throws IOException, Interrupted...
method sendPing (line 195) | public void sendPing(ByteBuffer buf) throws IOException, InterruptedEx...
method getTextReceived (line 206) | public String getTextReceived() {
method getBufferReceived (line 213) | public ByteBuffer getBufferReceived() {
method shutDown (line 220) | public void shutDown() throws InterruptedException {
method isHandshakeSuccessful (line 230) | public boolean isHandshakeSuccessful() {
FILE: core/src/test/java/org/wso2/msf4j/util/client/websocket/WebSocketClientHandler.java
class WebSocketClientHandler (line 42) | public class WebSocketClientHandler extends SimpleChannelInboundHandler<...
method WebSocketClientHandler (line 54) | public WebSocketClientHandler(WebSocketClientHandshaker handshaker) {
method handshakeFuture (line 58) | public ChannelFuture handshakeFuture() {
method handlerAdded (line 62) | @Override
method channelActive (line 68) | @Override
method channelInactive (line 74) | @Override
method channelRead0 (line 81) | @Override
method getTextReceived (line 120) | public String getTextReceived() {
method getBufferReceived (line 127) | public ByteBuffer getBufferReceived() {
method exceptionCaught (line 131) | @Override
method shutDown (line 140) | public void shutDown() throws InterruptedException {
method isOpen (line 145) | public boolean isOpen() {
FILE: core/src/test/java/org/wso2/msf4j/websocket/DeploymentTest.java
class DeploymentTest (line 42) | public class DeploymentTest {
method setup (line 54) | @BeforeClass
method testReply (line 63) | @Test(description = "Testing the echoing the message sent by client fo...
method testBroadcast (line 96) | @Test(description = "Testing broadcasting messages for text, binary an...
method cleanUp (line 128) | @AfterClass
FILE: core/src/test/java/org/wso2/msf4j/websocket/EndpointRegistryTest.java
class EndpointRegistryTest (line 41) | public class EndpointRegistryTest {
method EndpointRegistryTest (line 50) | public EndpointRegistryTest() {
method onRegister (line 53) | @BeforeClass
method addEndpoint (line 59) | @Test(description = "Testing the adding a correct endpoint to the regi...
method removeEndpoint (line 78) | @Test(description = "Testing the removing of an endpoint from the regi...
FILE: core/src/test/java/org/wso2/msf4j/websocket/ValidatorTest.java
class ValidatorTest (line 45) | public class ValidatorTest {
method setup (line 50) | @BeforeClass
method testCorretEndpoint (line 56) | @Test(description = "Test endpoint with all necessary methods and all ...
method testMandatoryParametersEndpoint (line 63) | @Test(description = "Test endpoint with all necessary methods with man...
method testMandatoryParameterMissing (line 71) | @Test(description = "Check the mandatory parameters missing",
method testerverEndpoint (line 80) | @Test(description = "Test the expected exceptions for not defining ser...
method testOnOpen (line 89) | @Test(description = "Test the expected exceptions for onOpen",
method testOnClose (line 97) | @Test(description = "Test the expected exceptions for onClose",
method testOnTextMessage (line 105) | @Test(description = "Test the expected exceptions for onTextMessage",
method testOnBinaryMessage (line 113) | @Test(description = "Test the expected exceptions for onBinaryMessage",
method testOnPongMessage (line 121) | @Test(description = "Test the expected exceptions for onPongMessage",
method testOnError (line 129) | @Test(description = "Test the expected exceptions for onError",
method testReturnTypeError (line 137) | @Test(description = "Test the expected exceptions for invalid return t...
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/ChatAppEndpoint.java
class ChatAppEndpoint (line 42) | @SuppressWarnings("ALL")
method onOpen (line 48) | @OnOpen
method onTextMessage (line 56) | @OnMessage
method onBinaryMessage (line 64) | @OnMessage
method onClose (line 69) | @OnClose
method onError (line 79) | @OnError
method sendMessageToAll (line 84) | private void sendMessageToAll(String message) {
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/EchoEndpoint.java
class EchoEndpoint (line 38) | @ServerEndpoint("/echo")
method onOpen (line 42) | @OnOpen
method onTextMessage (line 50) | @OnMessage
method onBinaryMessage (line 60) | @OnMessage
method onPongMessage (line 74) | @OnMessage
method onClose (line 80) | @OnClose
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/TestEndpoint.java
class TestEndpoint (line 31) | @ServerEndpoint("/test")
method onOpen (line 35) | @OnOpen
method onStringMessage (line 40) | @OnMessage
method onClose (line 46) | @OnClose
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/TestEndpointWithAllCorrect.java
class TestEndpointWithAllCorrect (line 37) | @ServerEndpoint("/allCorrect/{param1}/{param2}")
method onOpen (line 40) | @OnOpen
method onString (line 45) | @OnMessage
method onBinary (line 51) | @OnMessage
method onPong (line 57) | @OnMessage
method onClose (line 63) | @OnClose
method onError (line 69) | @OnError
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/TestEndpointWithMandatoryParameters.java
class TestEndpointWithMandatoryParameters (line 32) | @ServerEndpoint("/test-with-mandatory-params")
method onOpen (line 35) | @OnOpen
method onString (line 39) | @OnMessage
method onBinary (line 44) | @OnMessage
method onPong (line 49) | @OnMessage
method onClose (line 54) | @OnClose
method onError (line 59) | @OnError
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpoinWithOnTextError.java
class TestEndpoinWithOnTextError (line 42) | @ServerEndpoint(value = "/chat/{name}")
method onOpen (line 47) | @OnOpen
method onTextMessage (line 55) | @OnMessage
method onClose (line 64) | @OnClose
method onError (line 74) | @OnError
method sendMessageToAll (line 79) | private void sendMessageToAll(String message) {
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithMandatoryParametersMissing.java
class TestEndpointWithMandatoryParametersMissing (line 29) | @ServerEndpoint("/test-mandatory-parameters-missing")
method onError (line 32) | @OnError
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithOnBinaryError.java
class TestEndpointWithOnBinaryError (line 42) | @ServerEndpoint(value = "/chat/{name}")
method onOpen (line 47) | @OnOpen
method onTextMessage (line 55) | @OnMessage
method onBinaryMessage (line 63) | @OnMessage
method onClose (line 71) | @OnClose
method onError (line 81) | @OnError
method sendMessageToAll (line 86) | private void sendMessageToAll(String message) {
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithOnCloseError.java
class TestEndpointWithOnCloseError (line 41) | @ServerEndpoint(value = "/chat/{name}")
method onOpen (line 46) | @OnOpen
method onTextMessage (line 54) | @OnMessage
method onClose (line 62) | @OnClose
method onError (line 70) | @OnError
method sendMessageToAll (line 75) | private void sendMessageToAll(String message) {
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithOnError.java
class TestEndpointWithOnError (line 41) | @ServerEndpoint(value = "/chat/{name}")
method onOpen (line 46) | @OnOpen
method onTextMessage (line 54) | @OnMessage
method onClose (line 62) | @OnClose
method onError (line 72) | @OnError
method sendMessageToAll (line 77) | private void sendMessageToAll(String message) {
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithOnOpenError.java
class TestEndpointWithOnOpenError (line 41) | @ServerEndpoint(value = "/test-error")
method onOpen (line 46) | @OnOpen
method onTextMessage (line 54) | @OnMessage
method onClose (line 62) | @OnClose
method onError (line 72) | @OnError
method sendMessageToAll (line 77) | private void sendMessageToAll(String message) {
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithOnPongError.java
class TestEndpointWithOnPongError (line 42) | @ServerEndpoint(value = "/chat/{name}")
method onOpen (line 47) | @OnOpen
method onTextMessage (line 55) | @OnMessage
method onTextMessage (line 63) | @OnMessage
method onClose (line 69) | @OnClose
method onError (line 79) | @OnError
method sendMessageToAll (line 84) | private void sendMessageToAll(String message) {
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithReturnTypeError.java
class TestEndpointWithReturnTypeError (line 29) | @ServerEndpoint("/test-with-false-return")
method onText (line 32) | @OnMessage
FILE: core/src/test/java/org/wso2/msf4j/websocket/endpoint/error/TestEndpointWithServerEndpointError.java
class TestEndpointWithServerEndpointError (line 30) | public class TestEndpointWithServerEndpointError implements WebSocketEnd...
method onOpen (line 33) | @OnOpen
method onStringMessage (line 38) | @OnMessage
method onClose (line 44) | @OnClose
FILE: deployer/src/main/java/org/wso2/msf4j/deployer/MicroserviceDeploymentException.java
class MicroserviceDeploymentException (line 22) | public class MicroserviceDeploymentException extends Exception {
method MicroserviceDeploymentException (line 23) | public MicroserviceDeploymentException(String message) {
method MicroserviceDeploymentException (line 27) | public MicroserviceDeploymentException(String message, Exception e) {
FILE: deployer/src/main/java/org/wso2/msf4j/deployer/MicroserviceDeploymentUtils.java
class MicroserviceDeploymentUtils (line 39) | public class MicroserviceDeploymentUtils {
method getRourceInstances (line 50) | public static List<Object> getRourceInstances(File artifactFile) throw...
method readManifestEntry (line 99) | private static String[] readManifestEntry(String jarPath) throws Micro...
FILE: deployer/src/main/java/org/wso2/msf4j/deployer/internal/DataHolder.java
class DataHolder (line 28) | public class DataHolder {
method DataHolder (line 34) | private DataHolder() {
method getInstance (line 42) | public static DataHolder getInstance() {
method getMicroservicesRegistries (line 51) | public Map<String, MicroservicesRegistry> getMicroservicesRegistries() {
method getMicroserviceRegistry (line 61) | public MicroservicesRegistry getMicroserviceRegistry(String registryId) {
method addMicroserviceRegistry (line 71) | public void addMicroserviceRegistry(String registryId, MicroservicesRe...
method getMicroserviceRegistries (line 80) | public Map<String, MicroservicesRegistry> getMicroserviceRegistries() {
FILE: deployer/src/main/java/org/wso2/msf4j/deployer/internal/MSF4JDeployerSC.java
class MSF4JDeployerSC (line 40) | @Component(
method start (line 52) | @Activate
method stop (line 56) | @Deactivate
method onAllRequiredCapabilitiesAvailable (line 60) | @Override
method addMicroservicesRegitry (line 74) | @Reference(
method removeMicroservicesRegistry (line 87) | protected void removeMicroservicesRegistry(MicroservicesRegistry micro...
FILE: deployer/src/main/java/org/wso2/msf4j/deployer/internal/MicroservicesDeployer.java
class MicroservicesDeployer (line 42) | public class MicroservicesDeployer implements Deployer {
method init (line 52) | public void init() {
method deploy (line 71) | public Object deploy(Artifact artifact) throws CarbonDeploymentExcepti...
method undeploy (line 111) | public void undeploy(Object key) throws CarbonDeploymentException {
method update (line 129) | public Object update(Artifact artifact) throws CarbonDeploymentExcepti...
method getLocation (line 144) | public URL getLocation() {
method getArtifactType (line 151) | public ArtifactType getArtifactType() {
method isSupportedFile (line 161) | private boolean isSupportedFile(File file) {
method getFileExtension (line 174) | private String getFileExtension(File file) {
method addService (line 194) | private boolean addService(Microservice service) {
method removeService (line 210) | private boolean removeService(Microservice service) {
FILE: deployer/src/test/java/org/wso2/msf4j/deployer/MSF4JDeployerTest.java
class MSF4JDeployerTest (line 60) | public class MSF4JDeployerTest {
method setup (line 72) | @BeforeClass
method teardown (line 86) | @AfterClass
method testJarArtifactDeployment (line 93) | @Test
method testJarArtifactUndeployment (line 116) | @Test(dependsOnMethods = "testJarArtifactDeployment")
method testFatJarArtifactDeployment (line 127) | @Test(expectedExceptions = CarbonDeploymentException.class,
method testBundleArtifactDeployment (line 140) | @Test(expectedExceptions = CarbonDeploymentException.class,
method request (line 153) | private HttpURLConnection request(String path, String method) throws I...
method request (line 157) | private HttpURLConnection request(String path, String method, boolean ...
method getContent (line 171) | private String getContent(HttpURLConnection urlConn) throws IOException {
method compileTestSamples (line 180) | private void compileTestSamples(File projectFile) throws MavenInvocati...
method getSampleJarFile (line 199) | private Optional<Path> getSampleJarFile(Path targetDirectory) throws I...
FILE: features/feature-test/src/test/java/org/wso2/msf4j/osgi/test/MSF4JStartupTest.java
class MSF4JStartupTest (line 46) | @Listeners(PaxExam.class)
method createConfiguration (line 63) | @Configuration
method testServerStarup (line 140) | @Test
FILE: jaxrs-delegates/src/main/java/org/wso2/msf4j/delegates/CookieHeaderProvider.java
class CookieHeaderProvider (line 33) | public class CookieHeaderProvider implements RuntimeDelegate.HeaderDeleg...
method fromString (line 49) | @Override
method toString (line 107) | @Override
FILE: jaxrs-delegates/src/main/java/org/wso2/msf4j/delegates/MSF4JResponse.java
class MSF4JResponse (line 43) | public class MSF4JResponse extends Response {
method setBaseUri (line 68) | public static void setBaseUri(URI baseUri) {
method getBaseUri (line 82) | private static URI getBaseUri() {
method clearBaseUri (line 94) | public static void clearBaseUri() {
method setHeaders (line 98) | public void setHeaders(MultivaluedMap<String, String> headers) {
method setCookies (line 102) | public void setCookies(Map<String, NewCookie> cookies) {
method getStatus (line 106) | @Override
method setStatus (line 111) | public void setStatus(int status) {
method getStatusInfo (line 115) | @Override
method getEntity (line 135) | @Override
method setEntity (line 140) | public void setEntity(Object entity) {
method readEntity (line 144) | @Override
method readEntity (line 149) | @Override
method readEntity (line 154) | @Override
method readEntity (line 159) | @Override
method hasEntity (line 164) | @Override
method bufferEntity (line 169) | @Override
method close (line 174) | @Override
method getMediaType (line 179) | @Override
method getLanguage (line 184) | @Override
method getLength (line 189) | @Override
method getAllowedMethods (line 198) | @Override
method getCookies (line 203) | @Override
method getEntityTag (line 208) | @Override
method getDate (line 213) | @Override
method getLastModified (line 218) | @Override
method getLocation (line 223) | @Override
method getLinks (line 228) | @Override
method hasLink (line 233) | @Override
method getLink (line 238) | @Override
method getLinkBuilder (line 243) | @Override
method getMetadata (line 248) | @Override
method getStringHeaders (line 253) | @Override
method getHeaderString (line 258) | @Override
method setType (line 263) | public void setType(MediaType type) {
class Builder (line 270) | public class Builder extends ResponseBuilder {
method build (line 277) | @Override
method clone (line 288) | @Override
method status (line 293) | @Override
method entity (line 299) | @Override
method entity (line 305) | @Override
method allow (line 310) | @Override
method allow (line 315) | @Override
method cacheControl (line 320) | @Override
method encoding (line 325) | @Override
method header (line 330) | @Override
method replaceAll (line 346) | @Override
method language (line 351) | @Override
method language (line 356) | @Override
method type (line 361) | @Override
method type (line 367) | @Override
method variant (line 373) | @Override
method contentLocation (line 378) | @Override
method cookie (line 383) | @Override
method expires (line 389) | @Override
method lastModified (line 394) | @Override
method location (line 399) | @Override
method tag (line 412) | @Override
method tag (line 417) | @Override
method variants (line 422) | @Override
method variants (line 427) | @Override
method links (line 432) | @Override
method link (line 437) | @Override
method link (line 442) | @Override
FILE: jaxrs-delegates/src/main/java/org/wso2/msf4j/delegates/MSF4JRuntimeDelegate.java
class MSF4JRuntimeDelegate (line 37) | public class MSF4JRuntimeDelegate extends RuntimeDelegate {
method MSF4JRuntimeDelegate (line 41) | public MSF4JRuntimeDelegate() {
method createUriBuilder (line 46) | @Override
method createResponseBuilder (line 51) | @Override
method createVariantListBuilder (line 56) | @Override
method createEndpoint (line 61) | @Override
method createHeaderDelegate (line 67) | @Override
method createLinkBuilder (line 76) | @Override
FILE: jaxrs-delegates/src/main/java/org/wso2/msf4j/delegates/MediaTypeHeaderProvider.java
class MediaTypeHeaderProvider (line 29) | public class MediaTypeHeaderProvider implements HeaderDelegate<MediaType> {
method fromString (line 37) | public MediaType fromString(String mType) {
method toString (line 63) | public String toString(MediaType type) {
FILE: jaxrs-delegates/src/test/java/org/wso2/msf4j/delegates/CookieHeaderProviderTest.java
class CookieHeaderProviderTest (line 27) | public class CookieHeaderProviderTest {
method testFromString (line 29) | @Test
method testFromStringWithExtendedParameters (line 36) | @Test
method testFromStringWithoutCookieString (line 59) | @Test(expectedExceptions = IllegalArgumentException.class, expectedExc...
method testFromStringWithoutName (line 65) | @Test(expectedExceptions = IllegalArgumentException.class)
method testFromStringWithoutValue (line 71) | @Test(expectedExceptions = IllegalArgumentException.class)
method testToString (line 77) | @Test
FILE: jaxrs-delegates/src/test/java/org/wso2/msf4j/delegates/MediaTypeHeaderProviderTest.java
class MediaTypeHeaderProviderTest (line 31) | public class MediaTypeHeaderProviderTest extends Assert {
method testNullValue (line 33) | @Test(expectedExceptions = IllegalArgumentException.class)
method testTypeWithExtendedParameters (line 38) | @Test
method testTypeWithExtendedParametersQuote (line 47) | @Test
method testTypeWithExtendedAndBoundaryParameter (line 55) | @Test
method testSimpleType (line 64) | @Test
method testBadType (line 72) | @Test
method testTypeWithParameters (line 83) | @Test
method testSimpleToString (line 91) | @Test
FILE: jaxrs-delegates/src/test/java/org/wso2/msf4j/models/SampleEntity.java
class SampleEntity (line 25) | public class SampleEntity {
method SampleEntity (line 33) | public SampleEntity(int field1, long field2, String field3, String fie...
method getField1 (line 41) | public int getField1() {
method setField1 (line 45) | public void setField1(int field0) {
method getField2 (line 49) | public long getField2() {
method setField2 (line 53) | public void setField2(long field2) {
method getField3 (line 57) | public String getField3() {
method setField3 (line 61) | public void setField3(String field3) {
method getField4 (line 65) | public String getField4() {
method setField4 (line 69) | public void setField4(String field4) {
method getField5 (line 73) | public String getField5() {
method setField5 (line 77) | public void setField5(String field5) {
FILE: jaxrs-delegates/src/test/java/org/wso2/msf4j/service/ClientTestMicroService.java
class ClientTestMicroService (line 34) | @Path("/test")
method getHello (line 37) | @GET
method postHello (line 43) | @POST
method putHello (line 49) | @PUT
method deleteHello (line 55) | @DELETE
method postSampleEntityJson (line 61) | @POST
FILE: perf-benchmark/Samples/dropwizard/src/main/java/org/wso2/msf4j/perftest/echo/dropwizard/AppStart.java
class AppStart (line 28) | public class AppStart extends Application<Configuration> {
method main (line 30) | public static void main(String[] args) throws Exception {
method run (line 34) | @Override
FILE: perf-benchmark/Samples/dropwizard/src/main/java/org/wso2/msf4j/perftest/echo/dropwizard/EchoService.java
class EchoService (line 34) | @Path("/EchoService")
method echoPost (line 37) | @POST
method fileWrite (line 45) | @POST
FILE: perf-benchmark/Samples/ninja-echo-message/src/main/java/conf/Module.java
class Module (line 25) | @Singleton
method configure (line 28) | protected void configure() {
FILE: perf-benchmark/Samples/ninja-echo-message/src/main/java/conf/Routes.java
class Routes (line 31) | public class Routes implements ApplicationRoutes {
method Routes (line 36) | @Inject
method init (line 42) | @Override
FILE: perf-benchmark/Samples/ninja-echo-message/src/main/java/controllers/ApplicationController.java
class ApplicationController (line 34) | @Singleton
method echo (line 38) | @Path("/echo")
method fileecho (line 44) | @Path("/fileecho")
FILE: perf-benchmark/Samples/ninja-echo-message/src/main/java/util/BodyParserEngineTextPlain.java
class BodyParserEngineTextPlain (line 33) | @Singleton
method invoke (line 38) | @Override
method getContentType (line 58) | @Override
FILE: perf-benchmark/Samples/spark/src/main/java/org/wso2/msf4j/perftest/echo/spark/Application.java
class Application (line 33) | public class Application {
method main (line 34) | public static void main(String[] args) throws Exception {
FILE: perf-benchmark/Samples/springboot/src/main/java/org/wso2/msf4j/perftest/echo/springboot/Application.java
class Application (line 24) | public class Application {
method main (line 26) | public static void main(String[] args) throws Exception {
FILE: perf-benchmark/Samples/springboot/src/main/java/org/wso2/msf4j/perftest/echo/springboot/EchoService.java
class EchoService (line 34) | @Controller
method echo (line 38) | @RequestMapping("/EchoService/echo")
method fileWrite (line 44) | @RequestMapping("/EchoService/fileecho")
FILE: perf-benchmark/Samples/wildfly/src/main/java/org/wso2/msf4j/perftest/echo/wildfly/EchoService.java
class EchoService (line 34) | @Path("/EchoService")
method echoPost (line 37) | @POST
method fileWrite (line 45) | @POST
FILE: perf-benchmark/Samples/wildfly/src/main/java/org/wso2/msf4j/perftest/echo/wildfly/WFApplication.java
class WFApplication (line 27) | @ApplicationPath("app")
FILE: perf-benchmark/Samples/wso2msf4j/src/main/java/org/wso2/msf4j/perftest/echo/wso2msf4j/Application.java
class Application (line 26) | public class Application {
method main (line 28) | public static void main(String[] args) {
FILE: perf-benchmark/Samples/wso2msf4j/src/main/java/org/wso2/msf4j/perftest/echo/wso2msf4j/EchoService.java
class EchoService (line 34) | @Path("/EchoService")
method echo (line 37) | @POST
method fileWrite (line 45) | @POST
FILE: samples/basicauth-security/src/main/java/org/wso2/msf4j/example/Application.java
class Application (line 24) | public class Application {
method Application (line 26) | private Application() {
method main (line 29) | public static void main(String[] args) {
FILE: samples/basicauth-security/src/main/java/org/wso2/msf4j/example/Helloworld.java
class Helloworld (line 26) | @Path("/hello")
method getUser (line 29) | @GET
FILE: samples/basicauth-security/src/main/java/org/wso2/msf4j/example/UsernamePasswordSecurityInterceptor.java
class UsernamePasswordSecurityInterceptor (line 24) | public class UsernamePasswordSecurityInterceptor extends AbstractBasicAu...
method authenticate (line 26) | @Override
FILE: samples/circuitbreaker/src/main/java/org/example/service/Application.java
class Application (line 26) | public class Application {
method main (line 27) | public static void main(String[] args) {
FILE: samples/circuitbreaker/src/main/java/org/example/service/CircuitBreakerCommand.java
class CircuitBreakerCommand (line 27) | public class CircuitBreakerCommand extends HystrixCommand<Stock> {
method CircuitBreakerCommand (line 32) | CircuitBreakerCommand(StockQuoteDatabase db, String symbol) {
method run (line 45) | @Override
method getFallback (line 51) | @Override
method printMetrics (line 60) | private void printMetrics() {
FILE: samples/circuitbreaker/src/main/java/org/example/service/Stock.java
class Stock (line 24) | @SuppressWarnings("unused")
method Stock (line 36) | public Stock() {
method Stock (line 39) | public Stock(String symbol, String name) {
method Stock (line 44) | public Stock(String symbol, String name, double last, double low, doub...
method getSymbol (line 51) | public String getSymbol() {
method setSymbol (line 55) | public void setSymbol(String symbol) {
method setHigh (line 59) | public void setHigh(double high) {
method setLast (line 63) | public void setLast(double last) {
method setLow (line 67) | public void setLow(double low) {
method setName (line 71) | public void setName(String name) {
method getHigh (line 75) | public double getHigh() {
method getLast (line 79) | public double getLast() {
method getLow (line 83) | public double getLow() {
method getName (line 87) | public String getName() {
FILE: samples/circuitbreaker/src/main/java/org/example/service/StockQuoteDatabase.java
class StockQuoteDatabase (line 28) | public class StockQuoteDatabase {
method StockQuoteDatabase (line 39) | public StockQuoteDatabase() {
method getStock (line 45) | public Stock getStock(String symbol) {
method delay (line 62) | private void delay(int millis) {
method getCachedStock (line 69) | public Stock getCachedStock(String symbol) {
FILE: samples/circuitbreaker/src/main/java/org/example/service/StockQuoteService.java
class StockQuoteService (line 32) | @Path("/stockquote")
method getQuote (line 44) | @GET
FILE: samples/fileserver/src/main/java/org/wso2/msf4j/example/Application.java
class Application (line 24) | public class Application {
method main (line 25) | public static void main(String[] args) {
FILE: samples/fileserver/src/main/java/org/wso2/msf4j/example/FileServer.java
class FileServer (line 48) | @Path("/")
method postFile (line 61) | @POST
method getFile (line 75) | @GET
method getFileFromInputStream (line 92) | @GET
method getFileUsingStreamingOutput (line 107) | @GET
class HttpStreamHandlerImpl (line 127) | private static class HttpStreamHandlerImpl implements HttpStreamHandler {
method HttpStreamHandlerImpl (line 131) | public HttpStreamHandlerImpl(String fileName) throws FileNotFoundExc...
method init (line 138) | @Override
method end (line 143) | @Override
method chunk (line 150) | @Override
method error (line 158) | @Override
FILE: samples/formparam/src/main/java/org/wso2/msf4j/example/Application.java
class Application (line 24) | public class Application {
method main (line 25) | public static void main(String[] args) {
FILE: samples/formparam/src/main/java/org/wso2/msf4j/example/FormService.java
class FormService (line 51) | @Path("/formService")
method simpleFormWithFormParam (line 56) | @POST
method simpleFormWithFormParamAndList (line 63) | @POST
method simpleFormWithFormParamAndSet (line 70) | @POST
method simpleFormWithFormParamAndSortedSet (line 77) | @POST
method simpleForm (line 84) | @POST
method simpleFormWithList (line 91) | @POST
method simpleFormStreaming (line 98) | @POST
method complexForm (line 129) | @POST
method multipleFiles (line 148) | @POST
method multipleFiles (line 167) | @POST
FILE: samples/formparam/src/main/java/org/wso2/msf4j/example/SampleClient.java
class SampleClient (line 40) | public class SampleClient {
method main (line 43) | public static void main(String[] args) throws IOException {
method createMessageForSimpleFormStreaming (line 71) | private static HttpEntity createMessageForSimpleFormStreaming() {
method createMessageForComplexForm (line 84) | private static HttpEntity createMessageForComplexForm() {
method createMessageForMultipleFiles (line 102) | private static HttpEntity createMessageForMultipleFiles() {
FILE: samples/formparam/src/main/java/org/wso2/msf4j/example/bean/Company.java
class Company (line 22) | public class Company {
method getType (line 25) | public String getType() {
method setType (line 29) | public void setType(String type) {
method toString (line 33) | @Override
FILE: samples/formparam/src/main/java/org/wso2/msf4j/example/bean/Person.java
class Person (line 22) | public class Person {
method getAge (line 26) | public int getAge() {
method setAge (line 30) | public void setAge(int age) {
method getName (line 34) | public String getName() {
method setName (line 38) | public void setName(String name) {
method toString (line 42) | @Override
FILE: samples/helloworld/src/main/java/org/wso2/msf4j/example/Application.java
class Application (line 24) | public class Application {
method main (line 25) | public static void main(String[] args) {
FILE: samples/helloworld/src/main/java/org/wso2/msf4j/example/HelloService.java
class HelloService (line 26) | @Path("/hello")
method hello (line 29) | @GET
FILE: samples/http-monitoring/src/main/java/org/wso2/msf4j/sample/httpmonitoring/Application.java
class Application (line 28) | public class Application {
method main (line 32) | public static void main(String[] args) {
FILE: samples/http-monitoring/src/main/java/org/wso2/msf4j/sample/httpmonitoring/service/Student.java
class Student (line 21) | public class Student {
method Student (line 31) | public Student() {
method getNic (line 34) | public String getNic() {
method setNic (line 38) | public void setNic(String nic) {
method getFirstName (line 42) | public String getFirstName() {
method setFirstName (line 46) | public void setFirstName(String firstName) {
method getLastName (line 50) | public String getLastName() {
method setLastName (line 54) | public void setLastName(String lastName) {
method getAge (line 58) | public int getAge() {
method setAge (line 62) | public void setAge(int age) {
FILE: samples/http-monitoring/src/main/java/org/wso2/msf4j/sample/httpmonitoring/service/StudentService.java
class StudentService (line 35) | @Path("/student")
method StudentService (line 41) | public StudentService() {
method getStudent (line 50) | @GET
method addStudent (line 58) | @POST
method getAll (line 65) | @GET
FILE: samples/http-session/src/main/java/org/wso2/msf4j/example/Application.java
class Application (line 27) | public class Application {
method main (line 28) | public static void main(String[] args) {
FILE: samples/http-session/src/main/java/org/wso2/msf4j/example/CounterService.java
class CounterService (line 31) | @Path("/")
method count (line 36) | @GET
FILE: samples/interceptor/deployable-jar-interceptor-service/src/main/java/org/wso2/msf4j/samples/deployablejarinterceptorservice/InterceptorService.java
class InterceptorService (line 42) | @Path("/interceptor-service")
method InterceptorService (line 47) | public InterceptorService() {
method getServiceName (line 65) | @GET
method addInterceptorsToRegistry (line 79) | private void addInterceptorsToRegistry(MicroservicesRegistryImpl micro...
FILE: samples/interceptor/deployable-jar-interceptor-service/src/main/java/org/wso2/msf4j/samples/deployablejarinterceptorservice/interceptors/HTTPRequestLogger.java
class HTTPRequestLogger (line 29) | public class HTTPRequestLogger implements RequestInterceptor {
method interceptRequest (line 33) | @Override
FILE: samples/interceptor/deployable-jar-interceptor-service/src/main/java/org/wso2/msf4j/samples/deployablejarinterceptorservice/interceptors/HTTPResponseLogger.java
class HTTPResponseLogger (line 29) | public class HTTPResponseLogger implements ResponseInterceptor {
method interceptResponse (line 33) | @Override
FILE: samples/interceptor/deployable-jar-interceptor-service/src/main/java/org/wso2/msf4j/samples/deployablejarinterceptorservice/interceptors/LogTextRequestInterceptor.java
class LogTextRequestInterceptor (line 29) | public class LogTextRequestInterceptor implements RequestInterceptor {
method interceptRequest (line 33) | @Override
FILE: samples/interceptor/deployable-jar-interceptor-service/src/main/java/org/wso2/msf4j/samples/deployablejarinterceptorservice/interceptors/LogTextResponseInterceptor.java
class LogTextResponseInterceptor (line 29) | public class LogTextResponseInterceptor implements ResponseInterceptor {
method interceptResponse (line 33) | @Override
FILE: samples/interceptor/deployable-jar-interceptor-service/src/main/java/org/wso2/msf4j/samples/deployablejarinterceptorservice/interceptors/PropertyAddRequestInterceptor.java
class PropertyAddRequestInterceptor (line 29) | public class PropertyAddRequestInterceptor implements RequestInterceptor {
method interceptRequest (line 33) | @Override
FILE: samples/interceptor/deployable-jar-interceptor-service/src/main/java/org/wso2/msf4j/samples/deployablejarinterceptorservice/interceptors/PropertyGetResponseInterceptor.java
class PropertyGetResponseInterceptor (line 29) | public class PropertyGetResponseInterceptor implements ResponseIntercept...
method interceptResponse (line 33) | @Override
FILE: samples/interceptor/fatjar-interceptor-service/src/main/java/org/wso2/msf4j/samples/fatjarinterceptorservice/Application.java
class Application (line 29) | public class Application {
method main (line 30) | public static void main(String[] args) {
FILE: samples/interceptor/fatjar-interceptor-service/src/main/java/org/wso2/msf4j/samples/fatjarinterceptorservice/InterceptorService.java
class InterceptorService (line 35) | @Path("/interceptor-service")
method getServiceName (line 46) | @GET
FILE: samples/interceptor/interceptor-common/src/main/java/org/wso2/msf4j/samples/interceptor/common/HTTPRequestLogger.java
class HTTPRequestLogger (line 30) | public class HTTPRequestLogger implements RequestInterceptor {
method interceptRequest (line 34) | @Override
FILE: samples/interceptor/interceptor-common/src/main/java/org/wso2/msf4j/samples/interceptor/common/HTTPResponseLogger.java
class HTTPResponseLogger (line 30) | public class HTTPResponseLogger implements ResponseInterceptor {
method interceptResponse (line 34) | @Override
FILE: samples/interceptor/interceptor-common/src/main/java/org/wso2/msf4j/samples/interceptor/common/LogTextRequestInterceptor.java
class LogTextRequestInterceptor (line 29) | public class LogTextRequestInterceptor implements RequestInterceptor {
method interceptRequest (line 33) | @Override
FILE: samples/interceptor/interceptor-common/src/main/java/org/wso2/msf4j/samples/interceptor/common/LogTextResponseInterceptor.java
class LogTextResponseInterceptor (line 29) | public class LogTextResponseInterceptor implements ResponseInterceptor {
method interceptResponse (line 33) | @Override
FILE: samples/interceptor/interceptor-common/src/main/java/org/wso2/msf4j/samples/interceptor/common/PropertyAddRequestInterceptor.java
class PropertyAddRequestInterceptor (line 29) | public class PropertyAddRequestInterceptor implements RequestInterceptor {
method interceptRequest (line 33) | @Override
FILE: samples/interceptor/interceptor-common/src/main/java/org/wso2/msf4j/samples/interceptor/common/PropertyGetResponseInterceptor.java
class PropertyGetResponseInterceptor (line 29) | public class PropertyGetResponseInterceptor implements ResponseIntercept...
method interceptResponse (line 33) | @Override
FILE: samples/interceptor/osgi-interceptor-service/src/main/java/org/wso2/msf4j/samples/osgiinterceptorservice/InterceptorService.java
class InterceptorService (line 37) | @Component(
method getServiceName (line 53) | @GET
FILE: samples/interceptor/osgi-interceptor-service/src/main/java/org/wso2/msf4j/samples/osgiinterceptorservice/config/SampleInterceptorConfig.java
class SampleInterceptorConfig (line 32) | @Component(
method activate (line 39) | @Activate
FILE: samples/interceptor/spring-fatjar-interceptor-service/src/main/java/org/wso2/msf4j/samples/springfatjarinterceptorservice/Application.java
class Application (line 32) | public class Application {
method main (line 33) | public static void main(String[] args) {
FILE: samples/interceptor/spring-fatjar-interceptor-service/src/main/java/org/wso2/msf4j/samples/springfatjarinterceptorservice/CustomerService.java
class CustomerService (line 26) | @Component
method sayHello (line 29) | public String sayHello(String name) {
FILE: samples/interceptor/spring-fatjar-interceptor-service/src/main/java/org/wso2/msf4j/samples/springfatjarinterceptorservice/ReceptionService.java
class ReceptionService (line 38) | @Component
method sayHello (line 52) | @GET
FILE: samples/jpa/src/main/java/org/wso2/msf4j/example/Application.java
class Application (line 28) | public class Application {
method main (line 29) | public static void main(String[] args) {
method getUserRepository (line 35) | public static UserRepository getUserRepository() {
FILE: samples/jpa/src/main/java/org/wso2/msf4j/example/dao/AbstractRepository.java
class AbstractRepository (line 36) | public abstract class AbstractRepository<T> {
method AbstractRepository (line 40) | public AbstractRepository(EntityManagerFactory emf) {
method getEntityManager (line 44) | protected EntityManager getEntityManager() {
method create (line 49) | protected void create(T t) {
method remove (line 57) | protected void remove(T t) {
method find (line 65) | protected User find(long id) {
method findAll (line 69) | protected List<T> findAll(Class<T> clazz) {
FILE: samples/jpa/src/main/java/org/wso2/msf4j/example/dao/UserRepository.java
class UserRepository (line 31) | public class UserRepository extends AbstractRepository<User> {
method UserRepository (line 33) | public UserRepository(EntityManagerFactory emf) {
method createUser (line 37) | public void createUser(User user) {
method removeUser (line 41) | public void removeUser(User user) {
method findUser (line 45) | public User findUser(long id) {
method findUsers (line 49) | public List<User> findUsers() {
FILE: samples/jpa/src/main/java/org/wso2/msf4j/example/model/User.java
class User (line 32) | @Entity
method User (line 46) | public User() {
method User (line 49) | public User(long id, String firstname, String lastname) {
method User (line 55) | public User(String firstname, String lastname) {
method getId (line 60) | public Long getId() {
method setId (line 64) | public void setId(Long id) {
method getFirstName (line 68) | public String getFirstName() {
method setFirstName (line 72) | public void setFirstName(String firstName) {
method getLastName (line 76) | public String getLastName() {
method setLastName (line 80) | public void setLastName(String lastName) {
method toString (line 84) | @Override
FILE: samples/jpa/src/main/java/org/wso2/msf4j/example/resource/UserResource.java
class UserResource (line 34) | @Path("/users")
method UserResource (line 39) | public UserResource(UserRepository users) {
method addUser (line 43) | @POST
method getUser (line 52) | @GET
method getUsers (line 62) | @GET
FILE: samples/jwt-claims/JWTAccessTokenBuilder/src/main/java/com/wso2/jwt/token/builder/Constants.java
class Constants (line 24) | public class Constants {
FILE: samples/jwt-claims/JWTAccessTokenBuilder/src/main/java/com/wso2/jwt/token/builder/JWTAccessTokenBuilder.java
class JWTAccessTokenBuilder (line 58) | public class JWTAccessTokenBuilder extends OauthTokenIssuerImpl {
method JWTAccessTokenBuilder (line 82) | public JWTAccessTokenBuilder() throws IdentityOAuth2Exception {
method accessToken (line 91) | public String accessToken(OAuthTokenReqMessageContext oAuthTokenReqMes...
method accessToken (line 108) | public String accessToken(OAuthAuthzReqMessageContext oAuthAuthzReqMes...
method buildIDToken (line 131) | protected String buildIDToken(OAuthTokenReqMessageContext request)
method buildIDToken (line 166) | protected String buildIDToken(OAuthAuthzReqMessageContext request)
method signJWTWithRSA (line 203) | protected String signJWTWithRSA(JWTClaimsSet jwtClaimsSet, OAuthTokenR...
method signJWTWithRSA (line 250) | protected String signJWTWithRSA(JWTClaimsSet jwtClaimsSet, OAuthAuthzR...
method signJWT (line 306) | protected String signJWT(JWTClaimsSet jwtClaimsSet, OAuthTokenReqMessa...
method signJWT (line 322) | protected String signJWT(JWTClaimsSet jwtClaimsSet, OAuthAuthzReqMessa...
method mapSignatureAlgorithm (line 348) | protected JWSAlgorithm mapSignatureAlgorithm(String signatureAlgorithm...
method addUserClaims (line 374) | private void addUserClaims(JWTClaimsSet jwtClaimsSet, AuthenticatedUse...
FILE: samples/jwt-claims/JWTAccessTokenBuilder/src/main/java/com/wso2/jwt/token/builder/internal/JWTAccessTokenBuilderDSComponent.java
class JWTAccessTokenBuilderDSComponent (line 38) | public class JWTAccessTokenBuilderDSComponent {
method setStaticRealmService (line 44) | private static synchronized void setStaticRealmService(RealmService re...
method getRealmService (line 48) | public static RealmService getRealmService() {
method setRealmService (line 52) | protected void setRealmService(RealmService realmService) {
method setStaticRegistryService (line 60) | private static synchronized void setStaticRegistryService(RegistryServ...
method getRegistryService (line 64) | public static RegistryService getRegistryService() {
method setRegistryService (line 68) | protected void setRegistryService(RegistryService registryService) {
method activate (line 76) | protected void activate(ComponentContext ctxt) {
method deactivate (line 84) | protected void deactivate(ComponentContext ctxt) {
method unsetRealmService (line 90) | protected void unsetRealmService(RealmService realmService) {
method unsetRegistryService (line 98) | protected void unsetRegistryService(RegistryService registryService) {
FILE: samples/jwt-claims/jwt-sample/src/main/java/org/wso2/msf4j/example/Application.java
class Application (line 25) | public class Application {
method Application (line 27) | private Application() {
method main (line 30) | public static void main(String[] args) {
FILE: samples/jwt-claims/jwt-sample/src/main/java/org/wso2/msf4j/example/CustomJWTClaimsInterceptor.java
class CustomJWTClaimsInterceptor (line 30) | public class CustomJWTClaimsInterceptor implements RequestInterceptor {
method interceptRequest (line 35) | @Override
FILE: samples/jwt-claims/jwt-sample/src/main/java/org/wso2/msf4j/example/Helloworld.java
class Helloworld (line 26) | @Path("/hello")
method getUser (line 29) | @GET
FILE: samples/jwt-claims/sso-agent-for-jwt-webapp/src/main/java/org/wso2/sample/is/sso/agent/ForwardingServlet.java
class ForwardingServlet (line 30) | public class ForwardingServlet extends HttpServlet {
method service (line 34) | protected vo
Condensed preview — 937 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,881K chars).
[
{
"path": ".gitignore",
"chars": 468,
"preview": "*.class\n\n# Mobile Tools for Java (J2ME)\n.mtj.tmp/\n\n# Package Files #\n*.jar\n*.war\n*.ear\n\n# virtual machine crash logs, se"
},
{
"path": "LICENSE",
"chars": 11358,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 18617,
"preview": "[Build status:](https://wso2.org/jenkins/job/products/job/msf4j/) \n\nThis directory contains the files related to publishing "
},
{
"path": "analytics/das-setup/setup.sh",
"chars": 1972,
"preview": "#!/bin/bash\n# Copyright 2015 WSO2 Inc. (http://wso2.org)\n#\n# Licensed under the Apache License, Version 2.0 (the \"Licens"
},
{
"path": "analytics/msf4j-analytics/pom.xml",
"chars": 10932,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/AnalyticUtils.java",
"chars": 3629,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitored.java",
"chars": 1150,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringDataPublisher.java",
"chars": 7304,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringEvent.java",
"chars": 4338,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/HTTPMonitoringInterceptor.java",
"chars": 9181,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/HTTPMonitoringConfigBuilder.java",
"chars": 1616,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/model/DasConfig.java",
"chars": 2478,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/httpmonitoring/config/model/HTTPMonitoringConfig.java",
"chars": 1485,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/AnalyticsSC.java",
"chars": 2440,
"preview": "/*\n* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/DataHolder.java",
"chars": 1468,
"preview": "/*\n* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/internal/InterceptorCapabilityProvider.java",
"chars": 1731,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/Metrics.java",
"chars": 3702,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/MetricsComponent.java",
"chars": 4285,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/metrics/MetricsInterceptor.java",
"chars": 8172,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/java/org/wso2/msf4j/analytics/tracing/MSF4JTracingInterceptor.java",
"chars": 4650,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics/src/main/resources/http-monitoring.yml",
"chars": 1089,
"preview": "# Copyright 2016 WSO2 Inc. (http://wso2.org)\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you m"
},
{
"path": "analytics/msf4j-analytics/src/test/java/org/wso2/msf4j/analytics/HTTPMonitoringConfigTest.java",
"chars": 2325,
"preview": "/*\n * Copyright 2016 WSO2 Inc. (http://wso2.org)\n * \n * Licensed under the Apache License, Version 2.0 (the \"License\");\n"
},
{
"path": "analytics/msf4j-analytics/src/test/resources/deployment.yaml",
"chars": 1266,
"preview": "# Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved\n#\n# Licensed under the Apache License, Ver"
},
{
"path": "analytics/msf4j-analytics-common/pom.xml",
"chars": 9318,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/MSF4JClientTracingFilter.java",
"chars": 4912,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TraceEvent.java",
"chars": 3091,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingConstants.java",
"chars": 1466,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingEventTracker.java",
"chars": 1266,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/msf4j-analytics-common/src/main/java/org/wso2/msf4j/analytics/common/tracing/TracingUtil.java",
"chars": 2277,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/build.xml",
"chars": 1118,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/artifacts.xml",
"chars": 1281,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_receiver_1.0.0/artifact.xml",
"chars": 850,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_receiver_1.0.0/http_event_receiver.xml",
"chars": 1006,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_store_1.0.0/artifact.xml",
"chars": 873,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_store_1.0.0/org_wso2_msf4j_analytics_httpmonitoring.xml",
"chars": 5994,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rig"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_stream_1.0.0/artifact.xml",
"chars": 873,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/http_event_stream_1.0.0/org.wso2.msf4j.analytics.httpmonitoring_1.0.0.json",
"chars": 1360,
"preview": "{\n \"name\": \"org.wso2.msf4j.analytics.httpmonitoring\",\n \"version\": \"1.0.0\",\n \"nickName\": \"msf4j_http_monitoring\",\n \"d"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/spark_script_1.0.0/artifact.xml",
"chars": 843,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/msf4j_http_monitoring_capp_source/msf4j_http_monitoring_capp/spark_script_1.0.0/http_event_script.xml",
"chars": 4747,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Dashboard_1.0.0/artifact.xml",
"chars": 863,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved."
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Dashboard_1.0.0/msf4j-message-tracing.json",
"chars": 2668,
"preview": "{\n \"id\": \"msf4j-message-tracing\",\n \"title\": \"MSF4J Message Tracing\",\n \"description\": \"\",\n \"permissions\": {\n \"view"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Eventreceiver_1.0.0/artifact.xml",
"chars": 857,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved."
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Eventreceiver_1.0.0/msf4jtracereceiver.xml",
"chars": 2386,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved."
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Eventstore_1.0.0/artifact.xml",
"chars": 855,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved."
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Eventstore_1.0.0/msf4j-tracing.xml",
"chars": 3234,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Eventstream_1.0.0/artifact.xml",
"chars": 855,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved."
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/Eventstream_1.0.0/msf4j-tracing_1.0.0.json",
"chars": 724,
"preview": "{\n \"name\": \"msf4j-tracing\",\n \"version\": \"1.0.0\",\n \"nickName\": \"\",\n \"description\": \"\",\n \"payloadData\": [\n {\n "
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/artifact.xml",
"chars": 856,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved."
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/css/main.css",
"chars": 4051,
"preview": "body {\n display: block;\n font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n font-size: 14px;\n ove"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/gadget.json",
"chars": 233,
"preview": "{\n \"id\": \"msf4j-message-tracing\",\n \"title\": \"MSF4J Message Tracing\",\n \"type\": \"gadget\",\n \"thumbnail\": \"store"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/index.xml",
"chars": 9949,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<Module>\n <ModulePrefs title=\"MSF4J Message Tracing\" height=\"700\" description"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/js/libs/jquery.base64.js",
"chars": 4498,
"preview": "/*!\n * jquery.base64.js 0.1 - https://github.com/yckart/jquery.base64.js\n * Makes Base64 en & -decoding simpler as it is"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/GadgetMSF4JTracing_1.0.0/msf4j-tracing/js/main.js",
"chars": 21126,
"preview": "gadgets.util.registerOnLoadHandler(function () {\n gadgets.window.adjustHeight();\n});\n\n$(document).ready(function () {"
},
{
"path": "analytics/wso2das-tracing-capp/capp-content/artifacts.xml",
"chars": 1459,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved."
},
{
"path": "analytics/wso2das-tracing-capp/pom.xml",
"chars": 3659,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/wso2das-tracing-capp/zip.xml",
"chars": 1343,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/zipkin-tracing/pom.xml",
"chars": 9461,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/MSF4JZipkinTracingInterceptor.java",
"chars": 3884,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientRequest.java",
"chars": 1665,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientResponse.java",
"chars": 1160,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerRequest.java",
"chars": 1378,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/zipkin-tracing/src/main/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerResponse.java",
"chars": 1163,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientRequestTest.java",
"chars": 1930,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License,"
},
{
"path": "analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpClientResponseTest.java",
"chars": 1475,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License,"
},
{
"path": "analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerRequestTest.java",
"chars": 2242,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License,"
},
{
"path": "analytics/zipkin-tracing/src/test/java/org/wso2/msf4j/analytics/zipkintracing/TraceableHttpServerResponseTest.java",
"chars": 1844,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License,"
},
{
"path": "analytics/zipkin-tracing/src/test/resources/testng.xml",
"chars": 1296,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\nCopyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\nLic"
},
{
"path": "archetypes/README.md",
"chars": 2238,
"preview": "#Creating a Microservice using the msf4j-microservice Maven archetype\n\nA Microservice based on WSO2 Microservices Framew"
},
{
"path": "archetypes/msf4j-microservice/pom.xml",
"chars": 2180,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "archetypes/msf4j-microservice/src/main/resources/META-INF/maven/archetype-metadata.xml",
"chars": 2010,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n\n "
},
{
"path": "archetypes/msf4j-microservice/src/main/resources/archetype-resources/pom.xml",
"chars": 1657,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "archetypes/msf4j-microservice/src/main/resources/archetype-resources/src/main/java/Application.java",
"chars": 946,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "archetypes/msf4j-microservice/src/main/resources/archetype-resources/src/main/java/__serviceClass__.java",
"chars": 1716,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/README.md",
"chars": 107,
"preview": "# MSF4J Client\n\nMSF4J client which allow making HTTP calls to other microservices as well as external APIs."
},
{
"path": "client/pom.xml",
"chars": 5547,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/ApacheHttpClient.java",
"chars": 9227,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/FeginZipkinTracingClient.java",
"chars": 3984,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/FeignClientWrapper.java",
"chars": 1145,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/FeignTracingClient.java",
"chars": 5376,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/MSF4JClient.java",
"chars": 10035,
"preview": "/*\n * Copyright (c) 2016 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/ModelUtils.java",
"chars": 987,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/codec/DefaultErrorDecoder.java",
"chars": 3886,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/codec/DefaultRestErrorResponse.java",
"chars": 1485,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/codec/MSF4JDecoder.java",
"chars": 1944,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/codec/MSF4JJacksonDecoder.java",
"chars": 2683,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/codec/RestErrorResponseMapper.java",
"chars": 1262,
"preview": "/*\n * Copyright (c) 2005-2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/src/main/java/org/wso2/msf4j/client/exception/RestServiceException.java",
"chars": 935,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/ClientTest.java",
"chars": 5877,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/ModelUtils.java",
"chars": 992,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/client/api/CustomerServiceAPI.java",
"chars": 1147,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/client/api/InvoiceServiceAPI.java",
"chars": 1042,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/client/exception/CustomerNotFoundResponseMapper.java",
"chars": 1267,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/client/exception/CustomerNotFoundRestServiceException.java",
"chars": 919,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/client/exception/InvoiceNotFoundResponseMapper.java",
"chars": 1262,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/client/exception/InvoiceNotFoundRestServiceException.java",
"chars": 917,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/CustomerNotFoundException.java",
"chars": 1460,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/CustomerNotFoundMapper.java",
"chars": 1340,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/EntityNotFoundException.java",
"chars": 1413,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/EntityNotFoundMapper.java",
"chars": 1189,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/GenericServerErrorException.java",
"chars": 1426,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/GenericServerErrorMapper.java",
"chars": 1362,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/InvoiceNotFoundException.java",
"chars": 1452,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/exception/InvoiceNotFoundMapper.java",
"chars": 1336,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/model/Customer.java",
"chars": 1916,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/model/Invoice.java",
"chars": 1704,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/model/InvoiceReport.java",
"chars": 1910,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/model/ServiceErrorResponse.java",
"chars": 1539,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/service/CustomerService.java",
"chars": 2109,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/service/InvoiceService.java",
"chars": 2100,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/java/org/wso2/msf4j/client/test/service/ReportService.java",
"chars": 4757,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "client/test/resources/testng.xml",
"chars": 937,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\nCopyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n\nLi"
},
{
"path": "core/deployment.yaml",
"chars": 812,
"preview": "# Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved\n#\n# Licensed under the Apache License, Ver"
},
{
"path": "core/pom.xml",
"chars": 16316,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!--\n ~ Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n ~"
},
{
"path": "core/src/main/java/org/wso2/msf4j/AbstractSessionManager.java",
"chars": 4256,
"preview": "/*\n * Copyright (c) 2016 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/DefaultSessionManager.java",
"chars": 1727,
"preview": "/*\n * Copyright (c) 2016 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/HttpStreamHandler.java",
"chars": 1841,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/HttpStreamer.java",
"chars": 1189,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/Interceptor.java",
"chars": 4032,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/Microservice.java",
"chars": 771,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/MicroservicesRegistry.java",
"chars": 4256,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/MicroservicesRunner.java",
"chars": 16273,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/MicroservicesServer.java",
"chars": 1290,
"preview": "/*\n * Copyright (c) 2017 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/PersistentSessionManager.java",
"chars": 3765,
"preview": "/*\n * Copyright (c) 2016 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/Request.java",
"chars": 8149,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License,"
},
{
"path": "core/src/main/java/org/wso2/msf4j/Response.java",
"chars": 9311,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/ServiceMethodInfo.java",
"chars": 1942,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/Session.java",
"chars": 3267,
"preview": "/*\n * Copyright (c) 2016 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/SessionManager.java",
"chars": 2827,
"preview": "/*\n * Copyright (c) 2016 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/SwaggerService.java",
"chars": 800,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/beanconversion/BeanConversionException.java",
"chars": 987,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/beanconversion/MediaTypeConverter.java",
"chars": 3878,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/config/MSF4JConfig.java",
"chars": 1514,
"preview": "/*\n* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/exception/InterceptorException.java",
"chars": 938,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/exception/OSGiDeclarativeServiceException.java",
"chars": 1111,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/FileInfo.java",
"chars": 1216,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/FormDataParam.java",
"chars": 1400,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/FormItem.java",
"chars": 4864,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/FormParamIterator.java",
"chars": 16533,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/MultipartStream.java",
"chars": 27459,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/ParameterParser.java",
"chars": 10056,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/RequestContext.java",
"chars": 1596,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/exception/FormUploadException.java",
"chars": 2868,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/exception/InvalidContentTypeException.java",
"chars": 1553,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/exception/InvalidFileNameException.java",
"chars": 1961,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/Closeable.java",
"chars": 1169,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/FormItemHeader.java",
"chars": 2942,
"preview": "\n/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License,"
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/StreamUtil.java",
"chars": 7170,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/mime/Base64Decoder.java",
"chars": 6001,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/mime/MimeUtility.java",
"chars": 10678,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/mime/ParseException.java",
"chars": 1197,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/mime/QuotedPrintableDecoder.java",
"chars": 3976,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/mime/package-info.java",
"chars": 853,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/formparam/util/package-info.java",
"chars": 840,
"preview": "/*\n* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/interceptor/InterceptorExecutor.java",
"chars": 14736,
"preview": "/*\n* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* WSO2 Inc. licenses this file to you "
},
{
"path": "core/src/main/java/org/wso2/msf4j/interceptor/OSGiInterceptorConfig.java",
"chars": 2598,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/interceptor/RequestInterceptor.java",
"chars": 3019,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/interceptor/ResponseInterceptor.java",
"chars": 2982,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/interceptor/annotation/RequestInterceptor.java",
"chars": 1254,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/interceptor/annotation/ResponseInterceptor.java",
"chars": 1259,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/ClassComparator.java",
"chars": 1250,
"preview": "/*\n * Copyright (c) 2005-2014, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/DataHolder.java",
"chars": 1761,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/HttpConnectorPortBindingListener.java",
"chars": 1564,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/HttpHeadersImpl.java",
"chars": 7802,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MSF4JConstants.java",
"chars": 1402,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MSF4JHttpConnectorListener.java",
"chars": 13234,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MSF4JThreadFactory.java",
"chars": 1247,
"preview": "/*\n* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MSF4JWSConnectorListener.java",
"chars": 20197,
"preview": "/*\n* Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n*\n* Licensed under the Apache License, Ver"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MicroservicesLCException.java",
"chars": 914,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MicroservicesRegistryImpl.java",
"chars": 10693,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MicroservicesServerActivator.java",
"chars": 1104,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MicroservicesServerImpl.java",
"chars": 1441,
"preview": "/*\n * Copyright (c) 2017 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/MicroservicesServerSC.java",
"chars": 26387,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/beanconversion/BeanConverter.java",
"chars": 2095,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/beanconversion/JsonConverter.java",
"chars": 3723,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/beanconversion/TextPlainConverter.java",
"chars": 2457,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/beanconversion/XmlConverter.java",
"chars": 4044,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/entitywriter/EntityWriter.java",
"chars": 1761,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/entitywriter/EntityWriterRegistry.java",
"chars": 2119,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/entitywriter/FileEntityWriter.java",
"chars": 3472,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/entitywriter/InputStreamEntityWriter.java",
"chars": 3180,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/entitywriter/ObjectEntityWriter.java",
"chars": 2472,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/entitywriter/StreamingOutputEntityWriter.java",
"chars": 2488,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/mime/MimeMapper.java",
"chars": 2078,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/mime/MimeMappingException.java",
"chars": 1089,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/HandlerException.java",
"chars": 1630,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/HttpMethodInfo.java",
"chars": 20596,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/HttpMethodInfoBuilder.java",
"chars": 3127,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/HttpResourceModel.java",
"chars": 17314,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/HttpResourceModelProcessor.java",
"chars": 22082,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/ImmutablePair.java",
"chars": 3509,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/MicroserviceMetadata.java",
"chars": 13560,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/ParamConvertUtils.java",
"chars": 15249,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/PatternPathRouter.java",
"chars": 9486,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/SubresourceKey.java",
"chars": 2103,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/Util.java",
"chars": 2928,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * Licensed under the Apache License, "
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/router/package-info.java",
"chars": 2728,
"preview": "/*\n * Copyright (c) 2016, WSO2 Inc. (http://wso2.com) All Rights Reserved.\n *\n * Licensed under the Apache License, Vers"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/session/SessionIdGenerator.java",
"chars": 6503,
"preview": "/*\n * Copyright (c) 2016 WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to yo"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/websocket/CloseCodeImpl.java",
"chars": 1185,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
},
{
"path": "core/src/main/java/org/wso2/msf4j/internal/websocket/EndpointDispatcher.java",
"chars": 6966,
"preview": "/*\n * Copyright (c) 2017, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.\n *\n * WSO2 Inc. licenses this file to y"
}
]
// ... and 737 more files (download for full content)
About this extraction
This page contains the full source code of the wso2/msf4j GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 937 files (3.4 MB), approximately 965.0k tokens, and a symbol index with 3248 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.