Как создать точку расширения#

Модуль в котором необходима точка расширения - Модуль1. Модуль расширения - Модуль2.

  1. В модуле в котором необходима точка расширения создаем класс с объектом компаньоном Модуль1_Ept.scala.

  2. Класс унаследовать от класса ExtensionPoint.

  3. Объект компаньон унаследовать от PkgFactory[Модуль1_Ept].

  4. Создать метод точки расширения:

  val extentionMethodExamlpe = declFunc("extentionMethodExamlpe") {
    (sf: SuperFunc[NString], arg1: NString, arg2: NString) =>
      sf().getOrElse(None.ns)
  }
  1. В модуле расширении создать класс Модуль2_Модуль1Ext.scala.

  2. Унаследовать класс от класса Extension.

  3. Создать метод расширения:

  subFunc("extentionMethodExamlpe") { (sf: SuperFunc[NString], arg1: NString, arg2: NString) =>
    ...
  }
  1. В файле src/main/resources/META-INF/extensions.xml модуля расширения зарегистрировать новую точку расширения:

<exts>
    <ext class="ru.bitec.app.Модуль2.Модуль2_Модуль1Ext" targetEpt="`Модуль1`_Ept"/>
</exts>