JacORB: изменение префикса и суффикса
Я хотел бы изменить префикс и суффикс пакета в моей сборке муравья при создании java из idl. Это должно быть общее решение! Идея такова:
У меня есть файлы idl (ONE.idl, TWO.idl) с пространством имен ONE_cb в первом и TWO_cb во втором (так как суффикс _cb требуется для совместимости с ++). TWO_cb имеет атрибуты из ONE_cb, ONE_cb имеет только основные типы. Я хочу изменить это на пакеты, идущие как com.example.ONE и com.example.TWO.
Я использую JacORB 3.6. и я не знаю как это сделать.
Мой код выглядит так:
<target name="idlj-generate">
<idl2java
srcdir="${psm.dir}/${project}/"
destdir="${build.generated.dir}"
includepath="${psm.dir}"
all="true">
<define key="__JACORB_GENERATE__"/>
<i2jpackage names=":com.example"/>
<i2jpackage names="_cb:"/>
</idl2java>
</target>
Не работает Как я уже говорил, это должно быть общее решение. добавление
<i2jpackage names="TWO_cb:TWO"/> //option 2
<i2jpackage names="ONE_cb:ONE"/> //option 2b
Не приемлемо
Спасибо за ваше время.
2 ответа
Для различных исследований я пришел к выводу, что общее решение невозможно. Единственный способ одновременно выполнить изменение префикса и суффикса - установить все включенные имена.
Если я вас правильно понимаю, у вас есть что-то вроде
module ONE_cb
{
...
}
но ты хочешь чтобы это было
com.example.ONE { ... }
Это возможно с i2jpackage, например
idl -forceOverwrite -d /tmp/generated -i2jpackage ONE_cb:com.example.ONE myfile.idl
Проблема в том, что вы компилируете оба файла одновременно. Удалите "все" и попробуйте собрать их в два этапа.
Если вы используете Maven, я бы также порекомендовал попробовать org.codehaus.mojo:idlj-maven-plugin, поскольку вы можете очень легко выполнить несколько исполнений.
Чтобы использовать несколько i2jpackage я работал с
idl -forceOverwrite -d /tmp/generated -all -i2jpackagefile /tmp/file antBugJac608-2.idl
(где antBugJac608-2 #include antBugJac608).