Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.4.1, 2.0.0-M1
-
Fix Version/s: Tech. Debt
-
Component/s: Core: Endpoints
-
Labels:None
-
User impact:Low
-
Effort points:2
-
Similar Issues:None
Description
While investigating the cause of MULE-2164 i looked carefully at these implementations, and found a number of issues:
- When MuleEndpointURI's are copied/reconstructed the value of schemaMetaInfo is lost and the value of address gets "mangled" (See MULE-2164)
- EndpointBuilder/AbstractEndpointBuilder should be called EndpointURIBuilder/AbstractEndpointURIBuilder
- AbstractEndpointBuilder has dynamic state and is therefore not thread-safe! (values are set to null manually ready for the next thread (but method is not synchronized
) ) - The MuleEndpoint(URI)Builder exists but does not build EnpointURI's, MuleEndpointURI's are created through a mix of constructors, initialize methods and the MuleEndpointBuilder.
- AbstractEndpointBuilder set's MuleEndpointURI attributes by creating a new MuleEnpointURI instance and then copying values onto existing instance.
- MuleEndpointURI.getSchemeMetaInfo() which is an explicit get for schemeMetaInfo returns a value is there is no schemeMetaInfo
There is also a need to verify the correct implementation (and usage throughout codebase) of getScheme()/getScehemeMetaInfo()/getFullScheme()/getAddress()/getUri()
Issue Links
- relates to
-
MULE-2164
Copied endpointURI's lose value of "schemeMetaInfo" and have incorrect "address"
-
-
MULE-1677
Problems with the endpoint address format when using Axis over JMS
-
-
MULE-1839
Axis transport fails to pass tests in 2.0
-
-
MULE-2495
Restrict visibility of UMOEndpointURI attributes once endpoints are created or use something else.
-