当前位置: 首页>>代码示例>>Java>>正文


Java ApplicationClass类代码示例

本文整理汇总了Java中play.classloading.ApplicationClasses.ApplicationClass的典型用法代码示例。如果您正苦于以下问题:Java ApplicationClass类的具体用法?Java ApplicationClass怎么用?Java ApplicationClass使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


ApplicationClass类属于play.classloading.ApplicationClasses包,在下文中一共展示了ApplicationClass类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: rebuildAllIndexes

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public void rebuildAllIndexes() throws Exception {
    stop();
    File fl = new File(DATA_PATH);
    Files.deleteDirectory(fl);
    fl.mkdirs();
    List<ApplicationClass> classes = Play.classes.getAnnotatedClasses(Indexed.class);
    for (ApplicationClass applicationClass : classes) {
        List<JPABase> objects = JPA.em().createQuery(
                                        "select e from " + applicationClass.javaClass.getCanonicalName() + " as e")
                                        .getResultList();
        for (JPABase jpaBase : objects) {
            index(jpaBase, applicationClass.javaClass.getName());
        }
    }
    Logger.info("Rebuild index finished");
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:17,代码来源:FilesystemStore.java

示例2: openClassfile

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public InputStream openClassfile(String className) throws NotFoundException {

            if(Play.usePrecompiled) {
                try {
                    File file = Play.getFile("precompiled/java/" + className.replace(".", "/") + ".class");
                    return new FileInputStream(file);
                } catch(Exception e) {
                    Logger.error("Missing class %s", className);
                }
            }
            ApplicationClass appClass = Play.classes.getApplicationClass(className);

            if ( appClass.enhancedByteCode == null) {
                throw new RuntimeException("Trying to visit uncompiled class while enhancing. Uncompiled class: " + className);
            }

            return new ByteArrayInputStream(appClass.enhancedByteCode);
        }
 
开发者ID:eBay,项目名称:restcommander,代码行数:19,代码来源:Enhancer.java

示例3: ApplicationClassloader

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public ApplicationClassloader() {
    super(ApplicationClassloader.class.getClassLoader());
    // Clean the existing classes
    for (ApplicationClass applicationClass : Play.classes.all()) {
        applicationClass.uncompile();
    }
    pathHash = computePathHash();
    try {
        CodeSource codeSource = new CodeSource(new URL("file:" + Play.applicationPath.getAbsolutePath()), (Certificate[]) null);
        Permissions permissions = new Permissions();
        permissions.add(new AllPermission());
        protectionDomain = new ProtectionDomain(codeSource, permissions);
    } catch (MalformedURLException e) {
        throw new UnexpectedException(e);
    }
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:17,代码来源:ApplicationClassloader.java

示例4: enhance

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
@Override
public void enhance(ApplicationClass applicationClass) throws Exception {
    Class<?>[] enhancers = new Class[]{
        SigEnhancer.class,
        ControllersEnhancer.class,
        ContinuationEnhancer.class,
        MailerEnhancer.class,
        PropertiesEnhancer.class,
        LocalvariablesNamesEnhancer.class
    };
    for (Class<?> enhancer : enhancers) {
        try {
            long start = System.currentTimeMillis();
            ((Enhancer) enhancer.newInstance()).enhanceThisClass(applicationClass);
            if (Logger.isTraceEnabled()) {
                Logger.trace("%sms to apply %s to %s", System.currentTimeMillis() - start, enhancer.getSimpleName(), applicationClass.name);
            }
        } catch (Exception e) {
            throw new UnexpectedException("While applying " + enhancer + " on " + applicationClass.name, e);
        }
    }
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:23,代码来源:CorePlugin.java

示例5: listIndexes

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public List<ManagedIndex> listIndexes() {
    List<ManagedIndex> indexes = new ArrayList<ManagedIndex>();
    List<ApplicationClass> classes = Play.classes.getAnnotatedClasses(Indexed.class);
    for (ApplicationClass applicationClass : classes) {
        ManagedIndex index = new ManagedIndex();
        index.name = applicationClass.javaClass.getName();
        index.optimized = getIndexSearcher(index.name).getIndexReader().isOptimized();
        index.documentCount = getIndexSearcher(index.name).getIndexReader().numDocs();
        index.jpaCount =  (Long ) JPA.em().createQuery("select count (*) from " + applicationClass.javaClass.getCanonicalName()+ ")").getSingleResult();
        indexes.add(index);
    }
    return indexes;
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:14,代码来源:FilesystemStore.java

示例6: init

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public static void init() {
    Logger.debug("init FileExtractor");
    List<ApplicationClass> classes = Play.classes.getAssignableClasses(TextExtractor.class);
    List<TextExtractor> extractors = new ArrayList<TextExtractor>();
    for (ApplicationClass applicationClass : classes) {
        try {
            Logger.trace("adding %s as a TextExtractor", applicationClass.name);
            extractors.add((TextExtractor) applicationClass.javaClass.newInstance());
        } catch (Exception e) {
            Logger.warn(e,"Could not instanciate text extractor %s",applicationClass.javaClass.getName());
        }
    }
    FileExtractor.extractors = extractors;
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:15,代码来源:FileExtractor.java

示例7: DatabaseException

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public DatabaseException(String message, Throwable cause) {
    super(message, cause);
    StackTraceElement element = getInterestingStrackTraceElement(cause);
    if(element != null) {
        ApplicationClass applicationClass = Play.classes.getApplicationClass(element.getClassName());
        sourceFile = applicationClass.javaFile.relativePath();
        source = Arrays.asList(applicationClass.javaSource.split("\n"));
        line = element.getLineNumber();
    }
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:11,代码来源:DatabaseException.java

示例8: MailException

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public MailException(String message, Throwable cause) {
    super(message, cause);
    StackTraceElement element = getInterestingStrackTraceElement(cause);
    if(element != null) {
        ApplicationClass applicationClass = Play.classes.getApplicationClass(element.getClassName());
        sourceFile = applicationClass.javaFile.relativePath();
        source = Arrays.asList(applicationClass.javaSource.split("\n"));
        line = element.getLineNumber();
    }
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:11,代码来源:MailException.java

示例9: CacheException

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public CacheException(String message, Throwable cause) {
    super(message, cause);
    StackTraceElement element = getInterestingStrackTraceElement(cause);
    if(element != null) {
        ApplicationClass applicationClass = Play.classes.getApplicationClass(element.getClassName());
        sourceFile = applicationClass.javaFile.relativePath();
        source = Arrays.asList(applicationClass.javaSource.split("\n"));
        line = element.getLineNumber();
    }
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:11,代码来源:CacheException.java

示例10: enhanceThisClass

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
@Override
public void enhanceThisClass(ApplicationClass applicationClass) throws Exception {
    if (isScala(applicationClass)) {
        return;
    }

    CtClass ctClass = makeClass(applicationClass);

    if (!ctClass.subtypeOf(classPool.get(Mailer.class.getName()))) {
        return;
    }

    for (final CtMethod ctMethod : ctClass.getDeclaredMethods()) {

        if (Modifier.isPublic(ctMethod.getModifiers()) && Modifier.isStatic(ctMethod.getModifiers()) && ctMethod.getReturnType().isPrimitive()) {
            try {
                ctMethod.insertBefore("if(infos.get() != null) {play.Logger.warn(\"You call " + ctMethod.getLongName() + " from \" + ((java.util.Map)infos.get()).get(\"method\") + \". It's forbidden in a Mailer. It will propably fail...\", new Object[0]);}; infos.set(new java.util.HashMap());((java.util.Map)infos.get()).put(\"method\", \"" + ctMethod.getLongName() + "\");");
                ctMethod.insertAfter("infos.set(null);", true);
            } catch (Exception e) {
                Logger.error(e, "Error in MailerEnhancer");
                throw new UnexpectedException("Error in MailerEnhancer", e);
            }
        }

    }

    // Done.
    applicationClass.enhancedByteCode = ctClass.toBytecode();
    ctClass.defrost();

}
 
开发者ID:eBay,项目名称:restcommander,代码行数:32,代码来源:MailerEnhancer.java

示例11: isEnhanced

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
public static boolean isEnhanced(String appClassName) {
    ApplicationClass appClass = Play.classes.getApplicationClass( appClassName);
    if ( appClass == null) {
        return false;
    }

    // All classes enhanced for Continuations are implementing the interface EnhancedForContinuations
    return EnhancedForContinuations.class.isAssignableFrom( appClass.javaClass );
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:10,代码来源:ContinuationEnhancer.java

示例12: enhanceThisClass

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
@Override
public void enhanceThisClass(ApplicationClass applicationClass) throws Exception {
    if (isScala(applicationClass)) {
        return;
    }

    CtClass ctClass = makeClass(applicationClass);

    if (!ctClass.subtypeOf(classPool.get(ControllersEnhancer.ControllerSupport.class.getName()))) {
        return ;
    }


    boolean needsContinuations = shouldEnhance( ctClass );

    if (!needsContinuations) {
        return;
    }


    // To be able to runtime detect if a class is enhanced for Continuations,
    // we add the interface EnhancedForContinuations to the class
    CtClass enhancedForContinuationsInterface;
    try {
        InputStream in = getClass().getClassLoader().getResourceAsStream("play/classloading/enhancers/EnhancedForContinuations.class");
        enhancedForContinuationsInterface = classPool.makeClass( in );
        in.close();
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    ctClass.addInterface( enhancedForContinuationsInterface );

    // Apply continuations
    applicationClass.enhancedByteCode = new AsmClassTransformer().transform( ctClass.toBytecode());

    ctClass.defrost();
    enhancedForContinuationsInterface.defrost();
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:39,代码来源:ContinuationEnhancer.java

示例13: getAssignableClasses

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
/**
 * Retrieve all application classes assignable to this class.
 * @param clazz The superclass, or the interface.
 * @return A list of class
 */
public List<Class> getAssignableClasses(Class clazz) {
    getAllClasses();
    List<Class> results = new ArrayList<Class>();
    for (ApplicationClass c : Play.classes.getAssignableClasses(clazz)) {
        results.add(c.javaClass);
    }
    return results;
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:14,代码来源:ApplicationClassloader.java

示例14: getClassIgnoreCase

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
/**
 * Find a class in a case insensitive way
 * @param name The class name.
 * @return a class
 */
public Class getClassIgnoreCase(String name) {
    getAllClasses();
    for (ApplicationClass c : Play.classes.all()) {
        if (c.name.equalsIgnoreCase(name) || c.name.replace("$", ".").equalsIgnoreCase(name)) {
            if (Play.usePrecompiled) {
                return c.javaClass;
            }
            return loadApplicationClass(c.name);
        }
    }
    return null;
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:18,代码来源:ApplicationClassloader.java

示例15: getAnnotatedClasses

import play.classloading.ApplicationClasses.ApplicationClass; //导入依赖的package包/类
/**
 * Retrieve all application classes with a specific annotation.
 * @param clazz The annotation class.
 * @return A list of class
 */
public List<Class> getAnnotatedClasses(Class<? extends Annotation> clazz) {
    getAllClasses();
    List<Class> results = new ArrayList<Class>();
    for (ApplicationClass c : Play.classes.getAnnotatedClasses(clazz)) {
        results.add(c.javaClass);
    }
    return results;
}
 
开发者ID:eBay,项目名称:restcommander,代码行数:14,代码来源:ApplicationClassloader.java


注:本文中的play.classloading.ApplicationClasses.ApplicationClass类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。