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).

Другие вопросы по тегам