Uploaded image for project: 'WildFly Core'
  1. WildFly Core
  2. WFCORE-3982

Update Capability ServiceTarget/Builder to use the new Service API.

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Major
    • None
    • 6.0.0.Alpha4
    • Management
    • None

    Description

      Capabilities provided by service are installed with org.jboss.as.controller.CapabilityServiceTarget#addCapability that uses the deprecated org.jboss.msc.service.Service API.

      It is not possible to provide a capability provided by the new org.jboss.msc.Service API.

      In particular, there is a chicken and egg issue between org.jboss.as.controller.CapabilityServiceTarget#addCapability that needs an instance of the service(and returns a CapabilityServiceBuilder) and org.jboss.msc.service.ServiceBuilder#provides that creates a Consumer instance to pass to the service instance before this one is set with org.jboss.msc.service.ServiceBuilder#setInstance.

      new workflow should be:

      CapabilityServiceBuilder serviceBuilder = context.getCapabilityServiceTarget().addCapability(CAP_NAME);
      Consumer<MyValue> consumer = serviceBuilder.provides(CAP_NAME);
      
      Service myService = new MyService(consumer);
      
      serviceBuilder.setInstance(myService)
           .install();
      

      Attachments

        Activity

          People

            jmesnil1@redhat.com Jeff Mesnil
            jmesnil1@redhat.com Jeff Mesnil
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated: