richie
6 years ago
commit
08b8e0d3c2
27 changed files with 394 additions and 0 deletions
@ -0,0 +1,6 @@
|
||||
*.iml |
||||
.idea/ |
||||
.DS_Store |
||||
.classpath |
||||
target/ |
||||
lib/report/*.jar |
@ -0,0 +1,130 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||
<project basedir="." default="jar" name="plugin"> |
||||
<!-- JDK路径,根据自己机器上实际位置修改--> |
||||
<property name="jdk.home" value="/Library/Java/JavaVirtualMachines/jdk1.8/Contents/Home"/> |
||||
|
||||
<property name="libs" value="${basedir}/lib"/> |
||||
<property name="publicLibs" value=""/> |
||||
<property name="reportLibs" value="${basedir}/../webroot/WEB-INF/lib"/> |
||||
<property name="destLoc" value="."/> |
||||
<property name="classes" value="classes"/> |
||||
<xmlproperty file="${basedir}/plugin.xml"/> |
||||
<property name="current-version" value="${plugin.version}"/> |
||||
|
||||
<!-- 插件版本--> |
||||
<property name="plugin-version" value="${current-version}"/> |
||||
<!-- 插件名字--> |
||||
<property name="plugin-name" value="oss-universal-config"/> |
||||
<property name="plugin-jar" value="fr-plugin-${plugin-name}-${plugin-version}.jar"/> |
||||
|
||||
<target name="prepare"> |
||||
<delete dir="${classes}"/> |
||||
<delete dir="fr-plugin-${plugin-name}-${plugin-version}"/> |
||||
<xmlproperty file="${basedir}/plugin.xml"/> |
||||
<delete dir="${destLoc}/${plugin.name}"/> |
||||
</target> |
||||
<path id="compile.classpath"> |
||||
<fileset dir="${libs}"> |
||||
<include name="**/*.jar"/> |
||||
</fileset> |
||||
<fileset dir="${publicLibs}"> |
||||
<include name="**/*.jar"/> |
||||
</fileset> |
||||
<fileset dir="${reportLibs}"> |
||||
<include name="**/*.jar"/> |
||||
</fileset> |
||||
</path> |
||||
<patternset id="resources4Jar"> |
||||
<exclude name="**/.settings/**"/> |
||||
<exclude name=".classpath"/> |
||||
<exclude name=".project"/> |
||||
|
||||
<exclude name="**/*.java"/> |
||||
<exclude name="**/*.db"/> |
||||
<exclude name="**/*.g"/> |
||||
<exclude name="**/package.html"/> |
||||
</patternset> |
||||
<target name="copy_resources"> |
||||
<echo message="从${resources_from}拷贝图片,JS,CSS等资源文件"/> |
||||
<delete dir="tmp"/> |
||||
<copy todir="tmp"> |
||||
<fileset dir="${resources_from}/src/main/resources"> |
||||
<patternset refid="resources4Jar"/> |
||||
</fileset> |
||||
</copy> |
||||
<copy todir="${classes}"> |
||||
<fileset dir="tmp"/> |
||||
</copy> |
||||
<delete dir="tmp"/> |
||||
</target> |
||||
<target name="compile_javas"> |
||||
<echo message="编译${compile_files}下的Java文件"/> |
||||
<javac destdir="${classes}" debug="false" optimize="on" source="${source_jdk_version}" |
||||
target="${target_jdk_version}" |
||||
fork="true" memoryMaximumSize="512m" listfiles="false" srcdir="${basedir}" |
||||
executable="${compile_jdk_version}/bin/javac"> |
||||
<src path="${basedir}/src/main/java"/> |
||||
<exclude name="**/.svn/**"/> |
||||
<compilerarg line="-encoding UTF8 "/> |
||||
<classpath refid="compile.classpath"/> |
||||
</javac> |
||||
<taskdef name="pretreatment" classname="com.fr.plugin.pack.PluginPretreatmentTask"> |
||||
<classpath refid="compile.classpath"/> |
||||
</taskdef> |
||||
<pretreatment baseDir="${basedir}"/> |
||||
</target> |
||||
|
||||
<target name="jar_classes"> |
||||
<echo message="打Jar包:${jar_name}"/> |
||||
<delete file="${basedir}/${jar_name}"/> |
||||
<jar jarfile="${basedir}/${jar_name}"> |
||||
<fileset dir="${classes}"> |
||||
</fileset> |
||||
</jar> |
||||
</target> |
||||
|
||||
<target name="super_jar" depends="prepare"> |
||||
<antcall target="copy_resources"> |
||||
<param name="resources_from" value="${basedir}"/> |
||||
</antcall> |
||||
<antcall target="compile_javas"> |
||||
<param name="source_jdk_version" value="1.6"/> |
||||
<param name="target_jdk_version" value="1.6"/> |
||||
<param name="compile_jdk_version" value="${jdk.home}"/> |
||||
<param name="compile_files" value="${basedir}/src"/> |
||||
</antcall> |
||||
<echo message="compile plugin success!"/> |
||||
|
||||
<antcall target="jar_classes"> |
||||
<param name="jar_name" value="${plugin-jar}"/> |
||||
</antcall> |
||||
<delete dir="${classes}"/> |
||||
|
||||
</target> |
||||
|
||||
<target name="jar" depends="super_jar"> |
||||
<antcall target="zip"/> |
||||
</target> |
||||
|
||||
<target name="zip"> |
||||
<property name="plugin-folder" value="fr-plugin-${plugin-name}-${plugin-version}"/> |
||||
<echo message="----------zip files----------"/> |
||||
<mkdir dir="${plugin-folder}"/> |
||||
<copy todir="${plugin-folder}"> |
||||
<fileset dir="."> |
||||
<include name="${plugin-jar}"/> |
||||
<include name="plugin.xml"/> |
||||
</fileset> |
||||
<fileset dir="${libs}"> |
||||
<include name="*.jar"/> |
||||
<include name="*.dll"/> |
||||
</fileset> |
||||
</copy> |
||||
<zip destfile="${basedir}/${plugin-folder}.zip" basedir="."> |
||||
<include name="${plugin-folder}/*.jar"/> |
||||
<include name="${plugin-folder}/*.dll"/> |
||||
<include name="${plugin-folder}/plugin.xml"/> |
||||
</zip> |
||||
<move file="${plugin-folder}.zip" todir="${destLoc}/install"/> |
||||
</target> |
||||
</project> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
||||
<plugin> |
||||
<id>com.fr.plugin.oss.universal</id> |
||||
<name><![CDATA[通用OSS配置]]></name> |
||||
<active>yes</active> |
||||
<version>4.0</version> |
||||
<env-version>10.0</env-version> |
||||
<jartime>2018-11-20</jartime> |
||||
<vendor>author</vendor> |
||||
<description><![CDATA[OSS通用账号配置。]]></description> |
||||
<change-notes><![CDATA[ |
||||
[2018-11-05]初始化插件。<br/> |
||||
]]></change-notes> |
||||
<extra-core> |
||||
<LocaleFinder class="com.fr.plugin.oss.universal.OssUniversalLocaleBridge"/> |
||||
</extra-core> |
||||
<lifecycle-monitor class="com.fr.plugin.oss.universal.OssUniversalBridge"/> |
||||
<function-recorder class="com.fr.plugin.oss.universal.config.OssUniversalConfig"/> |
||||
</plugin> |
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?> |
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" |
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<parent> |
||||
<groupId>com.fr.plugin</groupId> |
||||
<artifactId>starter</artifactId> |
||||
<version>10.0</version> |
||||
</parent> |
||||
<packaging>jar</packaging> |
||||
<artifactId>oss-universal-config</artifactId> |
||||
<build> |
||||
<!---如果要更改调试插件,改这里的配置就可以了--> |
||||
<outputDirectory>${project.basedir}/../webroot/WEB-INF/plugins/plugin-com.fr.plugin.oss.universal-4.0/classes</outputDirectory> |
||||
</build> |
||||
</project> |
@ -0,0 +1,32 @@
|
||||
# 通用OSS配置 |
||||
|
||||
## 插件依赖 |
||||
当新插件需要使用OSS文件存储系统时,只需要依赖该插件即可,依赖方式如下: |
||||
在plugin.xml中添加 |
||||
|
||||
``` |
||||
<dependence> |
||||
<item type="plugin" key="com.fr.plugin.oss.universal"> |
||||
</dependence> |
||||
|
||||
``` |
||||
|
||||
## 配置查看和更改 |
||||
|
||||
进入决策平台->系统管理菜单,切换到常规tab页,可以看到包含了OSS的配置界面,如下图所示 |
||||
|
||||
![1](screeshots/1.png) |
||||
|
||||
## API接口 |
||||
|
||||
``` |
||||
OssUniversalConfig config = com.fr.plugin.oss.universal.config.OssUniversalConfig.getInstance(); |
||||
// 获取EndPoint |
||||
config.getEndPoint(); |
||||
// 获取AccessKeyId |
||||
config.getAccessKeyId(); |
||||
// 获取AccessKeySecret |
||||
config.getRealAccessKeySecret(); |
||||
// 获取所有的可用Bucket信息 |
||||
config.getArrayBuckets(); |
||||
``` |
After Width: | Height: | Size: 161 KiB |
@ -0,0 +1,23 @@
|
||||
package com.fr.plugin.oss.universal; |
||||
|
||||
import com.fr.plugin.context.PluginContext; |
||||
import com.fr.plugin.observer.inner.AbstractPluginLifecycleMonitor; |
||||
import com.fr.plugin.oss.universal.config.OssUniversalConfig; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2018-12-26 |
||||
*/ |
||||
public class OssUniversalBridge extends AbstractPluginLifecycleMonitor { |
||||
|
||||
@Override |
||||
public void afterRun(PluginContext pluginContext) { |
||||
OssUniversalConfig.getInstance(); |
||||
} |
||||
|
||||
@Override |
||||
public void beforeStop(PluginContext pluginContext) { |
||||
|
||||
} |
||||
} |
@ -0,0 +1,15 @@
|
||||
package com.fr.plugin.oss.universal; |
||||
|
||||
import com.fr.stable.fun.impl.AbstractLocaleFinder; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2018-12-26 |
||||
*/ |
||||
public class OssUniversalLocaleBridge extends AbstractLocaleFinder { |
||||
@Override |
||||
public String find() { |
||||
return "com/fr/plugin/oss/universal/config/locale/universal"; |
||||
} |
||||
} |
@ -0,0 +1,142 @@
|
||||
package com.fr.plugin.oss.universal.config; |
||||
|
||||
import com.fr.config.ConfigContext; |
||||
import com.fr.config.DefaultConfiguration; |
||||
import com.fr.config.Identifier; |
||||
import com.fr.config.Status; |
||||
import com.fr.config.Visualization; |
||||
import com.fr.config.holder.Conf; |
||||
import com.fr.config.holder.factory.Holders; |
||||
import com.fr.intelli.record.Focus; |
||||
import com.fr.record.analyzer.EnableMetrics; |
||||
import com.fr.stable.StringUtils; |
||||
|
||||
/** |
||||
* @author richie |
||||
* @version 10.0 |
||||
* Created by richie on 2018-12-26 |
||||
* 通用的OSS配置,包括EndPoint、accessKey、accessSecretKey、可选Bucket等 |
||||
*/ |
||||
@Visualization(category = "Plugin-Oss_Universal_Config") |
||||
@SuppressWarnings("all") |
||||
@EnableMetrics |
||||
public class OssUniversalConfig extends DefaultConfiguration { |
||||
|
||||
private static final String PASSWORD_HOLDER = "*************"; |
||||
|
||||
private static volatile OssUniversalConfig config = null; |
||||
|
||||
public static OssUniversalConfig getInstance() { |
||||
if (config == null) { |
||||
config = ConfigContext.getConfigInstance(OssUniversalConfig.class); |
||||
} |
||||
return config; |
||||
} |
||||
|
||||
// 地域节点配置信息
|
||||
@Identifier(value = "endPoint", name = "EndPoint", description = "Plugin-Oss_Universal_End_Point", status = Status.SHOW) |
||||
private Conf<String> endPoint = Holders.simple(StringUtils.EMPTY); |
||||
|
||||
@Identifier(value = "accessKeyId", name = "AccessKeyId", description = "Plugin-Oss_Universal_AccessKeyId", status = Status.SHOW) |
||||
private Conf<String> accessKeyId = Holders.simple(StringUtils.EMPTY); |
||||
|
||||
@Identifier(value = "accessKeySecret", name = "AccessKeySecret", description = "Plugin-Oss_Universal_AccessKeySecret", status = Status.SHOW) |
||||
private Conf<String> accessKeySecret = Holders.simple(StringUtils.EMPTY); |
||||
|
||||
@Identifier(value = "buckets", name = "Buckets", description = "Plugin-Oss_Universal_Buckets", status = Status.SHOW) |
||||
private Conf<String> buckets = Holders.simple(StringUtils.EMPTY); |
||||
|
||||
/** |
||||
* 获取地域信息 |
||||
* @return 地域信息 |
||||
*/ |
||||
public String getEndPoint() { |
||||
return endPoint.get(); |
||||
} |
||||
|
||||
/** |
||||
* 设置地域信息 |
||||
* @param endPoint OSS所在的地域 |
||||
*/ |
||||
@Focus(id="com.fr.plugin.oss.universal", text = "Plugin-Oss_Universal_Config") |
||||
public void setEndPoint(String endPoint) { |
||||
this.endPoint.set(endPoint); |
||||
} |
||||
|
||||
/** |
||||
* 获取账号 |
||||
* @return 账号 |
||||
*/ |
||||
public String getAccessKeyId() { |
||||
return accessKeyId.get(); |
||||
} |
||||
|
||||
/** |
||||
* 设置账号 |
||||
* @param accessKeyId 账号 |
||||
*/ |
||||
public void setAccessKeyId(String accessKeyId) { |
||||
this.accessKeyId.set(accessKeyId); |
||||
} |
||||
|
||||
/** |
||||
* 获取密码 |
||||
* @return 密码 |
||||
*/ |
||||
public String getRealAccessKeySecret() { |
||||
return accessKeySecret.get(); |
||||
} |
||||
|
||||
/** |
||||
* 获取密码 |
||||
* @return 密码 |
||||
*/ |
||||
public String getAccessKeySecret() { |
||||
return PASSWORD_HOLDER; |
||||
} |
||||
|
||||
/** |
||||
* 设置密码 |
||||
* @param accessKeySecret 密码 |
||||
*/ |
||||
public void setAccessKeySecret(String accessKeySecret) { |
||||
if (PASSWORD_HOLDER.equals(accessKeySecret)) { |
||||
return; |
||||
} |
||||
this.accessKeySecret.set(accessKeySecret); |
||||
} |
||||
|
||||
/** |
||||
* 获取可用数据桶 |
||||
* @return 数据桶,多个数据桶以逗号分隔 |
||||
*/ |
||||
public String getBuckets() { |
||||
return buckets.get(); |
||||
} |
||||
|
||||
/** |
||||
* 设置数据桶,多个数据桶以逗号分隔 |
||||
* @param text 数据桶 |
||||
*/ |
||||
public void setBuckets(String text) { |
||||
buckets.set(text); |
||||
} |
||||
|
||||
/** |
||||
* 以数组的形式获取数据桶信息 |
||||
* @return 可用数据桶组成的数组 |
||||
*/ |
||||
public String[] getArrayBuckets() { |
||||
return buckets.get().split(","); |
||||
} |
||||
|
||||
@Override |
||||
public Object clone() throws CloneNotSupportedException { |
||||
OssUniversalConfig cloned = (OssUniversalConfig) super.clone(); |
||||
cloned.endPoint = (Conf<String>) endPoint.clone(); |
||||
cloned.accessKeyId = (Conf<String>) accessKeyId.clone(); |
||||
cloned.accessKeySecret = (Conf<String>) accessKeySecret.clone(); |
||||
cloned.buckets = (Conf<String>) buckets.clone(); |
||||
return cloned; |
||||
} |
||||
} |
@ -0,0 +1,5 @@
|
||||
Plugin-Oss_Universal_Config=Oss Universal Config |
||||
Plugin-Oss_Universal_End_Point=EndPoint |
||||
Plugin-Oss_Universal_AccessKeyId=AccessKeyId |
||||
Plugin-Oss_Universal_AccessKeySecret=AccessKeySecret |
||||
Plugin-Oss_Universal_Buckets=Buckets |
@ -0,0 +1,5 @@
|
||||
Plugin-Oss_Universal_Config=OSS\u901A\u7528\u914D\u7F6E |
||||
Plugin-Oss_Universal_End_Point=\u5730\u57DF\u4FE1\u606F\uFF0C\u53EF\u4EE5\u5728OSS\u63A7\u5236\u53F0\u67E5\u770B |
||||
Plugin-Oss_Universal_AccessKeyId=AccessKeyId |
||||
Plugin-Oss_Universal_AccessKeySecret=AccessKeySecret |
||||
Plugin-Oss_Universal_Buckets=\u8BBE\u8BA1\u6A21\u677F\u65F6\u53EF\u4F9B\u9009\u62E9\u7684\u6570\u636E\u7A7A\u95F4\uFF0C\u591A\u4E2A\u6570\u636E\u7A7A\u95F4\u4F7F\u7528\u82F1\u6587\u9017\u53F7\u5206\u9694 |
Loading…
Reference in new issue