@Provides public static Composite getComposite() { CompositeBuilder compositeBuilder = CompositeBuilder.newBuilder(QNAME); // setup monitoring compositeBuilder.component(SystemComponentBuilder.newBuilder(NATSAppenderLoader.class).build()); compositeBuilder.component(SystemComponentBuilder.newBuilder(NATSAppenderGenerator.class).build()); compositeBuilder.component(SystemComponentBuilder.newBuilder(NATSAppenderBuilder.class).build()); // setup binding infrastructure compositeBuilder.component(SystemComponentBuilder.newBuilder(NATSIntrospector.class).build()); compositeBuilder.component(SystemComponentBuilder.newBuilder(NATSConnectionBindingGenerator.class).build()); compositeBuilder.component(SystemComponentBuilder.newBuilder(NATSConnectionSourceAttacher.class).build()); compositeBuilder.component(SystemComponentBuilder.newBuilder(NATSConnectionTargetAttacher.class).build()); SystemComponentBuilder managerBuilder = SystemComponentBuilder.newBuilder(NATSConnectionManagerImpl.class); managerBuilder.reference("executorService", "RuntimeThreadPoolExecutor"); compositeBuilder.component(managerBuilder.build()); compositeBuilder.deployable(); return compositeBuilder.build(); } }