code: @Override
      public ScannerOutput<SwitchYardModel> scan(ScannerInput<SwitchYardModel> input) throws IOException {
          SwitchYardNamespace switchyardNamespace = input.getSwitchyardNamespace();
          SwitchYardModel switchyardModel = new V1SwitchYardModel(switchyardNamespace.uri());
          CompositeModel compositeModel = new V1CompositeModel();
          compositeModel.setName(input.getCompositeName());
          ClasspathScanner rulesScanner = new ClasspathScanner(_rulesFilter);
          for (URL url : input.getURLs()) {
              rulesScanner.scan(url);
          }
          List<Class<?>> rulesClasses = _rulesFilter.getMatchedTypes();
          for (Class<?> rulesClass : rulesClasses) {
              compositeModel.addComponent(scan(rulesClass, switchyardNamespace));
          }
          if (!compositeModel.getModelChildren().isEmpty()) {
              switchyardModel.setComposite(compositeModel);
          }
          return new ScannerOutput<SwitchYardModel>().setModel(switchyardModel);
      }
docs: {@inheritDoc}