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

org.zodiac.plugin.integration.IntegrationConfiguration Maven / Gradle / Ivy

There is a newer version: 1.6.8
Show newest version
package org.zodiac.plugin.integration;

import org.pf4j.RuntimeMode;

import java.util.List;
import java.util.Set;

/**
 * 插件集成时的配置接口。插件集成的配置接口。
 */
public interface IntegrationConfiguration {

    /**
     * 运行环境。运行项目时的模式。分为开发环境(DEVELOPMENT)、生产环境(DEPLOYMENT)
     * 
     * @return RuntimeMode.DEVELOPMENT、RuntimeMode.DEPLOYMENT
     */
    RuntimeMode environment();

    /**
     * 插件的路径。可设置多个插件路径 开发环境建议直接配置为插件模块的父级目录。例如: plugins。如果启动主程序时, 插件为加载, 请检查该配置是否正确。
     * 
     * @return 插件的路径
     */
    List pluginPath();

    /**
     * 插件文件的配置路径。在生产环境下, 插件的配置文件路径。 在生产环境下, 请将所有插件使用到的配置文件统一放到该路径下管理。 在开发环境下,配置为空串。程序会自动从 resources 获取配置文件,
     * 所以请确保编译后的target 下存在该配置文件
     * 
     * @return 插件文件的配置路径
     */
    String pluginConfigFilePath();

    /**
     * 上传插件包存储的临时路径。默认 temp(相对于主程序jar路径)。
     * 
     * @return 上传插件的临时保存路径。
     */
    String uploadTempPath();

    /**
     * 插件备份路径。默认 backupPlugin (相对于主程序jar路径)。
     * 
     * @return 插件备份路径。
     */
    String backupPath();

    /**
     * 插件 RestController 统一请求的路径前缀
     * 
     * @return path
     */
    String pluginRestPathPrefix();

    /**
     * 是否启用插件id作为RestController的路径前缀。 如果启用。则路径前缀为 pluginRestPathPrefix() 返回的路径拼接插件id, 即为: /pathPrefix/pluginId/**
     * 
     * @return boolean
     */
    boolean enablePluginIdRestPathPrefix();

    /**
     * 是否启用该插件框架
     * 
     * @return true 启用, false 禁用
     */
    boolean enable();

    /**
     * 启用的插件id
     * 
     * @return Set
     */
    Set enablePluginIds();

    /**
     * 禁用的插件id, 禁用后系统不会启动该插件 如果禁用所有插件, 则Set集合中返回一个字符: *
     * 
     * @return Set
     */
    Set disablePluginIds();

    /**
     * 是否启用Swagger刷新机制
     * 
     * @return 启用返回true, 不启用返回 false
     */
    boolean enableSwaggerRefresh();

    /**
     * 设置初始化时插件启动的顺序.
     * 
     * @return 有顺序的插件id
     */
    List sortInitPluginIds();

    /**
     * 当前主程序的版本号, 用于校验插件是否可安装. 插件中可通过插件配置信息 requires 来指定可安装的主程序版本
     * 
     * @return 系统版本号, 如果为: 0.0.0 的话, 表示不校验
     */
    String version();

    /**
     * 设置为true表示插件设置的requires的版本号完全匹配version版本号才可允许插件安装, 即: [requires]=[x.y.z] 设置为false表示插件设置的requires的版本号小于等于version值,
     * 插件就可安装, 即[requires]小于等于[x.y.z] 默认为false
     * 
     * @return true or false
     */
    boolean exactVersionAllowed();

    /**
     * 是否启用webSocket功能. 如需启用, 则需要引入springboot支持的WebSocket依赖
     * 
     * @return 启用返回true,不启用返回false
     */
    boolean enableWebSocket();

    /**
     * 停止插件时, 是否停止依赖的插件
     * 
     * @return 停止返回true,不停止返回false
     */
    boolean stopDependents();

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy