Перейти к основному содержанию
`Ctrl`+`K`

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

Модуль в котором необходима точка расширения - `Модуль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)
      }

5. В модуле расширении создать класс `Модуль2_Модуль1Ext.scala`.

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

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

      subFunc("extentionMethodExamlpe") { (sf: SuperFunc[NString], arg1: NString, arg2: NString) =>
        ...
      }

8. В файле `src/main/resources/META-INF/extensions.xml` модуля расширения зарегистрировать новую точку расширения:

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