Release Notes

    Release Notes - Apache ServiceComb - Version java-chassis-1.0.0

Bug

  • [SCB-651] - QPS rate limit bug
  • [SCB-662] - Using cse/servicecomb duplicate key will get list of values
  • [SCB-666] - Test failure on system that have rotate option set in /etc/resolv.conf
  • [SCB-696] - [AccessLog] If nginx send requests via short-lived connections, %v will print "0.0.0.0"
  • [SCB-699] - add schemaIds field in register.yaml when mock the Local sevice-center
  • [SCB-703] - When consumer invoke void type method in RPC style, an exception is thrown
  • [SCB-705] - When consumer invoke an unregistered provider, it will never find this provider even the provider is registered later
  • [SCB-753] - NPE when query not exists service
  • [SCB-754] - Check null invocation in AbstractRestInvocation to avoid unexpected NPE
  • [SCB-759] - Fix ServiceComb version error
  • [SCB-772] - Java Chassis::Handlers::Loadbalance test failed
  • [SCB-773] - Java Chassis::Core test failed

New Feature

  • [SCB-616] - Make access log mechanism extensible
  • [SCB-640] - Add black/white list support based on public key handler
  • [SCB-679] - Support Cross-Origin Resource Sharing (CORS)
  • [SCB-708] - Support assembling query param into Object parameter(in Spring MVC developing style)
  • [SCB-752] - User can switch off outputting merged log4j property file
  • [SCB-760] - provide a way to invoke service with full path

Improvement

  • [SCB-194] - Improve component-scan setting
  • [SCB-661] - Logs improvement to give better information
  • [SCB-671] - Duplicate cse.xxx to servicecomb.xxx to work better in future
  • [SCB-684] - Following swagger conventions
  • [SCB-685] - Service comb chassis must support default values
  • [SCB-697] - Service comb chassis must support JAX-RS @DefaultValue
  • [SCB-700] - Check server status when choose an available server
  • [SCB-701] - RequestBody(required = false) and when requestBody is null then exception observed
  • [SCB-702] - Deleted unwanted json-lib maven dependency for foundation-config
  • [SCB-706] - refactor loadbalance filters logic to support invocation based filter
  • [SCB-712] - Do not register service path to service center when not necessary
  • [SCB-713] - @DefaulValue should be set only when input param is null
  • [SCB-715] - Working in thread that do not have context class loader
  • [SCB-727] - Java Chassis-Local generated schema and service center schema are different while registering the service then print the difference content
  • [SCB-750] - Dependency management is incomplete in Saga and Java-Chassis
  • [SCB-755] - [SCB-755] 755 Duplicate copy cse config to Servicecomb config
  • [SCB-763] - Simplify Dynamic Config (Apollo) Integration Test in Java Chassis

Wish

  • [SCB-746] - Update Chassis from m1 to m2 in start.servicecomb.io

Task

  • [SCB-506] - Report the service governance event
  • [SCB-693] - registry microservice failed if get host address failed
  • [SCB-725] - support get main class package when run with "java -jar xxx.jar"
  • [SCB-726] - edge support convert from form-data or x-www-form-urlencoded to json automatically
  • [SCB-728] - add decrypt/signature/... to edge demo
  • [SCB-729] - check if instance cache equals to SC
  • [SCB-733] - open handlerContext for business logic, and add a new name: localContext
  • [SCB-738] - delete microservice from MicroserviceManager after it not exist in SC
  • [SCB-762] - resolve eclipse compile warnings
    Release Notes - Apache ServiceComb - Version java-chassis-1.0.0-m2

Sub-task

  • [SCB-137] - Add new dimension of transport way for all Consumer/Producer
  • [SCB-196] - Add metrics for each consumer/provider handler
  • [SCB-203] - servlet rest support file upload
  • [SCB-252] - Metrics support overwatch Integration
  • [SCB-370] - Metrics timer (like latency) output precision must to nano level not milli level
  • [SCB-383] - metrics subscribe invocation life event and do statistics
  • [SCB-384] - provide invocation performance log publisher
  • [SCB-385] - metrics publisher switch to new mechanism
  • [SCB-422] - add executor metrics, not just queue size
  • [SCB-440] - Provide Maven Archetype of business-service-pojo
  • [SCB-441] - Provide Maven Archetype of business-service-jaxrs
  • [SCB-442] - Provide Maven Archetype of business-service-springmvc
  • [SCB-445] - delete old metrics mechanism
  • [SCB-446] - metrics-prometheus switch to new mechanism
  • [SCB-450] - documents for metrics initializer/publisher, and how to extend
  • [SCB-462] - cloud eye publisher switch to new mechanism
  • [SCB-470] - Provide Maven Archetype of business-service-spring-boot-starter
  • [SCB-484] - servlet rest support download
  • [SCB-485] - jaxrs mode support file download
  • [SCB-486] - edge support route file download invocation
  • [SCB-487] - consumer support download file
  • [SCB-494] - support delete temp file after download
  • [SCB-501] - document for download
  • [SCB-527] - Reorganization All Archetype For Enable Auto Publish
  • [SCB-529] - producer download file from byte[]
  • [SCB-531] - x-java-interface change from require to optional
  • [SCB-532] - support recursive dependence
  • [SCB-533] - javassistUtils create class from CtClass, not only JavaType
  • [SCB-534] - generic class generate optimize
  • [SCB-538] - create SwaggerToClassGenerator to convert swagger to class
  • [SCB-540] - Delete archetypes from java-chassis-dependencies

