static CompositeClassLoader getCompositeClassLoader(final Object obj, final WorkingMemory workingMemory) { CompositeClassLoader classLoader = getCompositeClassLoader(obj); // Try to use the same ClassLoader used for the stub if (classLoader == null) { classLoader = ((AbstractRuleBase)workingMemory.getRuleBase()).getRootClassLoader(); } return classLoader; }
private Class<CoreWrapper<K>> buildCoreWrapper( Class<K> coreKlazz, ClassDefinition coreDef ) throws IOException, ClassNotFoundException { String coreName = coreKlazz.getName(); String wrapperName = coreName + "Wrapper"; try { byte[] wrapper = new TraitCoreWrapperClassBuilderImpl().buildClass( coreDef ); ruleBase.registerAndLoadTypeDefinition( wrapperName, wrapper ); // JavaDialectRuntimeData data = ((JavaDialectRuntimeData) getPackage( pack ).getDialectRuntimeRegistry(). // getDialectData( "java" )); // String resourceName = JavaDialectRuntimeData.convertClassToResourcePath( wrapperName ); // data.putClassDefinition( resourceName, wrapper ); // data.write( resourceName, wrapper ); // data.onBeforeExecute(); } catch ( Exception e ) { e.printStackTrace(); } Class<CoreWrapper<K>> wrapperClass = (Class<CoreWrapper<K>>) ruleBase.getRootClassLoader().loadClass( wrapperName, true ); return wrapperClass; }
private Package getPackage(String pack) { Package pkg = ruleBase.getPackage( pack ); if ( pkg == null ) { pkg = new Package( pack ); JavaDialectRuntimeData data = new JavaDialectRuntimeData(); pkg.getDialectRuntimeRegistry().setDialectData( "java", data ); data.onAdd(pkg.getDialectRuntimeRegistry(), ruleBase.getRootClassLoader()); ruleBase.addPackages( Arrays.asList(pkg) ); } return pkg; }
Class<T> proxyClass = (Class<T>) ruleBase.getRootClassLoader().loadClass( proxyName, true ); Class<T> wrapperClass = (Class<T>) ruleBase.getRootClassLoader().loadClass( wrapperName, true ); return proxyClass; } catch (ClassNotFoundException e) {
CompositeClassLoader rootClassLoader = abstractRuleBase.getRootClassLoader();