Beispiel #1
0
  private PlexusContainer createContainer(Class<?> baseClass, Module... modules) {
    log.info("Creating container; baseClass: {}, modules: {}", baseClass, modules);

    Map<Object, Object> context = new HashMap<>();
    context.put("basedir", getBasedir());
    context.putAll(getTestProperties());

    boolean hasPlexusHome = context.containsKey("plexus.home");
    if (!hasPlexusHome) {
      File f = new File(getBasedir(), "target/plexus-home");
      if (!f.isDirectory()) {
        f.mkdir();
      }
      context.put("plexus.home", f.getAbsolutePath());
    }

    // log.info("Context:");
    // for (Entry<Object,Object> entry : context.entrySet()) {
    //  log.info("  {}={}", entry.getKey(), entry.getValue());
    // }

    String plexusXml = baseClass.getName().replace('.', '/') + ".xml";
    log.info("Plexus XML: {}", plexusXml);

    ContainerConfiguration containerConfiguration = new DefaultContainerConfiguration();
    containerConfiguration.setName("test");
    containerConfiguration.setContext(context);
    containerConfiguration.setContainerConfiguration(plexusXml);
    containerConfiguration.setAutoWiring(true);
    containerConfiguration.setClassPathScanning(PlexusConstants.SCANNING_INDEX);

    try {
      return new DefaultPlexusContainer(containerConfiguration, modules);
    } catch (PlexusContainerException e) {
      log.error("Failed to create container", e);
      fail("Failed to create container");
      return null;
    }
  }