All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alibaba.jvm.sandbox.api.Information Maven / Gradle / Ivy

There is a newer version: 1.4.0
Show newest version
package com.alibaba.jvm.sandbox.api;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 模块信息
 *
 * @author [email protected]
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Information {

    /**
     * 未知版本
     */
    String UNKNOW_VERSION = "UNKNOW_VERSION";

    /**
     * 未知作者
     */
    String UNKNOW_AUTHOR = "UNKNOW_AUTHOR";

    /**
     * 模块ID
     * 全JVM唯一标记了一个模块,所有基于模块的操作都将基于此ID来完成
     *
     * @return 模块ID
     */
    String id();

    /**
     * 模块期待沙箱的加载模式
     * 

* 一些模块对沙箱的启动方式有特殊要求,比如必须要求沙箱以{@code AGENT}的方式启动才能正常工作 * 通过设置这个标记位可以让沙箱加载模块的时候做一个判断,不符合模块期待的,当前模块将不会被加载 *

* * @return 期待沙箱的加载模式 */ Mode[] mode() default {Mode.AGENT, Mode.ATTACH}; /** * 是否在加载时候就激活模块。 * * @return 当值为TRUE时,模块加载完成后会主动激活模块; * 当值为FALSE时,模块加载完成后状态为冻结 */ boolean isActiveOnLoad() default true; /** * 定义模块版本号 * * @return 模块版本号 */ String version() default UNKNOW_VERSION; /** * 定义模块作者 * * @return 模块作者 */ String author() default UNKNOW_AUTHOR; /** * 加载方式 */ enum Mode { /** * 通过agent方式加载 */ AGENT, /** * 通过attach方式加载 */ ATTACH, } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy