= Local:// protocol for Xlinks = || '''Date''' || 2012/09/14 || || '''Contact(s)''' || [http://wiki.osgeo.org/wiki/User:Jeichar Jesse Eichar] || || '''Last edited''' || || || '''Status''' || committed/merged || || '''Assigned to release''' || 2.9.x || || '''Resources''' || Jesse personal time || || '''Code''' || https://github.com/jesseeichar/core-geonetwork/commits/feature/local-protocol-xlinks || || '''Ticket''' || #1122 || == Overview == For performance and portability this proposal adds a local:// protocol for xlinks. When the Xlink processor encounters this protocol, the processor will directly invoke dispatch on the dispatch manager, instead of making a more expensive http request. === Proposal Type === * '''Type''': XLink * '''App''': Jeeves * '''Module''': === Links === * '''Email discussions''': * '''IRC discussions''': * '''Related work''': === Voting History === * None as yet ---- == Proposal == For performance and portability this proposal adds a local:// protocol for xlinks. When the Xlink processor encounters this protocol, the processor will directly invoke dispatch on the dispatch manager, instead of making a more expensive http request. The benefit of using local:// protocol are three fold. 1. Performance. The request is made without having to write to and from a socket. 1. No new threads need to be spawned to resolve local:// xlinks 1. Portability. The server url is not part of the href so the server name, port and even the servlet name can be changed without having to update the xlink hrefs. In the normal case the behaviour is the same. This just adds the option of using local:// hrefs. The difference between local/relative hrefs and local:// hrefs are: local/relative hrefs are local within a metadata document. local:// get XML from any service like: local://keyword.get?thesaurus=123&id=123 === Backwards Compatibility Issues === Minor Changes to the Processor and ServiceContext API == Risks == == Participants == * As above