2012-02-15 3 views
1

С SubCut я могу определить BindingModule и использовать modifyBindings, чтобы получить новый, который может перезаписать некоторые привязки, а также добавить новые привязки. Есть ли утилита, где вместо того, чтобы говоритьSubCut BindingModule composition

val module : BindingModule 
val newModule = module.modifBindings(...) 

я мог бы вместо этого сделать что-то вроде

val mergedModule = merge(module1,module2,module3,...) 

Причины, я пишу заявление с «вставных» банков - каждый такой сосуд будет иметь META-INF/bindings.properties файл, который выведет название класса BindingModule. Мой главный входной барабан будет создавать эти BindingModules через отражение, а затем объединить их.

Идея состоит в том, что если сменные банки следуют соглашению о предоставлении META-INF/bindings.properties, то для развертывания приложения не требуется новая конфигурация.

+0

Мы нашли способ объявить модули как черты, а затем объединить их, в результате чего они разрешат любые взаимозависимости путем смешивания. Однако я не могу смешивать черты с использованием отражения, не так ли? –

+0

Кстати, «могу я?» часть выше риторическая. –

+0

Возможно, вы захотите попробовать Sindi вместо SubCut. Он может обрабатывать зависимости между связывающими модулями; хотя это будет работать с отражением, я не уверен. –

ответ

0

Да, просто используйте оператор ~, как показано на рисунке this test case from the SubCut project.

Для случая взаимозависимых модулей, пожалуйста, разверните свой вопрос с более подробной информацией о том, как это реализовано.