Apache Synapse Enterprise Service Bus (ESB) - 3.0.0 Release Notes - Jan 2017

1. Overview
    The Apache Synapse ESB is a robust, lightweight and highly scalable and distributed
    Enterprise Service Bus (ESB). It supports SOAP Web services as well as Legacy services over
    transports such as JMS, Apache VFS File systems, Mail etc, and SOAP, REST/POX, plain text
    and binary message payloads. (Please see http://synapse.apache.org for more details)

    Apache Synapse graduated from the Apache Incubator on the 2nd of January 2007, and the first
    Synapse 1.0 was released on the 11th of June 2007. On the 20th of December 2007, Synapse was
    accepted as a top level project (TLP) under the Apache Software Foundation.

2. Installation Prerequisites 

    Apache Synapse requires a J2SE runtime of version 1.6.0_23 or later. Running the samples also
    requires Apache Ant 1.7.x or later. Building Synapse from source requires JDK 1.6.0_23, and
    Apache Maven 3.2.x or later.

3. Quick start
    Please see the docs/userguide/quick_start.html

4. Building the Samples
    Please see the documents docs/userguide/samples.html and docs/userguide/samples/setup/index.html

5. Synapse configuration language
    Please see the document docs/userguide/config.html

6. Extending Synapse
    Please see the document /docs/userguide/extending.html

7. Frequently asked questions

  * How can I change the default logging level of Synapse?
    Edit the lib/log4j.properties and set the line "log4j.category.org.apache.synapse=INFO" to
    "log4j.category.org.apache.synapse=DEBUG" and restart Synapse.

  * If you get an error related to WS-Security or when using it, check to ensure that your JDK
    uses the "Unlimited Strength Jurisdiction Policy Files". These could be downloaded online and
    refer to the associated documentation for instructions on how to install it to your JDK.

8. Reporting Problems

    Please use the Apache JIRA system (http://issues.apache.org/jira/browse/SYNAPSE) to report issues
    You may also join the:
        synapse-dev mailing  list by sending email to dev-subscribe@synapse.apache.org
        synapse-user mailing list by sending email to user-subscribe@synapse.apache.org

9. New in Version 3.0.0

  * High-performing PassThrough HTTP transport support for all mediation scenarios
        - Ultra-fast, low latency mediation of HTTP requests
        - Supporting a very large number of inbound (client -> ESB) and outbound (ESB -> server) connections concurrently
        - Intelligently handle message content and content awareness built into the engine with shared buffer
        for handling data
        - Automatic throttling and graceful performance degradation in the presence of slow or faulty clients and servers

  * OCSP/CRL certificate validation support for HTTP transports

  * Respond Mediator - A Mediator for responding back to the client from anywhere in the mediation flow

  * Loopback Mediator - A Mediator for jumping from IN sequence to OUT sequence

  * Header Mediator improvements
        Support for adding/removing transport headers

  * New xpath functions
        url-encode xpath function
        Access system properties from get-property function
        base64 decode function

  * Message Processor improvements
        Resequencing Message Processor
        New blocking client implementation

  * Message Injector task improvements
        Support for injecting a message to Proxy services
        Support for injecting a message to named sequences

  * Callout Mediator improvements
        Support for WS-Security
        Inline Endpoint support
        Ability to dynamically set the EPR using 'To' header
        NTLM support

  * Script Mediator improvements
        Support for removing properties

  * REST API improvements
        Transport level access restriction

9. Jira Fixes in 3.0.0 Release

** New Feature
    * [SYNAPSE-636] - Add Python script examples to the Script Mediator samples
    * [SYNAPSE-838] - EJB support for Synapse
    * [SYNAPSE-893] - Resequencing Message Processor For Synapse
    * [SYNAPSE-953] - Introducing transport level (HTTPs etc.) access restriction to Rest APIs
    * [SYNAPSE-954] - OCSP/CRL Certificate Validation Feature for Synapse.
    * [SYNAPSE-963] - Documentation for OCSP/CRL Certificate Validation Feature
    * [SYNAPSE-966] - New Blocking Sender implementation
    * [SYNAPSE-997] - Mediator for Respond back the message in mediation flow
    * [SYNAPSE-1052] - Mediator to Jump from IN sequence to OUT sequence

** Improvement
    * [SYNAPSE-485] - Replace the use of sun.misc.Service with something available on other JDKs
    * [SYNAPSE-575] - improve the callout mediator to provide the EPR as an endpoint.
    * [SYNAPSE-584] - Enhance the non-blocking HTTP/S transports to recover from possible exceptions
    * [SYNAPSE-646] - Implementing unit-tests for commons/evaluators
    * [SYNAPSE-650] - Make the Usage of CDATA Optional in the FIX SOAP Infoset
    * [SYNAPSE-806] - Incorporate the improvements in HTTPCORE-278 into Synapse when the 4.2 release of hc is available
    * [SYNAPSE-837] - Upgrading quartz version used in synapse-task
    * [SYNAPSE-843] - Scheduler must not run indefinitely when the value of 'count' parameter is zero
    * [SYNAPSE-873] - Callout mediator improvement to get NTLM working
    * [SYNAPSE-875] - Enable property files to be loaded from using customized location using system properties
    * [SYNAPSE-891] - FIX message builder /formatter
    * [SYNAPSE-913] - Pass Through HTTP Transport for Synapse and Using the Pass Through Transport by Default
    * [SYNAPSE-917] - Allow synapse XPath to access system properties
    * [SYNAPSE-920] - Pass Through HTTP Transport for Synapse and Using the Pass Through Transport  with more Fixers
    * [SYNAPSE-921] - Synapse Xpath Expression To be  contentawre=false  when properties declare with $ctx,$trp
    * [SYNAPSE-923] - FORCE_HTTP_CONTENT_LENGTH /COPY_CONTENT_LENGTH_FROM_INCOMING Has been broken in PT
    * [SYNAPSE-924] - Evaluating Xpath Expresions defined in Templates not worked when parameter to be loaded from property as expression to the argument "{{get-property('request')}}"
    * [SYNAPSE-947] - Support security in Callout Mediator
    * [SYNAPSE-957] - MessageInjector task improvements
    * [SYNAPSE-960] - Callout Mediator - Support different security policies for inbound and outbound flows
    * [SYNAPSE-965] - Callout mediator to use 'To' header as EPR
    * [SYNAPSE-969] - Inline Endpoint support for Callout Mediator
    * [SYNAPSE-971] - Migrating Forwarding Message Processor to new blocking client implementation
    * [SYNAPSE-972] - Sample for Invoke Secured Services with Scheduled Message Forwarding Processor
    * [SYNAPSE-973] - Documentation update for config language changes in Callout Mediator
    * [SYNAPSE-986] - Upgrade Synapse to use XMLSchema2
    * [SYNAPSE-1006] - Improving NHTTP Transport Logs
    * [SYNAPSE-1009] - Script mediator to support adding properties with scope
    * [SYNAPSE-1010] - Script mediator to support removing properties
    * [SYNAPSE-1012] - Add Xpath Base64 decode function
    * [SYNAPSE-1013] - Upgrading rhino version to 1.7R5 in script mediator
    * [SYNAPSE-1016] - Cannot preserve some required transport headers in the passthru and nhttp transports
    * [SYNAPSE-1021] - Improve Header Mediator to add/remove transport headers
    * [SYNAPSE-1022] - url-encode XPath function
    * [SYNAPSE-1070] - Simplify samples with respond mediator
    * [SYNAPSE-1078] - Update the startup script to skip the warning message when running on JDK higher than 1.5
    * [SYNAPSE-1079] - Update the samples setup guide to reflect latest active mq jars and JDK versions
    * [SYNAPSE-1080] - Update the samples catalog documentation with new samples
    * [SYNAPSE-1082] - Update FAQ page with the PTT informations
    * [SYNAPSE-1087] - Deployment Guide - Changes

** Task
    * [SYNAPSE-884] - Enable optional/default values in call-template mediator
    * [SYNAPSE-993] - Use Svnpubsub for Site and Dists
    * [SYNAPSE-1059] - Reduce Global timeout interval
    * [SYNAPSE-1071] - Update "Upgrading" page in documentation
    * [SYNAPSE-1072] - Update installation Guide
    * [SYNAPSE-1074] - Update the new features section for release
    * [SYNAPSE-1076] - Update the quick start guide with latest logs and supported JDK versions
    * [SYNAPSE-1088] - Remove Java 1.8 limitation from the docs and startup script

** Wish
    * [SYNAPSE-841] - Adding support to header mediator to contain complex XML

** Sub-task
    * [SYNAPSE-948] - Sample and Integration test for Callout Mediator Security functionality
    * [SYNAPSE-952] - Mediators Catalog documentation update for Callout mediator security functionality
    * [SYNAPSE-958] - Samples for MessageInjector task improvements
    * [SYNAPSE-959] - Integration tests for MessageInjector improvements
    * [SYNAPSE-961] - Sample for Callout Mediator different security policies for inbound and outbound flows
    * [SYNAPSE-962] - Integration test for Callout Mediator - Support different security policies for inbound and outbound flows
    * [SYNAPSE-967] - Migrating Callout Mediator to new blocking client implementation
    * [SYNAPSE-968] - Sample and an integration test for Callout mediator - Invoke a service using a defined Endpoint
    * [SYNAPSE-970] - Sample and Integration test for Callout mediator inline endpoint feature
    * [SYNAPSE-1029] - Test case for DISABLE_CHUNKING for proxy
    * [SYNAPSE-1031] - Integration test case for Respond mediator
    * [SYNAPSE-1032] - Documentation for respond mediator
    * [SYNAPSE-1033] - Samples for Respond Mediator


** Bug
    * [SYNAPSE-528] - Synapse doesn't warn the user about pending callbacks
    * [SYNAPSE-622] - NPE in ClientConnectionDebug.java:36 when running in a failover scenario
    * [SYNAPSE-698] - NPE in SynapseConfiguration.destroy()
    * [SYNAPSE-726] - AbstractContext.setName() method needs refactoring, coz MBean registrations also happens there.
    * [SYNAPSE-774] - loading resources from registry is not based on synapse.home
    * [SYNAPSE-777] - Issues encountered while using Synapse as a War
    * [SYNAPSE-812] - Cannot query a wsdl which is protected by basic authentication in the publish wsdl feature.
    * [SYNAPSE-818] - Update synapse properties mediator guide with the available properties..
    * [SYNAPSE-824] - Can't configure a socket time out for server and client side seperatly.
    * [SYNAPSE-836] - Issue when using failover with 2 cluster groups
    * [SYNAPSE-844] - Bug in REST API Documentation
    * [SYNAPSE-845] - NPE when all child enpoints of nested loadbalance endpoint failed
    * [SYNAPSE-846] - Few parts of the code that prevents normal Synapse termination when running as a web application
    * [SYNAPSE-847] - VFS transport throws exception, when try to pull large (>150kb) file from FTP location
    * [SYNAPSE-850] - NIO transport does not work with IIS as the LB due to "Expect: 100-Continue" ESB NIO transport does not work with IIS as the LB due to "Expect: 100-Continue"
    * [SYNAPSE-851] - VFS proxy generates the response.xml with empty content (Synapse-2.2.0-Snapshot trunk)
    * [SYNAPSE-853] - When sending concurrent requests to a statistics enabled sequence, getting "concurrent modification exception"
    * [SYNAPSE-857] - Templates Sample is broken
    * [SYNAPSE-866] - Incorrect error handling in HttpCoreNIOSender#sendAsyncResponse
    * [SYNAPSE-870] - Iterate Mediator "sequential" property works in the opposite way
    * [SYNAPSE-871] - Connection Leaks When Using DBReport Mediator with XADataSources
    * [SYNAPSE-872] - Parameters added to a VFS endpoint are added to the reply file name also
    * [SYNAPSE-874] - Synapse Configuration update fails if 1 or more inactive proxy services exists.
    * [SYNAPSE-877] - Empty Soap Request is not being processed in XQuery Mediator
    * [SYNAPSE-878] - Insert into InMemoryMessageStore get lost when a MsgProcessor is reading from it at the same time
    * [SYNAPSE-880] - Could not lookup for the JNDI data sources using default environment properties.
    * [SYNAPSE-881] - When SynapseRecevieCallback handler receives SOAP fault from backend then synapse Message helper always try to cast SOAP Fault  detail entries to  OMElement without type checking
    * [SYNAPSE-882] - Condition evaluator serializers adding an empty namespace when we serialize the condition
    * [SYNAPSE-883] - ClassCastException: org.apache.axiom.om.impl.llom.OMElementImpl cannot be cast to org.apache.axiom.soap.SOAPFault error occurs when handling SOAPFault in out path of REST API
    * [SYNAPSE-885] - Need to check whether task is already running before scheduling it.
    * [SYNAPSE-886] - Throws NPE when try to access application through a load balancer
    * [SYNAPSE-887] - [Enrich mediator] Source configuration does not get added as child of the specified property
    * [SYNAPSE-889] - Null pointer exception is thrown, if xpath expression doesn't match with the property
    * [SYNAPSE-890] - Pattern attribute of the property mediator does not seem to work
    * [SYNAPSE-892] - JS mediator child dependancies (includes) not properly serializing throwing Class Cast Exception
    * [SYNAPSE-894] - [Iterate Mediator] - Unwanted tags attached to the payload if preservePayload="false"
    * [SYNAPSE-895] - Introduce a additional log to identify the issue in wrong vfs proxy configuration
    * [SYNAPSE-896] - Relative WSDL path not working in WAR deployment
    * [SYNAPSE-897] - Concurrency issue at Iterate Mediator
    * [SYNAPSE-901] - Concurrency issue at Clone Mediator
    * [SYNAPSE-902] - Fault sequence gets invoked even when the responseAction of an endpoint timeout is set to discard.
    * [SYNAPSE-903] - Data sources used in DB mediators are closed without considering the fact that the associated datasource is configured globally, while hot-updating a proxy service.
    * [SYNAPSE-907] - VFSTransportListener locks a folder if a non-matching file is put in to it
    * [SYNAPSE-908] - VFSTransportListener unable to get the lock to a file when there is a # in the FTP/SFTP server password
    * [SYNAPSE-911] - Enrich Mediator - Cannot enrich an Attribute value of an Element
    * [SYNAPSE-919] - REST_URL_POSTFIX ignored when accessing API with the OPTIONS method
    * [SYNAPSE-922] - Unable to navigate from given Hyper link in Quick Start Guide page of Synapse
    * [SYNAPSE-926] - Unable to invoke a REST back-end with the OPTIONS verb
    * [SYNAPSE-927] - Could not invoke the API when the REST URL is bit lengthy
    * [SYNAPSE-932] - Class Loading issue in Script Mediator
    * [SYNAPSE-933] - In Synapse Sample 57, when shutingdown the Axis2 servers one by one, shutting down the last server throws an Exception
    * [SYNAPSE-934] - Website broken module links in http://synapse.apache.org/modules
    * [SYNAPSE-935] - PassThrough Transport bug fixes-1
    * [SYNAPSE-936] - Need an Implementation of the HttpGetRequestHandler Interface for the PassThrough Transport
    * [SYNAPSE-937] - [PTT] Message not get built in response path when transport switching
    * [SYNAPSE-938] - [PTT] Http Proxy not working with PassThroughHttpSender
    * [SYNAPSE-939] - Fail Safe mode does not work when artifact configurations contain xml syntax errors
    * [SYNAPSE-940] - Server startup fails when at least one API configuration contains an error
    * [SYNAPSE-941] - Server startup fails when at least one Message Store/Processor configuration contains an error
    * [SYNAPSE-942] - Issues in Template and Endpoint fail safe mode logic
    * [SYNAPSE-943] - [PTT] Message always get built when endpoint format is set to "rest"
    * [SYNAPSE-945] - Iterate Mediator incorrect debug logs
    * [SYNAPSE-946] - Enqueue mediator - does not handles rejected execution exception
    * [SYNAPSE-949] - Callout Mediator Integration test failure
    * [SYNAPSE-950] - [PTT] NO_ENTITY_BODY property not working in response path
    * [SYNAPSE-951] - EndpointDefinition Serialization issue
    * [SYNAPSE-964] - Add documentation for all Synapse XPath functions.
    * [SYNAPSE-974] - Mail transport sample 256 configurations are not valid.
    * [SYNAPSE-976] - Validate Mediator contentAware issue
    * [SYNAPSE-977] - Issue with Header mediator with complex headers
    * [SYNAPSE-978] - Warnings get printed while deploying a proxy service
    * [SYNAPSE-985] - Synapse still referring to incorrect (old) Maven dependencies
    * [SYNAPSE-989] - Extra TCP Connections get created under high concurrency
    * [SYNAPSE-998] - Memory leak in VFS
    * [SYNAPSE-1003] - Memory Leaks while using Anonymous Endpoints
    * [SYNAPSE-1004] - Passthrough Transport deadlock scenario
    * [SYNAPSE-1005] - Validate mediator throws StackOverflowError, when the schema has Cyclic import or include
    * [SYNAPSE-1007] - Enrich mediator does not enrich the message body when clone is set to 'false' and source type is set to 'property'
    * [SYNAPSE-1011] - Fault sequence is not get triggered when an exception comes to AbstractListMediator
    * [SYNAPSE-1014] - NPE in DefaultNHttpClientConnection consumeInput, when invoking a proxy concurrently
    * [SYNAPSE-1015] - Message building fails at high concurrency when the outsequence is content aware
    * [SYNAPSE-1020] - Deactivate sequence for message processor auto deactivations
    * [SYNAPSE-1023] - DISABLE_CHUNKING property is not honored in the response path of PT
    * [SYNAPSE-1024] - Chaning READY2ROCK/GET_ME_OUT to meaningful WAIT_BUILDER_IN_STREAM_COMPLETE and BUILDER_OUTPUT_STREAM
    * [SYNAPSE-1025] - ESB PTT eats multi value transport headers assigned values other than the last
    * [SYNAPSE-1026] - Access logs no longer working
    * [SYNAPSE-1027] - Deferred building regression due to pass through handling
    * [SYNAPSE-1028] - Possible Bugs in Code for Handling Content Length Encoding
    * [SYNAPSE-1039] - Send Mediator inside Fault Sequence blocks if SSL exception occurred.
    * [SYNAPSE-1040] - cloneMessageContext  in MessageHelper does not deep clone all synapse properties
    * [SYNAPSE-1042] - MessageID returned as Null when a proxy is invoked via a scheduled task
    * [SYNAPSE-1051] - recipientlist endpoint does not remove white spaces in list
    * [SYNAPSE-1058] - VFS transport has the clear text password in the exceptions and Debug log
    * [SYNAPSE-1060] - Property mediator configuration changes with requests if the type = OM
    * [SYNAPSE-1061] -  WeightedRRLCAlgorithm Unwanted condition
    * [SYNAPSE-1062] - Exceptions in Axis2 modules eventually block the application
    * [SYNAPSE-1063] - Recipient List Endpoint - Endpoint is not assigned
    * [SYNAPSE-1065] - GC Overhead limit exceeded error during running a performance test on simple Passthough Proxy
    * [SYNAPSE-1073] - Link for the jettison is not accessible
    * [SYNAPSE-1077] - application/xml to application/json is not properly converting
    * [SYNAPSE-1083] - Extending Synapse page has minor issues.
    * [SYNAPSE-1084] - Mediators Catalog - Minor corrections on the doc
    * [SYNAPSE-1085] - Transport Catalog - Minor Punctuation corrections in the doc
    * [SYNAPSE-1086] - Developer Guide - Minor Punctuation corrections in the doc
