shouldn't it be in Core warmup? - Romain
---------- Forwarded message ---------- From: <[email protected]> Date: 2012/7/2 Subject: svn commit: r1356044 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java To: [email protected] Author: dblevins Date: Sun Jul 1 23:01:54 2012 New Revision: 1356044 URL: http://svn.apache.org/viewvc?rev=1356044&view=rev Log: Ugly but works and someone else might have run into this in their own tests OPENEJB-1855 - LinkageError on Mac OS with "sun/security/pkcs11/SunPKCS11" Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java?rev=1356044&r1=1356043&r2=1356044&view=diff ============================================================================== --- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java (original) +++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/junit/ApplicationComposer.java Sun Jul 1 23:01:54 2012 @@ -302,13 +302,17 @@ public class ApplicationComposer extends final InjectionProcessor processor = new InjectionProcessor(testInstance, context.getInjections(), context.getJndiContext()); processor.createInstance(); - + load("org.apache.webbeans.component.AbstractOwbBean"); + load("sun.security.pkcs11.SunPKCS11"); + load("sun.security.pkcs11.SunPKCS11$Descriptor"); + load("sun.security.pkcs11.wrapper.PKCS11Exception"); try { OWBInjector beanInjector = new OWBInjector(appContext.getWebBeansContext()); beanInjector.inject(testInstance); } catch (Throwable t) { // TODO handle this differently // this is temporary till the injector can be rewritten + t.printStackTrace(); } } finally { ThreadContext.exit(oldContext); @@ -333,6 +337,18 @@ public class ApplicationComposer extends } } + private void load(String className) { +// className = className.replace('/', '.'); + try { + this.getClass().getClassLoader().loadClass(className); + } catch (Throwable t1) { + try { + this.getClass().getClassLoader().loadClass(className); + } catch (Throwable t2) { + } + } + } + private <Module extends NamedModule> Module setId(Module module, FrameworkMethod method) { return setId(module, method.getName()); }
