public void attach(PhysicalWireSource source, SystemWireTarget target, Wire wire)
      throws Fabric3Exception {
    URI targetId = UriHelper.getDefragmentedName(target.getUri());
    SystemComponent targetComponent = (SystemComponent) manager.getComponent(targetId);

    Class<?> implementationClass = targetComponent.getImplementationClass();

    for (InvocationChain chain : wire.getInvocationChains()) {
      PhysicalOperation operation = chain.getPhysicalOperation();

      List<Class<?>> params = operation.getSourceParameterTypes();
      Method method;
      try {
        method =
            implementationClass.getMethod(
                operation.getName(), params.toArray(new Class[params.size()]));
      } catch (NoSuchMethodException e) {
        throw new Fabric3Exception("No matching method found", e);
      }

      SystemInvokerInterceptor interceptor = new SystemInvokerInterceptor(method, targetComponent);
      chain.addInterceptor(interceptor);
    }
  }
 public Supplier<?> createSupplier(SystemWireTarget target) throws Fabric3Exception {
   URI targetId = UriHelper.getDefragmentedName(target.getUri());
   SystemComponent targetComponent = (SystemComponent) manager.getComponent(targetId);
   return targetComponent.createSupplier();
 }