@Before public void setUp() throws Exception { data = new JavaDialectRuntimeData(); }
data.putInvoker(className, (Wireable) invoker);
JavaDialectRuntimeData data = new JavaDialectRuntimeData(); data.onAdd(pkg.getDialectRuntimeRegistry(), kBase.getRootClassLoader()); pkg.getDialectRuntimeRegistry().setDialectData("java", data); pcData.putInvoker(className, invoker); final InputStream is = getClass().getClassLoader().getResourceAsStream(className.replace('.', '/') + ".class"); try { pcData.write(className.replace('.', '/') + ".class", read(is)); } finally { is.close(); pcData.onAdd(pkg.getDialectRuntimeRegistry(), kBase.getRootClassLoader()); pcData.onBeforeExecute();
@Before public void setUp() { this.kBase = (InternalKnowledgeBase) KnowledgeBaseFactory.newKnowledgeBase(); pkg = new KnowledgePackageImpl("org.droos.test"); pkg.setClassFieldAccessorCache(new ClassFieldAccessorCache(Thread.currentThread().getContextClassLoader())); JavaDialectRuntimeData data = new JavaDialectRuntimeData(); data.onAdd(pkg.getDialectRuntimeRegistry(), kBase.getRootClassLoader()); pkg.getDialectRuntimeRegistry().setDialectData("java", data); // we need to add one rule to the package because the previous deadlock was encountered // while removing rules from a package when said package is removed from the rulebase rule = new RuleImpl("Test"); rule.setDialect("java"); rule.setConsequence(new Consequence() { public void evaluate(KnowledgeHelper knowledgeHelper, WorkingMemory workingMemory) throws Exception { } public String getName() { return "default"; } }); pkg.addRule(rule); kBase.addPackage(pkg); }
private Class build(ClassBuilder builder, ClassDefinition classDef) throws Exception { ProjectClassLoader prjClassLoader = ProjectClassLoader.createProjectClassLoader(); byte[] d = builder.buildClass( classDef, prjClassLoader ); JavaDialectRuntimeData data = new JavaDialectRuntimeData(); data.write( convertClassToResourcePath(classDef.getClassName()), d ); ClassLoader classLoader = new PackageClassLoader(data, prjClassLoader); ClassFieldAccessorStore store = new ClassFieldAccessorStore(); store.setClassFieldAccessorCache( new ClassFieldAccessorCache( classLoader ) ); store.setEagerWire( true ); Class clazz = classLoader.loadClass( classDef.getClassName() ); classDef.setDefinedClass( clazz ); return clazz; }
public InputStream getResourceAsStream(final String name) { final byte[] clsBytes = this.store.read(name); if (clsBytes != null) { return new ByteArrayInputStream(clsBytes); } return null; }
private Class build(ClassBuilder builder, ClassDefinition classDef) throws Exception { classLoader = new PackageClassLoader(data, ProjectClassLoader.createProjectClassLoader()); byte[] d = builder.buildClass( classDef, classLoader); data.write( convertClassToResourcePath(classDef.getClassName()), d ); this.store = new ClassFieldAccessorStore(); store.setClassFieldAccessorCache( new ClassFieldAccessorCache( classLoader ) ); store.setEagerWire( true ); Class clazz = classLoader.loadClass( classDef.getClassName() ); classDef.setDefinedClass( clazz ); return clazz; }
((JavaDialectRuntimeData) pkg.getDialectRuntimeRegistry().getDialectData( "java" )).getStore().size() );
pkg.setClassFieldAccessorCache(new ClassFieldAccessorCache(Thread.currentThread().getContextClassLoader())); JavaDialectRuntimeData data = new JavaDialectRuntimeData(); data.onAdd(pkg.getDialectRuntimeRegistry(), kBase.getRootClassLoader()); pkg.getDialectRuntimeRegistry().setDialectData("java", data); rule = new RuleImpl("Test");
public Class<?> fastFindClass(final String name) { Class<?> cls = findLoadedClass(name); if (cls == null) { final byte[] clazzBytes = this.store.read(convertClassToResourcePath(name)); if (clazzBytes != null) { String pkgName = name.substring(0, name.lastIndexOf('.')); if (!existingPackages.contains(pkgName)) { synchronized (this) { if (getPackage(pkgName) == null) { definePackage(pkgName, "", "", "", "", "", "", null); } existingPackages.add(pkgName); } } cls = super.defineClass(name, clazzBytes); } if (cls != null) { resolveClass(cls); } } return cls; }
data.putInvoker(className, (Wireable) invoker);