@Test
public void testA() {
TestComponentsConfigurator testComponentsConfigurator = new TestComponentsConfigurator();
List<Component> components = testComponentsConfigurator.defineComponents();
String content = Configurators.forPlexus().generateXmlConfiguration(testComponentsConfigurator, components);
System.out.println(content);
}
class TestComponentsConfigurator extends AbstractJdbcResourceConfigurator {
@Override
public List<Component> defineComponents() {
List<Component> components = new ArrayList<>();
// method1
components.add(A(TestComponent.class));
// method2
// components.add(A(TestImpl.class));
// components.add(C(TestComponent.class).req(TestImpl.class));
return components;
}
}
interface ITest<T> {
void test(T t);
}
@Named(type = ITest.class, value = "test")
class TestImpl implements ITest<List<String>> {
@Override
public void test(List<String> strings) {
}
}
@Named
class TestComponent {
@Inject("test")
private ITest<List<String>> t;
}