Bug

  • [SCB-72] - Can isolation information of provider and consumer been discovered through capability of release and subscription?
  • [SCB-449] - Typo in LICENSE
  • [SCB-455] - Base on 1.0.0-m2-SNAPSHOT version, execution of the metrics UT failed
  • [SCB-474] - 使用zuul做网关进行路由,当同一个微服务接口同时开放rest和highway方式时,出现无法调用情况。
  • [SCB-481] - Fix qps handler assertion errors when schemaid or microservice name contails . (dot)
  • [SCB-490] - Service Center verrsion is not forward compatible and needs to be noted in releasenote.
  • [SCB-495] - Compile java-chassis 1.0.0-m2-SNAPSHOT failed
  • [SCB-502] - logs日志没有输出
  • [SCB-503] - When using WeighedResponseTimeRule, there are some initialize and stateless access problems
  • [SCB-507] - poll task in MetricsBootstrap did not really measure meters
  • [SCB-512] - download support chinese file name
  • [SCB-516] - AccessLog of EdgeService does not print traceId
  • [SCB-520] - resolve service with env re-registered will fail
  • [SCB-521] - change the priority of ServiceComb config and SpringBoot config
  • [SCB-562] - Java Chassis will throw NPE when producer impl do not contain any method
  • [SCB-567] - treat warning as errors, modify the compilerArgments
  • [SCB-579] - NullPointerException is thrown when consumer upload null
  • [SCB-580] - When upload file size exceeds limitation of provider, consumer will return a confusing response
  • [SCB-587] - Fix archetypes readme
  • [SCB-588] - Set archetypes sourceEncoding to UTF-8
  • [SCB-591] - configcenter need to do encode
  • [SCB-593] - Change log level to remind user to specify loadbalance handler
  • [SCB-597] - update spring boot version from 1.4.5 to 1.5.12 in starter archetype
  • [SCB-617] - graceful shutdown with standalone tomcat
  • [SCB-652] - Fix schema registry environment configuration
  • [SCB-653] - When provider returns Transfer-Encoding header and Edge will cause problem
  • [SCB-654] - DiscoveryTree has concurrency problems.
  • [SCB-656] - When provider returns non 200 code Edge Service will all convert to 502
  • [SCB-658] - leak of MicroserviceVersions register to EventBus
  • [SCB-659] - Fix build failed in Springmvc Integration Test
  • [SCB-667] - gracefully shutdown is not work in some case

New Feature

  • [SCB-6] - ServiceComb Java Chassis Metrics
  • [SCB-136] - Improvement and New Features of Java Chassis Metrics in version 1.0.0-m2
  • [SCB-201] - As a SDK user, I want to send file/stream data so that I can use ServiceComb to handle the music or image data
  • [SCB-257] - As a developer, I want to download file from microservice
  • [SCB-292] - As a developer, I want to use annotation to validate input parameter
  • [SCB-406] - Chassis must support standard parameter validation handler
  • [SCB-439] - Provide Maven Archetypes in Java Chassis
  • [SCB-482] - Http2 support for java chassis
  • [SCB-582] - Provide a way to protection for instance removal
  • [SCB-607] - Support printing invocation context in access log
  • [SCB-611] - Provide a default Edge service dispatcher to make developer edge easy

