zoukankan      html  css  js  c++  java
  • http://classworlds.codehaus.org/apiusage.html

    API Usage

    The Java API can be used to create new realms and connect realms together through importation of specific packages.

    The core of the classworlds infrastructure is the ClassWorld class. An application must create a ClassWorld instance. It is advisable to store the instance as a singleton or some other handy location.

    ClassWorld world = new ClassWorld();
    

    Once a ClassWorld is created, realms within it can be created. These realms effectively only allow loading of the core JVM classes.

    ClassWorld world = new ClassWorld();
    
    ClassRealm containerRealm    = world.newRealm( "container" );
    ClassRealm logComponentRealm = world.newRealm( "logComponent" );
    

    In order to make each ClassRealm useful, constituent must be added to that each can provide certain classes.

    containerRealm.addConstituent( containerJarUrl );
    logComponentRealm.addConstituent( logComponentJarUrl );
    

    Now, links between the various realms need to be created to allow classes loaded from one to be available to classes loaded in another.

    logComponentRealm.importFrom( "container", 
                                  "com.werken.projectz.component" );
    

    The container implementation can then be loaded from it's realm and used.

    Class containerClass = containerRealm.loadClass( CONTAINER_CLASSNAME );
    
    MyContainer container = (MyContainer) containerClass.newInstance();
    
    Thread.currentThread().setContextClassLoader( containerRealm.getClassLoader() );
    
    container.run();
    

    Ideally, the container itself would be responsible for creating a ClassRealm for each component that's loaded, and importing the component contract interfaces into the component's ClassRealm and using loadClass(..) to gain entry into the sandboxed component realm.

  • 相关阅读:
    prometheus,alertmanager 报警配置详解
    使用 kubeadm 搭建 kubernetes1.10 集群
    kibana-sentinl-监控报警
    ELK集群模式部署
    mongo 误操作恢复数据
    mongo 实时同步工具 mongosync
    移动端巨坑——iphone6Plus默认设置不使用sessionStorage
    iphone6 Plus seesionStorage失效
    移动端手势拖拽排序神器Sortable.js
    vue使用swiper(转)
  • 原文地址:https://www.cnblogs.com/heidsoft/p/4179249.html
Copyright © 2011-2022 走看看