Xquery извлекает значения свойств из файла .properties - PullRequest
0 голосов
/ 25 февраля 2020

В настоящее время я пытаюсь извлечь значения свойств из файла свойств, но сталкиваюсь с некоторыми проблемами. Я не могу проверить это в консоли запросов ML, потому что файла свойств там не существует. В настоящее время я пытаюсь получить значения файла следующим образом

let $port := #{@properties["ml.properties-name"]}

Я также посмотрел на

xdmp:document-get-properties(
   $uri as xs:string,
   $property as xs:QName

, однако это ограничено. xml файлов, которым я верю. У кого-нибудь есть способ / способ обойти эти значения? Кажется, я не могу найти того, что я просмотрел на веб-сайте Marklogi c, но не могу заставить его работать. То, как я получал доступ раньше, было в ruby, благодаря патчированию обезьян, позволяющему мне получить доступ к этим закрытым полям. Проблема с этим заключается в том, что вызываемый мной скрипт ruby вызывается только один раз, в то время как мой файл .xqy запускается каждую минуту. который отправляет аргументы в другую функцию. Мне нужно получить доступ к этим аргументам из файла свойств, прямо сейчас у меня есть их жестко запрограммированные. Есть мысли?

Спасибо

1 Ответ

1 голос
/ 26 февраля 2020

Вы не можете получить доступ к таким свойствам развертывания, но вы можете передать их вместе с развертыванием. Если вы создаете новое приложение REST с последней версией Roxy, вы должны получить копию этого config.xqy, добавленного к src/config/:

https://github.com/marklogic-community/roxy/blob/master/deploy/sample/custom-config.xqy

Этот файл обрабатывается специально при развертывании в базе данных модулей. Свойства ссылки заменяются внутри там. В вашем случае добавьте еще одну переменную и присвойте ей строковое значение, следуя шаблону @ml.xyz:

declare variable $c:port := "@ml.property-name";

Затем вы можете импортировать config lib и использовать ее в своем коде.

Эти так называемые замены Deployer более подробно описаны в вики Roxy:

https://github.com/marklogic-community/roxy/wiki/Deployer-Substitutions

...