code: public void onExtensionConfigured(@Observes ReportingExtensionConfigured event) {
  
          // produce report type register
  
          reportTypeRegister.set(new ReportTypeRegister());
  
          // produce default reporter
  
          Reporter reporter = serviceLoader.get().onlyOne(Reporter.class, ReporterImpl.class);
          reporter.setConfiguration(configuration.get());
          this.reporter.set(reporter);
  
          // produce default exporter
  
          ExporterRegisterFactory registerFactory = serviceLoader.get().onlyOne(ExporterRegisterFactory.class,
              DefaultExporterRegisterFactory.class);
  
          ExporterRegister register = registerFactory.getExporterRegisterInstance();
          this.exporterRegister.set(register);
  
          // place to listen to where hooking of exporters will occur
  
          exporterRegisterCreatedEvent.fire(new ExporterRegisterCreated());
  
          // match reporter type from configuration to registered exporters according to its report types
  
          String report = configuration.get().getReport();
  
          ReportType reportType = reportTypeRegister.get().get(report);
  
          if (reportType != null) {
              configuration.get().setFileName(reportType.getTypes()[0]);
              Exporter exporterToUse = exporterRegister.get().get(reportType.getClass());
              if (exporterToUse != null) {
                  exporterToUse.setConfiguration(configuration.get());
                  this.exporter.set(exporterToUse);
              } else {
                  throw new ReporterConfigurationException("Unable to match required reporter type from configuration to some registered exporter.");
              }
          }
      }
docs: Produces {@link ReportTypeRegister} and default reporter ({@link ReporterImpl}) when another is not present on class
  path. Creates default exporter register factory when another is not present on class path. After that,
  {@link ExporterRegisterCreated} is fired in order to be able to register all exporters even from 3rd party extension. In
  the end, report type from configuration is mapped to supported exporter and when found, it is produced.
  
  @param event event fired from configurator when reporter extension is fully configured