Improvement

  • [SCB-350] - Vertx ssl file config error execption approvement
  • [SCB-355] - As a operator, when sdk config a fault ak/sk on HuaweiCloud, then will auth token fail, but it continues to register, will cause may fault in server
  • [SCB-373] - As a developer, i want to do something around serialize/deserialize, so that we should make a aspect to eanable others can do this work
  • [SCB-431] - Add Rat check on the travis CI
  • [SCB-444] - try to optimize autodiscovery function
  • [SCB-447] - optimize SPIServiceUtils to avoid get different instance for the same type
  • [SCB-467] - Contributing & Reporting Issues in java-chassis README.md is not direct to any contents
  • [SCB-477] - sdk guava‘s version need to update from 16.0.1 to 19.0
  • [SCB-488] - Retry/Metrics some default behavior cause unnecessary retry and logs
  • [SCB-498] - Configuration Center IP Addresses need to meet general specifications
  • [SCB-514] - update pom and code, so that we can treat warnings as errors
  • [SCB-517] - service center starter for spring boot/cloud improvement
  • [SCB-518] - ServiceCenter ip address need to config default port
  • [SCB-523] - maven-remote-resource-plugin execute very slow
  • [SCB-526] - When creating dynamic configuration, we need to fetch once for the configuration when startup
  • [SCB-543] - optimize registry procedure
  • [SCB-546] - As a developer, want to reregistry schemas in the dev environment
  • [SCB-548] - Support Gracefully Shutdown
  • [SCB-570] - reformat everything
  • [SCB-575] - Publish the Java doc of ServiceComb projects
  • [SCB-576] - javassist License file need to be updated
  • [SCB-585] - Add ServiceComb-java-chassis reference guide to project
  • [SCB-625] - ProduceProcessor use SPI to support extends
  • [SCB-627] - Java Chassis- Client Request Timeout support for operation/schema/service level
  • [SCB-636] - As a OM staff, i want to use the lb endpoint as the servicecenter/configcenter address config
  • [SCB-646] - if local swagger exists, not generate swagger according to class
  • [SCB-649] - when port can't been listened,log warn and show more detail message

Wish

  • [SCB-504] - Upgrade to Spring boot 1.5.12.RELEASE
  • [SCB-515] - change all configuration from 'cse.xxx' to 'servicecomb.xxx'
  • [SCB-672] - Edge Service support calls from different ApplicationIds
  • [SCB-673] - Edge Service support calls from different ApplicationIds

Task

  • [SCB-324] - Chassis must support network failure simulation, so that I can developers can enhance the robustness of the app
  • [SCB-352] - Support operation level flow control on provider side
  • [SCB-354] - metrics上报的统计数据可能需要支持加上业务自己的维度,方便统计分析,比如APP版本,机型等,业务可以把参数作为invocation参数传递到框架,需要框架支持
  • [SCB-420] - Change default HTTP header length restriction to 32K
  • [SCB-424] - Get configuration interface to add header: x-environment
  • [SCB-443] - Fix randomly UT failure of TestProviderQpsFlowControlHandler
  • [SCB-453] - Read configuration from application.yml/application.properties
  • [SCB-456] - Provider a way to input configuration from a Map, instead of micreservice.yaml
  • [SCB-457] - Verify if gradle can manage the ServiceComb java Chassis jars in a remote or local maven repository
  • [SCB-471] - vertx upgrade causes use config center push mode error
  • [SCB-542] - Update netty's version to 4.1.24
  • [SCB-589] - allow consumer upgrade before producer
  • [SCB-590] - Update the validator version to latest(6.0.2)
  • [SCB-595] - Compatible with old SC versions
  • [SCB-599] - Service registry failed when service before Service Center start
  • [SCB-601] - ServiceComb integrated to spring boot or tomcat will print too many logs
  • [SCB-637] - enhance HttpServletRequestEx impl
  • [SCB-647] - Update LICENSE/NOTICE for release
    Release Notes - Apache ServiceComb - Version Java-Chassis-1.0.0-m1

Major improvements:

  • Java Chassis can now use Apollo as configuration center. Users can now change configurations like load balancing policy and those changes will come into effect on the fly. See here for more details.

  • Metrics was re-factored. We now uses events for collecting invocation data instead of Hystrix. This reduces the performance penalty of computing metrics. Metrics can now be fetched via ‘/metrics’ using HTTP. See here for more details.

Other Noticeable Changes:

  • The Java Chassis libraries are now under group “org.apache.servicecomb”.
  • We provide out of the box metrics support now. Prometheus is supported.
  • Configuration center was re-factored and moved out from foundation. Support for Apollo was added.
  • Users can now use Object type for calling services.
  • Users can now use Generics for calling services.
  • Better integration with Spring MVC.
  • Upgraded to zipkin2 internally, Java Chassis can now work with zipkin server v1 and v2.
  • We are in the process of supporting reactive programming. Pojo consumer and provider now supports CompletableFuture.

For more detailed information please checkout here