Package org.drools.util

Examples of org.drools.util.CompositeClassLoader


  private ClassLoader getRootClassLoader() {
    RuleBase ruleBase = ((InternalKnowledgeBase) kruntime.getKnowledgeBase()).getRuleBase();
    if (ruleBase != null) {
      return ((InternalRuleBase) ((InternalKnowledgeBase) kruntime.getKnowledgeBase()).getRuleBase()).getRootClassLoader();
    }
    CompositeClassLoader result = new CompositeClassLoader();
    result.addClassLoader(this.getClass().getClassLoader());
    return result;
  }
View Full Code Here


        assertEquals( "org.test.NewBean",
                      type.getTypeClass().getName() );
        assertFalse( builder.hasErrors() );

        Package bp = builder.getPackage();
        CompositeClassLoader rootClassloader = ClassLoaderUtil.getClassLoader( new ClassLoader[]{Thread.currentThread().getContextClassLoader()},
                                                                               getClass(),
                                                                               false );
        JavaDialectRuntimeData dialectData = (JavaDialectRuntimeData) bp.getDialectRuntimeRegistry().getDialectData( "java" );
        dialectData.onAdd( bp.getDialectRuntimeRegistry(),
                           rootClassloader );

        Class newBean = rootClassloader.loadClass( "org.test.NewBean" );
        assertNotNull( newBean );
    }
View Full Code Here

                   
                    Set<KnowledgeDefinition> kdefs = getKnowledgeDefinitions( entry, newPackage );

                    KnowledgePackageImp oldPackage = (KnowledgePackageImp) this.kbase.getKnowledgePackage( newPackage.getName() );
                    AbstractRuleBase abstractRuleBase = (AbstractRuleBase) ((KnowledgeBaseImpl) this.kbase).ruleBase;
                    CompositeClassLoader rootClassLoader = abstractRuleBase.getRootClassLoader();

                    newPackage.pkg.getDialectRuntimeRegistry().onAdd( rootClassLoader );
                    newPackage.pkg.getDialectRuntimeRegistry().onBeforeExecute();
                    newPackage.pkg.getClassFieldAccessorStore().setClassFieldAccessorCache( abstractRuleBase.getClassFieldAccessorCache() );
                    newPackage.pkg.getClassFieldAccessorStore().wire();
View Full Code Here

    public void dispose() {
        for ( KnowledgePackage kp : getKnowledgePackages() ) {
            ((KnowledgePackageImp) kp).pkg.getDialectRuntimeRegistry().clear();
        }
        CompositeClassLoader root = ((ReteooRuleBase)this.getRuleBase()).getRootClassLoader();
        for ( ClassLoader sub : new ArrayList<ClassLoader>( root.getClassLoaders() ) ) {
            if ( sub instanceof JavaDialectRuntimeData.PackageClassLoader ) {
                (( JavaDialectRuntimeData.PackageClassLoader ) sub ).dispose();
            }
            root.removeClassLoader( sub );
        }

        this.mappedKnowledgeBaseListeners.clear();
        ((AbstractRuleBase) this.ruleBase).dispose();
        root.dispose();
    }
View Full Code Here

        public Class<?> loadClass( final String name,
                                   final boolean resolve ) throws ClassNotFoundException {
            Class<?> cls = fastFindClass( name );

            if (cls == null) {
                final CompositeClassLoader parent = (CompositeClassLoader) getParent();
                cls = parent.loadClass( name,
                        resolve,
                        this );
            }

            if (cls == null) {
View Full Code Here

        if ( MemoryUtil.permGenStats.isUsageThresholdExceeded(ruleBase.getConfiguration().getPermGenThreshold()) ) {
            return;
        }

        try {
            CompositeClassLoader classLoader = ruleBase.getRootClassLoader();
            if (analyzedCondition == null) {
                analyzedCondition = ((MvelConditionEvaluator) conditionEvaluator).getAnalyzedCondition(object, workingMemory, leftTuple);
            }
            conditionEvaluator = ASMConditionEvaluatorJitter.jitEvaluator(expression, analyzedCondition, declarations, classLoader, leftTuple);
        } catch (Throwable t) {
View Full Code Here

                   
                    Set<KnowledgeDefinition> kdefs = getKnowledgeDefinitions( entry, newPackage );

                    KnowledgePackageImp oldPackage = (KnowledgePackageImp) this.kbase.getKnowledgePackage( newPackage.getName() );
                    AbstractRuleBase abstractRuleBase = (AbstractRuleBase) ((KnowledgeBaseImpl) this.kbase).ruleBase;
                    CompositeClassLoader rootClassLoader = abstractRuleBase.getRootClassLoader();

                    JavaDialectRuntimeData.TypeDeclarationClassLoader tdClassLoader = (JavaDialectRuntimeData.TypeDeclarationClassLoader)
                            ((AbstractRuleBase) ((KnowledgeBaseImpl) this.kbase).ruleBase).getTypeDeclarationClassLoader();

                    newPackage.pkg.getDialectRuntimeRegistry().onAdd( rootClassLoader );
View Full Code Here

        }
        return null;
    }

    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;
    }
View Full Code Here

        return classLoader;
    }

    static ClassGenerator createInvokerClassGenerator(final InvokerStub stub, final WorkingMemory workingMemory) {
        String className = stub.getPackageName() + "." + stub.getGeneratedInvokerClassName();
        CompositeClassLoader classLoader = getCompositeClassLoader(stub, workingMemory);
        return createInvokerClassGenerator(className, stub, classLoader, getTypeResolver(stub, workingMemory, classLoader));
    }
View Full Code Here

        public Class< ? > loadClass(final String name,
                                    final boolean resolve) throws ClassNotFoundException
            Class< ? > cls = fastFindClass( name );
           
            if ( cls == null ) {
                final CompositeClassLoader parent = ( CompositeClassLoader ) getParent();
                cls = parent.loadClass( name, resolve, this );
            }       
           
            if ( cls == null ) {
                throw new ClassNotFoundException("Unable to load class: " + name);
            }
View Full Code Here

TOP

Related Classes of org.drools.util.CompositeClassLoader

Copyright © 2018 www.massapicom. 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.