Я использую javase и решение osgi (felix) + cdi (сварка) + paxcdi. У меня есть два пучка A и B. Bundle B - это расслоение lib.CDI + OSGI: пакетные пакеты scope
В комплекте A У меня есть один класс и один пакет.
package com.example.firstpackage;
import com.example.secondpackage.Class2;
public class Class1{
@Inject
private Class2 class2;
}
В расслоении B У меня есть два класса и два пакета
package com.example.secondpackage;
import com.example.thirdpackage.Class3;
public class Class2{
@Inject
private Class3 class3;
}
и
package com.example.thirdpackage;
public class Class3{
....
}
я установить и запустить обе связки.
Проблема - pax (или сварка) для инъекций в классах пучков A сканирует только те пакеты, которые импортируются для классов IN bundle A. В моем примере - CDI для инъекций в Class1 Class2 сканирует com.example.secondpackage пакета B. Однако он будет генерировать исключение, поскольку Class2 нуждается в Class3, но com.example.thirdpackage не сканируется для пакета A (поскольку он не импортируется !!!). com.example.thirdpackage сканируется только для пакета B, но, как я понимаю, у каждого пакета для cdi есть своя область. Как это исправить?
+1 для альтернативного предложения, поскольку исходный дизайн может быть хорошим, используя CDI в JEE, но окончательно не способ сделать это в OSGi. –