Package org.infinispan.it.osgi.util

Source Code of org.infinispan.it.osgi.util.PaxExamUtils

package org.infinispan.it.osgi.util;

import java.lang.reflect.Field;

import org.ops4j.pax.exam.ExamSystem;
import org.ops4j.pax.exam.TestProbeBuilder;
import org.ops4j.pax.exam.spi.reactors.ReactorManager;

public class PaxExamUtils {
   /**
    *  Create a new probe, don't reuse the default.
    *
    *  PAX EXAM reuses the default one which means all the test addresses
    *  from the previous runs are present in the probe header. If some of them
    *  extend classes from dependencies which are not available for the current
    *  probe bundle NoClassDefFound exceptions will occur.
    */
   public static TestProbeBuilder probeIsolationWorkaround(TestProbeBuilder probeBuilder) {
      ReactorManager reactorManager = ReactorManager.getInstance();
      try {
        
         Field fieldSystem = ReactorManager.class.getDeclaredField("system");
         fieldSystem.setAccessible(true);
         ExamSystem system = (ExamSystem) fieldSystem.get(reactorManager);
         return system.createProbe();
      } catch (Exception e) {
         e.printStackTrace();
      }
      return probeBuilder;
   }

   public static TestProbeBuilder exportTestPackages(TestProbeBuilder probeBuilder) {
       StringBuilder builder = new StringBuilder();
  
       /* Export all test subpackages. */
       Package[] pkgs = Package.getPackages();
       for (Package pkg : pkgs) {
           String pkgName = pkg.getName();
           if (pkgName.startsWith("org.infinispan.it.osgi")) {
               if (builder.length() > 0) {
                   builder.append(",");
               }
               builder.append(pkgName);
           }
       }
  
       probeBuilder.setHeader("Export-Package", builder.toString());
       return probeBuilder;
   }

}
TOP

Related Classes of org.infinispan.it.osgi.util.PaxExamUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.