Я загрузил Calabash XML пару дней назад и получил его достаточно легко из командной строки. Затем я попытался запустить его из Java-кода. Я заметил, что API отсутствует (например, основной метод Calabash массивный, с кодовыми вызовами везде). Чтобы заставить его работать, было очень грязно, так как мне пришлось копировать огромные куски из основного метода в класс-оболочку и отвлекаться от потока System.out до байтового массива (и, в конечном итоге, в строку), то естьЗапуск Calabash XML Из кода
.. .
ByteArrayOutputStream baos = new ByteArrayOutputStream(); // declare at top
...
WritableDocument wd = null;
if (uri != null) {
URI furi = new URI(uri);
String filename = furi.getPath();
FileOutputStream outfile = new FileOutputStream(filename);
wd = new WritableDocument(runtime,filename,serial,outfile);
} else {
wd = new WritableDocument(runtime,uri,serial, baos); // new "baos" parameter
}
спектакль кажется, действительно, очень медленно, например, я побежал простой фильтр 1000 раз ...
<p:filter>
<p:with-option name="select" select="'/result/meta-data/neighbors/document/title'" />
</p:filter>
В среднем каждый раз взял 17ms, который не походит на много, но моя весна REST контроллер с вызовами Монго DB и шифрования звонков и т.д. принять в среднем 3/4 Миз.
Кто-нибудь сталкивался с этим при запуске Calabash из кода? Есть ли что-то, что я могу сделать, чтобы ускорить процесс?
К примеру, я это вызывается каждый раз -
XProcRuntime runtime = new XProcRuntime(config);
Может ли это быть создан один раз и повторно использовать? Любая помощь приветствуется, поскольку я не хочу платить деньги за использование Calamet, но на самом деле хочу, чтобы Xproc работал от кода до приемлемой производительности.
Это хорошая идея. Производительность важна для этого проекта (но также и гибкость, предоставляемая XProc). Посмотрите на Servlex. К сожалению, мы не можем использовать Quixprox, поскольку это GPL, что является позором. Благодаря! – bobmarksie