first commit

This commit is contained in:
kid 2025-05-13 09:59:31 +08:00
commit ef39bf60bf
85 changed files with 6649 additions and 0 deletions

55
.gitignore vendored Normal file
View File

@ -0,0 +1,55 @@
######################################################################
# Build Tools
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
target/
!.mvn/wrapper/maven-wrapper.jar
.flattened-pom.xml
######################################################################
# IDE
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
nbproject/private/
build/*
nbbuild/
dist/
nbdist/
.nb-gradle/
######################################################################
# Others
*.log
*.xml.versionsBackup
*.swp
logs/
!*/build/*.java
!*/build/*.html
!*/build/*.xml
### JRebel ###
rebel.xml
application-my.yaml
/yudao-ui-app/unpackage/
**/.DS_Store

30
README.md Normal file
View File

@ -0,0 +1,30 @@
[码云yudao-ui-admin-vue3](https://gitee.com/yudaocode/yudao-ui-admin-vue3)
[码云ruoyi-vue-pro](https://gitee.com/zhijiantianya/ruoyi-vue-pro)
[项目文档ruoyi-vue-pro](https://doc.iocoder.cn)
[项目文档ruoyi-vue-cloud](https://cloud.iocoder.cn)
站内消息服务
## 一键改包
boot模块下执行ProjectReactor的main方法即可
## 接口文档
http://127.0.0.1:${port}/doc.html
## 去掉test包
test只是为了验证接口文档和分页功能正常.通过之后可以删除.记得同步修改以下文件
application.properties
```properties
#mybatis-plus.type-aliases-package=com.primeton.eos.demo.core.test.entity.bo
# 改成以下配置(去掉test)
mybatis-plus.type-aliases-package=com.primeton.eos.demo.core.entity.bo
```
Application.java
```java
//@MapperScan(basePackages={"com.primeton.eos.demo.core.test.mapper","com.primeton.eos.demo.core.mapper"})
@MapperScan(basePackages={"com.primeton.eos.demo.core.mapper"})
```

View File

@ -0,0 +1,39 @@
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.primeton.eos</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<relativePath>../</relativePath>
</parent>
<artifactId>com.primeton.eos.demo.api</artifactId>
<name>com.primeton.eos.demo.api</name>
<dependencies>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>eos-server-system-annotation</artifactId>
</dependency>
<dependency>
<groupId>com.primeton.eos.extension</groupId>
<artifactId>com.primeton.eos.foundation</artifactId>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.model</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,9 @@
Manifest-Version: 1.0
Bundle-SymbolicName: com.primeton.eos.demo.api
Bundle-Name: com.primeton.eos.demo.api
Bundle-Version: 1.0.0
Bundle-Vendor: 40108
Require-Bundle:
eos-webCtxPath: eos
Bundle-Description:

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- MBean config -->
<module name="Mbean">
<!-- DataSourceMBean config -->
<group name="DatasourceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.ContributionDataSourceConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--<group name="ContributionLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">log</configValue>
</group>-->
</module>
<!-- datasource config -->
<module name="DataSource">
<group name="Reference">
<!--
the configuration below describes
the corresponding relationship between contribution datasource and application datasource,
multiple datasources can be defined.
the value 'default' of attibute 'key' denotes a contribution datasource
and the field value 'default' of 'configValue' node stands for an application datasource.
-->
<configValue key="default">default</configValue>
</group>
</module>
</contribution>

View File

@ -0,0 +1,3 @@
<handlers>
<!--<handler handle-class="com.primeton.runtime.resource.event.ContributionDemoListener"/>-->
</handlers>

View File

@ -0,0 +1,6 @@
#exception properties resource file.
#content format:
# code=message
#for example:
# 100001=It occur when [{0}] execute.

View File

@ -0,0 +1,6 @@
#I18N properties resource file.
#content format:
# code=message
#for example:
# 10000=name

View File

@ -0,0 +1,194 @@
<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">
<parent>
<groupId>com.primeton.eos</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<relativePath>../</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>com.primeton.eos.demo.boot</artifactId>
<name>com.primeton.eos.demo.boot</name>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.model</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.starter</artifactId>
<version>1.0.0</version>
</dependency>
<!-- 达梦驱动 -->
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.1.193</version>
</dependency>
<!-- 不引入swagger会报错 -->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.5.0</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>true</executable>
<layout>ZIP</layout>
<excludeGroupIds>
mysql,
dameng,
com.huawei.gauss.jdbc.ZenithDriver,
com.oracle.ojdbc,
com.primeton.3rd.jdbc,
com.microsoft.sqlserver,
com.ibm.db2.jcc,
org.postgresql,
org.mongodb,
com.clickhouse,
ru.yandex.clickhouse,
org.apache.hive,
org.apache.hive.shims,
org.apache.thrift,
org.apache.hadoop,
org.apache.hbase,
org.apache.hbase.thirdparty
</excludeGroupIds>
</configuration>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>unpack</id>
<phase>prepare-package</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.primeton.eos</groupId>
<artifactId>eos-server-db-scripts</artifactId>
<version>${eos.version}</version>
<outputDirectory>target/eos-db-scripts</outputDirectory>
</artifactItem>
<artifactItem>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.model</artifactId>
<version>1.0.0</version>
<outputDirectory>target/demo-db-scripts</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<!-- 获取微前端或前端组件的资源包 -->
<!--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>download-front-resources</id>
<phase>prepare-package</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<get
src="http://xxx.zip"
dest="${project.build.directory}/health_app.zip" />
</target>
</configuration>
</execution>
</executions>
</plugin>
-->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<attach>true</attach>
<appendAssemblyId>false</appendAssemblyId>
<tarLongFileMode>gnu</tarLongFileMode>
<descriptors>
<descriptor>src/META-INF/assembly/assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
<!-- 增加组件打包入口 -->
<!-- <execution>
<id>make-assembly-component</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<attach>true</attach>
<appendAssemblyId>false</appendAssemblyId>
<tarLongFileMode>gnu</tarLongFileMode>
<descriptors>
<descriptor>
src/META-INF/assembly/assembly-component.xml</descriptor>
</descriptors>
<finalName>health_component_v1.0.0</finalName>
</configuration>
</execution> -->
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,7 @@
#
#Wed Apr 16 10:29:28 GMT+08:00 2025
componentType=com.primeton.component.contribution
contributionKind=boot
contributionName=com.primeton.eos.demo.boot
autoDeploy=true
componentVersion=7.0.0.0

View File

@ -0,0 +1,9 @@
Manifest-Version: 1.0
Bundle-SymbolicName: com.primeton.eos.demo.boot
Bundle-Name: com.primeton.eos.demo.boot
Bundle-Version: 1.0.0
Bundle-Vendor: 40108
Require-Bundle:
eos-webCtxPath: eos
Bundle-Description:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
This registry holds handlers that listen contributions' load events.
The execution order of these handlers are the same as the order they are
defined in this registry file.
There can be multiple registry files located in /META-INF/ on classpath.
-->
<!--
<handler handle-class="xxx.yyy.zzz"/>
-->
<!--
<handler handle-class="com.primeton.ext.common.logging.startup.ContributionLoggingStartupRuntimeListener"/>
-->
</handlers>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<handles>
<!--
match-pattern as following:
1) *[String]
2) *[String]*
3) [Stirng]*
4) [String]
5) [String]*[String]
handle-class:Handler class name
typetarget type[pageflow|businesslogic|node]
nodeType[start|end|assign|invokePojo|invokeService|switch|loopStart|loopEnd|throw|
subprocess|transactionBegin|transactionCommit|transactionRollback|subPageFlow|*]
nodeID:ID of nodes to be matched
-->
<!--
<handle
name="aName"
match-pattern="*[CHAR]**"
handle-class="com.primeton.engine.handler.logHandler"
type="pageflow,businesslogic,node"
nodeType="start,end,assign,invokePojo,invokeService,switch,throw,subprocess,transactionBegin,transactionCommit,transactionRollback,subPageFlow,*"
nodeID="invokeName*,switch*Name,*forEachStartName,......"/>
-->
<handle
name="accessedResourceHandler"
match-pattern="*"
handle-class="com.primeton.access.authorization.impl.AccessedBizHandler"
type="businesslogic"
nodeType=""
nodeID=""/>
</handles>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
Handlders that are added to entities. The execution order of these handlers
are the same as the order they are defined in this file.
classthe class name of the Handler, must implement com.primeton.das.entity.impl.handler.IEntityHandler
there can be multiple <match> elements, the attribute matchName of match element is the full name of an entity.
-->
<!--
<handler id="handler1"
class="com.primeton.server.das.persistententity.handler.MyHandler">
<match matchName="Address"/>
</handler>
-->
</handlers>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--handlers that are added named test_ddl.sql-->
<!--
classthe class name of the handler , mush implement com.primeton.das.test_ddl.sql.impl.handler.INamedSqlHandler
matchNamethe id of the matched named SQL
-->
<!--
<handler id="handler2"
class="com.primeton.server.das.namedsql.handler.Handler1">
<match matchName="selectSchoolByKey"></match>
<match matchName="insertSchool"></match>
<match matchName="updateSchool"></match>
<match matchName="delete.deleteSchool"></match>
</handler>
-->
</handlers>

View File

@ -0,0 +1,92 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
handlers that are added to processors
id: the id of the handler, must be unique;
suffix: the suffix that this handler will be matched to,this attribute can hold multiple suffix string that
are separated by ','.
sortIdx: sort order,when multiple handler are matched to a suffix, the hander with a smaller sortIdx will
be executed first;
classprocessor impl class;
Note: there will be different processor instance for different suffix string.
-->
<!--
<handler id="flowProcessor" suffix=".flow" sortIdx="0"
class="com.primeton.ext.engine.core.processor.HttpPageFlowProcessor" />
<handler id="actionProcessor" suffix=".action" sortIdx="0"
class="com.primeton.ext.engine.core.processor.ActionProcessor" />
<handler id="downloadProcessor" suffix=".download"
sortIdx="0"
class="com.primeton.access.http.impl.processor.DownloadProcessor" />
<handler id="downloadConfigProcessor" suffix=".configdownload"
sortIdx="0"
class="com.primeton.access.http.impl.processor.DownloadConfigProcessor" />
<handler id="ConfigurationDownloadProcessor" suffix=".governordownload" sortIdx="0"
class="com.primeton.access.http.impl.processor.GovernorDownloadConfigProcessor" />
<handler id="GovernorDownloadConfigurationProcessor" suffix=".governordownload" sortIdx="0"
class="com.primeton.access.http.impl.processor.GovernorDownloadConfigProcessor" />
-->
<!--
<handler id="ajaxFlowProcessor" suffix=".flow.ajax,.flowx.ajax"
sortIdx="0"
class="com.primeton.ext.engine.core.processor.AjaxPageflowProcessor" />
-->
<!--
<handler id="commonServiceProcessor" suffix=".remote" sortIdx="0"
class="com.primeton.access.client.impl.processor.CommonServiceProcessor" />
-->
<!--
<handler id="ajaxBizProcessor" suffix=".biz.ajax"
sortIdx="0"
class="com.primeton.ext.engine.core.processor.AjaxBizProcessor" />
<handler id="precompileProcessor" suffix=".precompile"
sortIdx="0"
class="com.primeton.ext.engine.core.processor.PrecompileProcessor" />
<handler id="debugBizProcessor" suffix=".bizx.debug,.biz.debug"
sortIdx="0"
class="com.primeton.ext.engine.core.processor.DebugProcessor" />
<handler id="gzipProcessor" suffix=".gzip" sortIdx="0"
class="com.primeton.ext.engine.core.processor.GzipProcessor" />
<handler id="jspDebugProcessor" suffix=".jsp.debug" sortIdx="0"
class="com.primeton.ext.engine.core.processor.JspDebugProcessor" />
-->
<!--
<handler id="ajaxServiceProcessor" suffix=".service.ajax" sortIdx="0"
class="com.primeton.sca.http.service.processor.AjaxServiceProcessor" />
<handler id="ajaxJavaBeanProcessor" suffix=".java.beanx" sortIdx="0"
class="com.primeton.ext.engine.core.processor.BeanCServiceProcessor" />
<handler id="ajaxSpringBeanProcessor" suffix=".spring.beanx" sortIdx="0"
class="com.primeton.spring.processor.SpringCServiceProcessor" />
-->
<handler id="extBizProcessor" suffix=".biz.ext" sortIdx="0"
class="com.primeton.ext.engine.core.processor.ExtBizProcessor" />
<handler id="extBizProcessorv7" suffix=".biz.extv7" sortIdx="0"
class="com.primeton.ext.engine.core.processor.ExtBizProcessorV7" />
<!--
<handler id="ternimateDebugProcessor" suffix=".thread.terminate" sortIdx="0"
class="com.primeton.ext.engine.core.processor.TernimateDebugProcessor" />
-->
<!--
<handler id="JmxServiceProcessor" suffix=".jmx" sortIdx="0"
class="com.primeton.access.client.impl.processor.JmxServiceProcessor" />
-->
</handlers>

View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--add custom StartupListener here-->
<!-- thw following three are executed as the order they appears:international resource loading,
log configruation files registration,modules loading -->
<!-- international resource loading -->
<handler
handle-class="com.primeton.ext.common.international.startup.AppResourceStartupRuntimeListener" order="100"/>
<!-- log configruation files registration -->
<!-- reading log4j-trace.xml, config Trace log-->
<!--
Trace Log registration was moved to RuntimeJ2EEHost
<handler
handle-class="com.primeton.runtime.core.impl.startup.TraceLoggingStartupRuntimeListener" />
-->
<!--reading log4j-sys.xml log4j-engine.xml-->
<!--
<handler
handle-class="com.primeton.ext.common.logging.startup.AppLoggingStartupRuntimeListener" order="200"/>
-->
<!-- modules loading -->
<handler
handle-class="com.primeton.ext.common.config.startup.AppConfigStartupRuntimeListener" order="300"/>
<handler
handle-class="com.primeton.ext.common.asyn.startup.AppAsynStartupRuntimeListener" order="400"/>
<!--Listener that start DataContext,will register serializer and deserializer of DataContext -->
<handler
handle-class="com.primeton.ext.data.datacontext.startup.DataContextStartupListener" order="500"/>
<!--start enginge-->
<handler handle-class="com.primeton.engine.core.impl.process.EngineStartUpListener" order="600"/>
<!--start DAS_ENTITY-->
<handler handle-class="com.primeton.ext.das.common.DASCommonStartupListener" order="700"/>
<!-- register application's classloader to EJB-->
<!--
<handler
handle-class="com.primeton.ext.access.client.startup.AppClientStartupRuntimeListener" order="800"/>
-->
<!--read configruation of runtime enviroment from sys-config.xml[moudle name="Runtime"]-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ResourceConfigLoaderStartUpListener" order="900"/>
<!--start WebUI-->
<!--
<handler handle-class="com.primeton.web.startup.WebUIStartUpListener" order="1000"/>
-->
<!--load SCA resource register-->
<!--
<handler handle-class="com.primeton.sca.host.impl.SCAStartUpListener" order="1100"/>
-->
<!--load Connection releaser-->
<handler handle-class="com.primeton.ext.common.connection.startup.ConnectionStartupListener" order="1200"/>
<!-- load xpath cache -->
<handler handle-class="com.primeton.ext.data.xpath.startup.XPathStartupListener" order="1300"/>
<!--
构件运行环境应用级启动监听器系统默认会在启动用户定义的Listener之后启动
-->
<!--以下是系统级的配置Startup不能修改-->
<!--加载Contribution的Listener处理config下handler-contribution.xml文件-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ContributionListenerRegisterStartUpListener" order="1400"/>
<!--加载所有的IModelLoader处理所有ClassPath下的/META-INF/modelloader.conf文件-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ModelLoaderRegisterStartUpListener" order="1500"/>
<!--加载所有的IResourceLoadListener处理所有ClassPath下的/META-INF/handler-resourceload.xml文件-->
<!--此配置主要是针对SCA资源类型来处理的 -->
<!--<handler handle-class="com.primeton.ext.runtime.resource.startup.ResourceLoaderListenerStartUpListener"/> -->
<!--所有Contribution资源加载-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ResourceLoaderStartUpListener" order="1600"/>
<!--Schedule启动加载-->
<!--<handler handle-class="com.primeton.ext.common.schedule.startup.AppScheduleStartupRuntimeListener" order="1700"/>-->
<!--启动资源热更新线程-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ResourceMonitorStartUpListener" order="1800"/>
<!--应用启动后注册deploy接口-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ContributionDeployStartUpListener" order="1900"/>
<!--应用启动后注册线程管理接口-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ThreadManagerStartUpListener" order="2000"/>
<!--应用启动完毕后通知事件-->
<handler handle-class="com.primeton.ext.runtime.resource.startup.ApplicationStartedNotifyListener" order="2100"/>
<!--start Access_Http-->
<handler handle-class="com.primeton.ext.access.http.startup.AccessHttpStartupListener" order="2200"/>
<!--
<handler handle-class="com.primeton.ext.das.entity.EagerLoadHbmRuntimeListener"/>
-->
</handlers>

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
registry of filters
sortIdx[optional]: the execution order, the smaller,the soon.
pattern: pattern of request url that will be filtered:
1) *.xxx, e.g., *.do,*.jsp etc.
2) /* all requests;
3) xxx full match, eg. /samples/test.jsp
4) xxx/* , xxx must be a full match, e.g./samples/test/*;
classthe implementation class, must implement interface com.eos.access.http.WebInterceptor
-->
<!--
<handler id="WSInterceptor" sortIdx="0" pattern="/*" class="com.primeton.sca.host.webapp.SCAWebServiceServletFilter"/>
-->
<handler id="WebI18NInterceptor" sortIdx="1" pattern="/*" class="com.primeton.access.http.impl.WebI18NInterceptor"/>
<handler id="HttpSecurityWebInterceptor" sortIdx="2" pattern="*.flow,*.jsp" class="com.eos.access.http.security.HttpSecurityWebInterceptor"/>
<handler id="HttpRefererWebInterceptor" sortIdx="3" pattern="/*" class="com.eos.access.http.security.HttpRefererWebInterceptor"/>
<handler id="UserLoginInterceptor" sortIdx="100" pattern="/*" class="com.eos.access.http.UserLoginCheckedFilter"/>
<handler id="AccessedResourceInterceptor" sortIdx="101" pattern="/*" class="com.primeton.access.authorization.impl.AccessedHttpResourceFilter"/>
</handlers>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sca="http://www.springframework.org/schema/sca" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/sca http://www.osoa.org/xmlns/sca/1.0/spring-sca.xsd">
<!-- default datasource -->
<bean id="DefaultDataSource" class="com.eos.spring.DASDataSource">
<property name="dataSourceName">
<value>default</value>
</property>
</bean>
<!-- default transaction manager -->
<bean id="DefaultTransactionManager" class="com.primeton.spring.DASTransactionManager">
<property name="dataSource">
<ref bean="DefaultDataSource"/>
</property>
</bean>
<!-- default transaction policy -->
<bean id="DefaultNamingTransactionAttribute" class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
<property name="properties">
<props>
<prop key="add*">PROPAGATION_REQUIRED</prop>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="create*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- default transaction proxy -->
<bean id="DefaultBaseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="transactionManager" ref="DefaultTransactionManager"/>
<property name="transactionAttributeSource">
<ref bean="DefaultNamingTransactionAttribute"/>
</property>
</bean>
<!-- system interceptor -->
<bean id="BeanInterceptor" class="com.primeton.spring.interceptor.BeanInterceptor"/>
<!-- auto bean proxy -->
<bean class="com.primeton.spring.BeanNameAutoProxy">
<property name="proxyTargetClass">
<value>true</value>
</property>
<property name="beanNames">
<value>*</value>
</property>
<property name="interceptorNames">
<list>
<value>BeanInterceptor</value>
</list>
</property>
</bean>
</beans>

View File

@ -0,0 +1,444 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<application xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- system variables -->
<module name="System">
<group name="Default">
<!-- default datetime format -->
<configValue key="DateTimeFormat">yyyy-MM-dd HH:mm:ss</configValue>
<!-- default date format -->
<configValue key="DateFormat">yyyy-MM-dd</configValue>
<!-- the size of thread pool-->
<configValue key="ThreadPoolCount">10</configValue>
<!--
<configValue key="ChannelName"/>
<configValue key="McastAddr">228.12.34.56</configValue>
<configValue key="McastPort">18888</configValue>
-->
<configValue key="MaxMsgBlockSize">200</configValue>
<configValue key="MaxMsgQueueSize">100000</configValue>
<configValue key="TimeoutToProcessMsg">400</configValue>
<configValue key="TimeoutToSendMsg">500</configValue>
</group>
</module>
<!-- MBean's configuration-->
<module name="Mbean">
<!-- System MBean's configuration -->
<group name="EnvironmentMBean">
<!-- MBean type: config,management,monitor -->
<configValue key="Type">config</configValue>
<!-- MBean's qualified class name-->
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<!-- ConfigMBean specific parameter: confighandler qualified class name -->
<configValue key="Handler">com.eos.common.config.mbean.EnvironmentConfigHandler</configValue>
<!-- ConfigMBean specific parameter: files' type matched to thiss confighandlerconfig,syslog,enginelog,tracelog -->
<configValue key="ConfigFileType">config</configValue>
</group>
<!-- RuntimeMBean configuration -->
<group name="RuntimeMBean">
<!-- MBean type: config,management,monitor -->
<configValue key="Type">config</configValue>
<!-- MBean's qualified class name -->
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<!-- ConfigMBean specific parameter: confighandler qualified class name -->
<configValue key="Handler">com.eos.common.config.mbean.RuntimeConfigHandler</configValue>
<!-- ConfigMBean specific parameter: files' type matched to this confighandler confighandlerconfig,syslog,enginelog,tracelog -->
<configValue key="ConfigFileType">config</configValue>
</group>
<!-- Cache MBean's configuration -->
<group name="CacheMBean">
<!-- MBean type: config,management,monitor -->
<configValue key="Type">config</configValue>
<!-- MBean qualified class name -->
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<!-- ConfigMBean specific parameter: confighandler qualified class name -->
<configValue key="Handler">com.eos.common.cache.mbean.AppCacheConfigHandler</configValue>
<!-- ConfigMBean specific parameter: files' type matched to this confighandlerconfig,syslog,enginelog,tracelog -->
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="MailMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.mail.mbean.MailConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--
<group name="ServiceVariableMBean">
<configValue key="Type">config</configValue>
<configValue key="ConfigFileType">config</configValue>
<configValue key="Handler">com.eos.access.client.mbean.ServiceVariableConfigHandler</configValue>
<configValue key="Class">com.eos.access.client.mbean.ServiceVariable</configValue>
</group>
-->
<!--
<group name="HandlerAccessMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.access.client.mbean.HandleAccessConfigHandler</configValue>
<configValue key="ConfigFileType">handlerAccess</configValue>
</group>
-->
<!--
<group name="ScheduleMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.schedule.mbean.AppScheduleConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
-->
<group name="LoggingMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.AppLoggingConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--
<group name="DeployLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">applog</configValue>
<configValue key="LogFile">log4j-deploy.xml</configValue>
</group>
<group name="SysLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">applog</configValue>
<configValue key="LogFile">log4j-sys.xml</configValue>
</group>
<group name="EngineLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">applog</configValue>
<configValue key="LogFile">log4j-engine.xml</configValue>
</group>
<group name="TraceLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">applog</configValue>
<configValue key="LogFile">log4j-trace.xml</configValue>
</group>
-->
<!--datasouce's mbean configuration -->
<group name="DataSourceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.DataSourceConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!-- statisitics's mbean configuration -->
<group name="StatisticParamMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.statistic.mbean.StatisticConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!-- ConnectionMBean's configuration -->
<group name="ConnectionMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.ConnectionConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--DasMBean configuration -->
<group name="DasMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.das.entity.mbean.DASConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--TransactionMBean configuration -->
<group name="TxManagerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.transaction.mbean.TxManagerConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--EngineMBean configuration-->
<group name="EngineMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.engine.core.mbean.EngineConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--DictMBean configuration-->
<group name="DictMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.server.dict.config.DictConfigHandle</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--HttpAccessMBean configuration-->
<group name="HttpAccessMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.access.http.mbean.AccessHttpConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--MUOMBean configuration-->
<group name="MUOMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.muo.mbean.SessionManagerConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!-- VirtualUserMBean configuration -->
<group name="VirtualUserMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.muo.mbean.VirtualUserObjectConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="AuthorizationMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.access.authorization.mbean.AccessAuthorizationConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--<group name="ScehduleManageMBean">-->
<!--<configValue key="Type">management</configValue>-->
<!--<configValue key="Class">com.eos.common.schedule.mbean.ScheduleManager</configValue>-->
<!--</group>-->
<!--<group name="ScheduleTaskFactoryMBean">-->
<!--<configValue key="Type">management</configValue>-->
<!--<configValue key="Class">com.eos.common.schedule.mbean.TaskFactory</configValue>-->
<!--</group>-->
<!--<group name="ScheduleTriggerFactoryMBean">-->
<!--<configValue key="Type">management</configValue>-->
<!--<configValue key="Class">com.eos.common.schedule.mbean.TriggerFactory</configValue>-->
<!--</group>-->
<!--<group name="EnhancedScheduleTriggerFactoryMBean">-->
<!--<configValue key="Type">management</configValue>-->
<!--<configValue key="Class">com.eos.common.schedule.mbean.EnhancedTriggerFactory</configValue>-->
<!--</group>-->
<group name="ContributionMetaDataManagerMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.runtime.resource.mbean.ContributionMetaDataManager</configValue>
</group>
<group name="ResourceLoadMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.runtime.resource.mbean.ResourceLoad</configValue>
</group>
<group name="ResourceUpdateMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.runtime.resource.mbean.ResourceUpdate</configValue>
</group>
<!--
<group name="ServiceRegisterMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.access.client.mbean.ServiceRegister</configValue>
</group>
-->
<group name="DictManagerMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.server.dict.config.DictManager</configValue>
</group>
<group name="ApplicationMetaDataManagerMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.runtime.metadata.mbean.ApplicationMetaDataManager</configValue>
</group>
<group name="ConnectionStatMBean">
<configValue key="Type">monitor</configValue>
<configValue key="Class">com.eos.common.connection.mbean.StatisticManager</configValue>
</group>
<group name="StatisticMBean">
<configValue key="Type">monitor</configValue>
<configValue key="Class">com.eos.common.statistic.mbean.Statistic</configValue>
</group>
<group name="OnlineUserMBean">
<configValue key="Type">monitor</configValue>
<configValue key="Class">com.eos.access.http.mbean.OnlineUserMonitor</configValue>
</group>
<group name="SpecialMethodMBean">
<configValue key="Type">other</configValue>
<configValue key="Class">com.eos.common.config.mbean.SpecialMethod</configValue>
</group>
<group name="EOSBusinDictDataLoaderMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.server.dict.impl.EOSBusinDictDataLoader</configValue>
</group>
<!-- MBean for cluster notification -->
<group name="ClusterNotifierMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.primeton.common.cache.impl.cluster.mbeannotify.ClusterMessageConsumer</configValue>
</group>
<group name="JMXSecurityMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.config.mbean.JMXSecurityConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!-- HttpSecurityMBean configuration-->
<group name="HttpSecurityMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.config.mbean.HttpSecurityConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--Mbean for configuration download-->
<group name="ConfigurationDownloadMBean">
<configValue key="Type">management</configValue>
<configValue key="Class">com.eos.common.config.mbean.ConfigurationDownload</configValue>
</group>
</module>
<!--configuration for runtime enviroment-->
<module name="Runtime">
<!--
whether or not to load lazily:[true|false]. if set false, the runtime will not load resource lazily.
if set true and com.primeton.ext.runtime.resource.loader.IModelLoader#isSupportLazyLoading() returns true,
then the resource loaded by this IModelLoader will be load lazily.
-->
<group name="Loading">
<configValue key="Lazy">true</configValue>
</group>
<!--
resouce hot update configuration:
Interval:the interval of scaning resouce update, <0 not scan;
Exclude: ignore specific files and directory,
1) for files: *.ext, multiple types are separated by '|'.
for example, *.class|*.properties
2) for directory: those not starts with "*.", mulfiple directory are separated by |, sub directory are not supported.
for example:classes,classes|lib
3) mixed:
for example, *.class|classes
-->
<group name="Monitor">
<configValue key="Interval">-1</configValue>
<configValue key="Exclude">*.class</configValue>
</group>
</module>
<!--
whether or not to log datacontext
-->
<module name="Logging">
<group name="IsPrintContext">
<!--whether or not to log datacontext in SysLogger-->
<configValue key="SysLogger">false</configValue>
<!--whether or not to log datacontext in EngineLogger-->
<configValue key="EngineLogger">false</configValue>
</group>
</module>
<!--The database connection monitor configuration-->
<!--
UnclosedConn[true|false, default false]: whether or not to monitor unclosed database connections;
StackConn[true|false, default false]: whether or not to monitor database connection call stack;
UnclosedStatement[true|false, default false]: whether or not to monitor unclosed jdbc statements;
StackStatement[true|false, default false]: whether or not to monitor jdbc statements call stack;
UnclosedResultSet[true|false, default false]:whether or not to monitor unclosed jdbc ResultSet;
StackResultSet[true|false, default false]: whether or not to monitor jdbc ResultSet call stack;
IsLogSqlExcTimes[true|false, default false]: whether or not to log the run count of a test_ddl.sql;
IsLogSqlTime[true|false, default false]: whether or not to log the runtime of a test_ddl.sql;
LogSqlWhenTimeout(in milliseconds): log a test_ddl.sql to syslog when its run time exceeds this limit.
IsLogActiveConnNum[true|false, default to false]: whether or not to monitor the count of active db connections;
-->
<module name="Connection">
<group name="Monitor">
<configValue key="UnclosedConn">false</configValue>
<configValue key="StackConn">false</configValue>
<configValue key="UnclosedStatement">false</configValue>
<configValue key="StackStatement">false</configValue>
<configValue key="UnclosedResultSet">false</configValue>
<configValue key="StackResultSet">false</configValue>
<!-- deprecated
<configValue key="IsLogSqlExcTimes">false</configValue>
<configValue key="IsLogSqlTime">false</configValue>
-->
<configValue key="LogSqlWhenTimeout">10000</configValue>
<configValue key="IsLogActiveConnNum">false</configValue>
<configValue key="IsLogSqlExcTimes">false</configValue>
<configValue key="IsLogSqlTime">false</configValue>
</group>
</module>
<!--
LogPojoWhenTimeoutin milliseconds:
when the run time of a method in a POJO execedes this limit, the engine will write a log about this;
Default is 1000 ms
-->
<module name="Engine">
<group name="Monitor">
<configValue key="LogPojoWhenTimeout">4000</configValue>
</group>
</module>
<!--
Transaction Manager's configuration.There is only one TransactionManager instance
in a JAVA VM,eos server choose different TransactionManager according to the application
server including jboss,weblogic,websphere.for other application server, eos server will
choose DataSourceTransactionManagerSetProvider.
DataSourceTransactionManagerSetProvider support multiple datasource, but not enssure transaction ammont these
datasources.Acutally there will be a DataSourceTransactionManager for each datasouce and those DataSourceTransactionManager
will be grouped into a DataSourceTransactionManagerSet. When manager.begin() is called,the begin() of each manager in the managerSet are called.
commit(),rollback() are the same.
Propagation: possible values:[PROPAGATION_REQUIRED|PROPAGATION_SUPPORTS|PROPAGATION_MANDATORY|PROPAGATION_REQUIRES_NEW
PROPAGATION_NOT_SUPPORTED|PROPAGATION_NEVER]
Isolation: possible values:[ISOLATION_READ_UNCOMMITTED|ISOLATION_READ_COMMITTED|
ISOLATION_REPEATABLE_READ|ISOLATION_SERIALIZABLE]
-->
<module name="TxManager">
<group name="Default">
<configValue key="Provider">com.primeton.common.transaction.impl.datasource.DataSourceTransactionManagerSetProvider</configValue>
<configValue key="Propagation">PROPAGATION_REQUIRED</configValue>
<configValue key="Isolation">ISOLATION_DEFAULT</configValue>
</group>
<group name="Jboss">
<configValue key="Provider">com.primeton.common.transaction.impl.jta.JbossJtaTransactionManagerProvider</configValue>
<configValue key="TransactionManager">java:/TransactionManager</configValue>
<!-- configValue key="UserTransaction">
java:comp/UserTransaction
</configValue -->
<configValue key="Propagation">PROPAGATION_REQUIRED</configValue>
<configValue key="Isolation">ISOLATION_DEFAULT</configValue>
</group>
<group name="Weblogic">
<configValue key="Provider">com.primeton.common.transaction.impl.jta.WebLogicJtaTransactionManagerProvider</configValue>
<configValue key="Propagation">PROPAGATION_REQUIRED</configValue>
<configValue key="Isolation">ISOLATION_DEFAULT</configValue>
</group>
<group name="Websphere">
<configValue key="Provider">com.primeton.common.transaction.impl.jta.WebSphereJtaTransactionManagerProvider</configValue>
<configValue key="Propagation">PROPAGATION_REQUIRED</configValue>
<configValue key="Isolation">ISOLATION_DEFAULT</configValue>
</group>
</module>
<!--
configuration for DAS module
ShowSql whether or not to show test_ddl.sql in log;
UseScrollableResultSet whether or not to use scrollable resultset.
BatchSize the batch size;
FetchSize fetch size when reading from ResultSet.
GenerateStatistics generate statistics data. disable this option in production enviroment to avoid prformance problems.
-->
<module name="Das">
<group name="Hibernate">
<configValue key="ShowSql">false</configValue>
<configValue key="UseScrollableResultSet">true</configValue>
<configValue key="BatchSize">5</configValue>
<configValue key="FetchSize">10</configValue>
<configValue key="BatchVersionedData">true</configValue>
</group>
<group name="PoolSize">
<configValue key="PoolSize">20</configValue>
</group>
<!--
a temparay path relative to $EOS_HOME/domain/servers/localServer/applications/yourAppName,
that is used to store lob objects' data.
-->
<group name="Lob">
<configValue key="TempDir">lob_temp</configValue>
</group>
<!-- specify whether or not to throw a exception When a ResultSet's size exceeds this limit-->
<group name="ResultSet">
<configValue key="ResultSetLimit">-1</configValue>
<configValue key="ThrowException">false</configValue>
</group>
<!-- write log when a ResutSet's size execeeds this limit -->
<group name="ResultSetLog">
<configValue key="Count">2000</configValue>
</group>
</module>
</application>

View File

@ -0,0 +1,329 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<application xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- Datasource config -->
<!--
there can be multiplse DataSource, and the datasouce with name being "default"
as the system default datasource.
two types of DataSource are supported:
1) jndi DataSource
2) c3p0 DataSource
Transaction_Isolation as:
1)ISOLATION_READ_UNCOMMITTED
2)ISOLATION_READ_COMMITTED
3)ISOLATION_REPEATABLE_READ
4)ISOLATION_SERIALIZABLE
-->
<module name="DataSource">
<!--system default datasouce -->
<!--
C3p0-DriverClass[required],C3p0-Url[required]:
1、DB2
2、Oracle
3、Informix
4、MySql
5、SqlServer
6、Sybase
-->
<!--
<group name="default">
<configValue key="C3p0-DriverClass">com.ibm.db2.jcc.DB2Driver</configValue>
<configValue key="C3p0-Url">jdbc:db2://192.168.1.251:50000/eos</configValue>
<configValue key="C3p0-UserName">eos6si</configValue>
<configValue key="C3p0-Password">eos6si</configValue>
<configValue key="C3p0-PoolSize">10</configValue>
<configValue key="C3p0-MaxPoolSize">50</configValue>
<configValue key="C3p0-MinPoolSize">10</configValue>
<configValue key="Transaction-Isolation">ISOLATION_READ_COMMITTED</configValue>
<configValue key="Database-Type">DB2</configValue>
<configValue key="Jdbc-Type">IBM DB2 Driver(Type4)</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
-->
<!--UDDI storeage datasouce.UDDI of all applications are stored in the same datasouce.-->
<!--
<group name="UddiServiceDS">
<configValue key="Jndi-Name">EOSDefaultDataSource</configValue>
<configValue key="Transaction-Isolation">ISOLATION_READ_COMMITTED</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_SERVICE_ENDPOINT</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
-->
<!-- data source for EOS_UNIQUE_TABLE -->
<!--
<group name="EOS-Unique">
<configValue key="C3p0-DriverClass">com.ibm.db2.jcc.DB2Driver</configValue>
<configValue key="C3p0-Url">jdbc:db2://192.168.1.251:50000/eos</configValue>
<configValue key="C3p0-UserName">eos6si</configValue>
<configValue key="C3p0-Password">eos6si</configValue>
<configValue key="C3p0-PoolSize">10</configValue>
<configValue key="C3p0-MaxPoolSize">10</configValue>
<configValue key="C3p0-MinPoolSize">5</configValue>
<configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue>
<configValue key="Database-Type">DB2</configValue>
<configValue key="Jdbc-Type">IBM DB2 Driver(Type4)</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
-->
<group name="default">
<configValue key="Database-Type">MySql</configValue>
<configValue key="Jdbc-Type"/>
<configValue key="C3p0-DriverClass">com.mysql.jdbc.Driver</configValue>
<configValue key="C3p0-Url">jdbc:mysql://192.168.3.32:3306/test_afcenter?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=GMT%2B8&amp;useSSL=false</configValue>
<configValue key="C3p0-UserName">root</configValue>
<configValue key="C3p0-Password">123456</configValue>
<configValue key="C3p0-PoolSize">10</configValue>
<configValue key="C3p0-MaxPoolSize">50</configValue>
<configValue key="C3p0-MinPoolSize">10</configValue>
<!-- //seconds, 0 means connections never expire -->
<configValue key="C3p0-MaxIdleTime">600</configValue>
<!-- //idle connections never tested -->
<configValue key="C3p0-IdleConnectionTestPeriod">900</configValue>
<configValue key="C3p0-MaxStatements">0</configValue>
<configValue key="C3p0-NumHelperThreads">1</configValue>
<configValue key="Transaction-Isolation">ISOLATION_DEFAULT</configValue>
<configValue key="Test-Connect-Sql">SELECT count(*) from EOS_UNIQUE_TABLE</configValue>
<configValue key="Retry-Connect-Count">-1</configValue>
</group>
</module>
<!--System default Mail configuration -->
<module name="Email">
<group name="Default">
<!-- Mail server[required] -->
<configValue key="Host">mail.primeton.com</configValue>
<!-- Mail port[optional] -->
<!-- configValue key="Port">1002</configValue-->
<!-- user name[optional] -->
<configValue key="UserName">test</configValue>
<!-- password [optional] -->
<configValue key="Password">test</configValue>
</group>
</module>
<!-- Cache configuration -->
<!--
CacheProvider: cache provider[optional]
CacheLoader: cacheLoader implementation[optional]
IsClustered: cache mode[optional], Truecluster mode
IsolationLevel: transaction isolation level[optional](none,serializable,repeatable_read,read_committed,read_uncommitted
configuration needed when IsClustered is true:
McastAddr: multi cast IP address[optional]range: 224.0.0.0 to 239.255.255.255
McastPort: multi cast port[optional]
-->
<module name="Cache">
<!-- Cache used by business dictionary -->
<!--
note: must not change this group.
-->
<group name="CacheForDict">
<configValue key="IsSystemCache">true</configValue>
<configValue key="CacheLoader">com.eos.server.dict.impl.EosDictCacheLoaderImpl</configValue>
</group>
<!-- Cache for uddi-->
<!--
Note: must not change the name of this group, only the McastAddr and McastPort can be changed.
-->
<group name="CacheForAccess">
<configValue key="IsSystemCache">true</configValue>
<configValue key="CacheLoader">com.primeton.access.client.impl.uddi.ServiceCacheLoader</configValue>
<configValue key="ClusterName">CacheForAccessGroup</configValue>
</group>
<!-- cache for online users -->
<group name="CacheForUserObject">
<configValue key="IsSystemCache">true</configValue>
<configValue key="CacheMode">REPL_ASYNC</configValue>
<configValue key="IsSystemShare">true</configValue>
</group>
</module>
<!--
timer's configuration.default to not start timer.
-->
<module name="Schedule">
<group name="Default">
<!-- IsSchedulerStart[optional,default to "true"], whether to start timer when application starts up -->
<configValue key="IsSchedulerStart">false</configValue>
<!-- DataSouceName[optional,default to "default"], datasouce namemust be the same as DataSource's Group name -->
<!-- configValue key="DataSouceName">default</configValue-->
</group>
</module>
<!--webui's configuration-->
<!--EOSBusinDictFactory: can be configed-->
<module name="Dict">
<group name="Dict-Factory">
<configValue key="EOSBusinDictFactory">com.eos.server.dict.impl.EOSBusinDictFactory</configValue>
</group>
<group name="Cache">
<configValue key="CacheName">CacheForDict</configValue>
<configValue key="UseCache">true</configValue>
</group>
</module>
<!-- http access configuration-->
<module name="Access-Http">
<group name="FileUpload">
<configValue key="TempDir">upload</configValue>
<configValue key="MaxSize">104857600</configValue>
<configValue key="InMemorySize">10240</configValue>
<!--files with specified ext names are not accespted when uploading -->
<configValue key="Exclude">exe,java,jsp,html,htm,class,jar</configValue>
</group>
<group name="Encoding">
<!-- the charset of the incoming HttpServletRequest-->
<configValue key="Request">UTF-8</configValue>
</group>
<group name="Suspend">
<!-- the time to suspend, waiting for the xsd loading,in seconds.-->
<configValue key="TimeOut">60</configValue>
</group>
<group name="Login-Filter">
<!-- pages that can be accessed by any one including those not login -->
<configValue
key="Exclude">/,*.gif,*.svg,.ttf,*.woff2,*.woff,*.jpg,*.json,*.ico,*.js,*.css,*.png,*.html,/api/afc/oauth2/*,/api/afc/login/third-party/auth,/api/afc/login/third-party/qrConnect,/afc-proxy/*,/api/afc/validation-code,/swagger-ui.html,/v2/api-docs,/webjars/*,/swagger-resources/*,/afc,/afc/,/api/afc/login,/api/afc/login/password/key,/actuator/*,/om/*,/common.remote,
/jmxDefault.jmx,/common.download,/api/test/*</configValue>
<!-- <configValue key="Include">*.flow,*.flowx,*.jsp,*.html,*.ajax,*.ext,*.action,*.beanx</configValue> -->
<configValue key="Include">/*</configValue>
<!-- the page to display when user not login -->
<configValue key="LoginPage"></configValue>
</group>
<group name="Accessed-Mode">
<configValue key="Portal">false</configValue>
</group>
<group name="Http-Security">
<configValue key="isOpenSecurity">false</configValue>
<configValue key="Exclude">**/common.download</configValue>
<configValue key="regexs">eval\s*?\([^\)]+?\),alert\s*?\([^\)]+?\),new\s+?Function\s*?\([^\)]+?\),window\[[^\]]+?\]\s*?=</configValue>
</group>
</module>
<!-- configuraiton of user's access statistics to a resource -->
<module name="Accessed-Resource-Checked">
<group name="Provider">
<!-- user defined resouce access check handler -->
<configValue key="CheckedHandler"/>
<!-- user defined resource access check factory -->
<configValue key="ResourceFactory">com.primeton.ext.access.authorization.DefaultAccessedResourceFactory</configValue>
</group>
</module>
<!--engine configuration-->
<module name="Engine">
<!--the listeners to the lifecycle of page flow instance -->
<group name="Pageflow-InstanceListeners">
<!--
<configValue key="ListenerA">com.primeton.engine.pageflow.web.CountListener</configValue>
-->
</group>
<!--the time out of pageflow intance, in minutes-->
<group name="Pageflow-InstanceTimeout">
<configValue key="Timeout">10</configValue>
</group>
<!-- web pages when error occured-->
<group name="Pageflow-ErrorPage">
<configValue key="Page">/common/error.jsp</configValue>
<!--default page when there are validation errors on action parameters-->
<configValue key="ValidateErrorPage">/common/validateErrors.jsp</configValue>
</group>
<!--the default page when pageflow is finished and no page defined on the end node of this pageflow-->
<group name="Pageflow-End">
<configValue key="DefaultPage">/common/defaultEnd.jsp</configValue>
</group>
<!--asynchronus method call mode:JMS or Thread-->
<!--if AutoChange is set to true,the engine will decide to user JMS or thread by the type of the application server,if Tomcat use Thread, ohters use JMS-->
<!--if AutoChangeis set to false,Thread mode is used-->
<group name="Asynchronous-Invoke">
<configValue key="AutoChange">true</configValue>
</group>
</module>
<!--business statistic module, all statistics data are stored in memory-->
<module name="Statistic">
<!--logic flow execution statistics-->
<group name="Bizflow">
<!--possible values :openore close, statistics is enabled only when is open-->
<configValue key="Status">open</configValue>
<!--the statistics data queue length,range (0,1000],default to 50-->
<configValue key="Queue-Length">50</configValue>
</group>
<!--pageflow execution statistics-->
<group name="Pageflow">
<!--open|close-->
<configValue key="Status">open</configValue>
<configValue key="Queue-Length">50</configValue>
</group>
<!--test_ddl.sql execution statistics-->
<group name="Sql">
<!--open|close-->
<configValue key="Status">open</configValue>
<configValue key="Queue-Length">50</configValue>
</group>
<!--the service call statistics-->
<group name="Service">
<!--open|close-->
<configValue key="Status">open</configValue>
<configValue key="Queue-Length">50</configValue>
</group>
<!--the webService call statistics-->
<group name="InvokeWebService">
<!--open|close-->
<configValue key="Status">open</configValue>
<configValue key="Queue-Length">50</configValue>
</group>
<group name="SpringBean">
<!--open|close-->
<configValue key="Status">open</configValue>
<configValue key="Queue-Length">50</configValue>
</group>
<group name="EOSService">
<!--open|close-->
<configValue key="Status">open</configValue>
<configValue key="Queue-Length">50</configValue>
</group>
</module>
<module name="Session-Manage">
<group name="Managed-User-Object">
<!--specify the attributes' name and type of MUO object in Session-->
</group>
<group name="UserLoginCallback">
<configValue key="Impl-Class"/>
</group>
</module>
<module name="Virtual-UserObject">
<group name="server">
<configValue key="User-Id">0</configValue>
<configValue key="User-Name">server</configValue>
<configValue key="User-Email"/>
<configValue key="User-Org-Id"/>
<configValue key="User-Org-Name"/>
<configValue key="User-Real-Name"/>
<configValue key="User-Remote-Ip">127.0.0.1</configValue>
</group>
<group name="workflow">
<configValue key="User-Id">1</configValue>
<configValue key="User-Name">workflow</configValue>
<configValue key="User-Email"/>
<configValue key="User-Org-Id"/>
<configValue key="User-Org-Name"/>
<configValue key="User-Real-Name"/>
<configValue key="User-Remote-Ip">127.0.0.1</configValue>
</group>
<group name="portal">
<configValue key="User-Id">guest</configValue>
<configValue key="User-Name">guest</configValue>
<configValue key="User-Email"/>
<configValue key="User-Org-Id"/>
<configValue key="User-Org-Name"/>
<configValue key="User-Real-Name"/>
<configValue key="User-Remote-Ip"/>
</group>
</module>
<!-- values for variables in wsdl location -->
<module name="WsLocation">
<group name="Property">
<!--<configValue key="variableName">value</configValue>-->
</group>
</module>
<!-- values for wsdl targetnamespace -->
<module name="WebService">
<group name="WSDL">
<!--<configValue key="DefultNameSpace">http://www.primeton.com/</configValue>-->
</group>
</module>
</application>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<application xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!--the class path used to compile java files\-->
<module name="Engine">
<group name="Runtime-Java-Build">
<!--absolute path,supports only jar,zip files-->
<configValue key="Class-Path"/>
<!--
may be relative to the root path of current web application.
$EOS_HOME/domain/servers/localServer/applications/yourAppName
-->
<configValue key="Source-Path">temp</configValue>
</group>
</module>
<module name="JMXSecurity">
<!--
<group name="jmx">
<configValue key="authorization">true</configValue>
<configValue key="username">primeton</configValue>
<configValue key="password">{3DES}npO5MYMbVf7HCaXdpg5Sb/c=</configValue>
</group>
-->
</module>
</application>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
This registry holds handlers that listen contributions' load events.
The execution order of these handlers are the same as the order they are
defined in this registry file.
There can be multiple registry files located in /META-INF/ on classpath.
-->
<!--
<handler handle-class="xxx.yyy.zzz"/>
-->
</handlers>

View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<handles>
<!--
match-pattern as following:
1) *[String]
2) *[String]*
3) [Stirng]*
4) [String]
5) [String]*[String]
handle-class:Handler class name
typetarget type[pageflow|businesslogic|node]
nodeType[start|end|assign|invokePojo|invokeService|switch|loopStart|loopEnd|throw|
subprocess|transactionBegin|transactionCommit|transactionRollback|subPageFlow|*]
nodeID:ID of nodes to be matched
-->
<!--
<handle
name="aName"
match-pattern="*[CHAR]**"
handle-class="com.primeton.engine.handler.logHandler"
type="pageflow,businesslogic,node"
nodeType="start,end,assign,invokePojo,invokeService,switch,throw,subprocess,transactionBegin,transactionCommit,transactionRollback,subPageFlow,*"
nodeID="invokeName*,switch*Name,*forEachStartName,......"/>
-->
</handles>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
Handlders that are added to entities. The execution order of these handlers
are the same as the order they are defined in this file.
classthe class name of the Handler, must implement com.primeton.das.entity.impl.handler.IEntityHandler
there can be multiple <match> elements, the attribute matchName of match element is the full name of an entity.
-->
<!--
<handler id="handler1"
class="com.primeton.server.das.persistententity.handler.MyHandler">
<match matchName="Address"/>
</handler>
-->
</handlers>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--handlers that are added named test_ddl.sql-->
<!--
classthe class name of the handler , mush implement com.primeton.das.test_ddl.sql.impl.handler.INamedSqlHandler
matchNamethe id of the matched named SQL
-->
<!--
<handler id="handler2"
class="com.primeton.server.das.namedsql.handler.Handler1">
<match matchName="selectSchoolByKey"></match>
<match matchName="insertSchool"></match>
<match matchName="updateSchool"></match>
<match matchName="delete.deleteSchool"></match>
</handler>
-->
</handlers>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
handlers that are added to processors
id: the id of the handler, must be unique;
suffix: the suffix that this handler will be matched to,this attribute can hold multiple suffix string that
are separated by ','.
sortIdx: sort order,when multiple handler are matched to a suffix, the hander with a smaller sortIdx will
be executed first;
classprocessor impl class;
Note: there will be different processor instance for different suffix string.
-->
</handlers>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--add custom StartupListener here-->
<!-- thw following three are executed as the order they appears:international resource loading,
log configruation files registration,modules loading -->
<!--
<handler
handle-class="XXXXX" order="10000"/>
-->
</handlers>

View File

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<handlers>
<!--
registry of filters
sortIdx[optional]: the execution order, the smaller,the soon.
pattern: pattern of request url that will be filtered:
1) *.xxx, e.g., *.do,*.jsp etc.
2) /* all requests;
3) xxx full match, eg. /samples/test.jsp
4) xxx/* , xxx must be a full match, e.g./samples/test/*;
classthe implementation class, must implement interface com.eos.access.http.WebInterceptor
-->
</handlers>

View File

@ -0,0 +1,302 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<application xmlns="http://www.primeton.com/xmlns/eos/1.0">
<module name="wfengine">
<group name="startup">
<!--
流程引擎启动时,是否自动加载流程定义到缓存。
true 加载
false 不加载
-->
<configValue key="is_load_process">false</configValue>
<!-- 流程引擎名称,可填写任意字符串;用途:同名的引擎属于同一个组,属于同一个组的引擎节点之间才能够进行集群通信 -->
<configValue key="engine_name">BPS</configValue>
</group>
<group name="timer">
<!-- 定时器服务接口的实现类配置 -->
<configValue key="time_service_provider">com.primeton.workflow.commons.timer.TimerServiceImpl</configValue>
<!-- 时间限制接口的实现类配置,用于计算超时、提醒时间 -->
<configValue key="timelimit_calculator_provider">com.primeton.workflow.bizresource.utils.BPSTimeLimitCalculator</configValue>
</group>
<group name="transport_history">
<!--
参与者转历史策略配置,取值如下:
1: PROCINST 流程实例结束后,相关参与者记录转移历史
2: ACTINST 活动实例结束后,相关参与者记录转移历史
3: WORKITEM 工作项结束后,相关参与者记录转移历史
4: NO 不使用参与者转历史策略
-->
<configValue key="parti_trans_strategy">PROCINST</configValue>
<!--
流程实例转历史策略,转历史的数据包括流程实例、流程实例属性、活动实例、工作项、参与者、连线、连线控制信息
1: TIME_BASED 定时自动转历史策略
2: NEVER 不使用流程实例转历史策略
-->
<configValue key="trans_strategy">NEVER</configValue>
<!-- 定时自动转历史策略下的时间配置,可以配置多个时间段时间段之间,以半角英文逗号分割。格式: hh:mm:ss,hh:mm:ss -->
<configValue key="time_list">00:30:00,05:00:00</configValue>
</group>
<group name="event">
<!-- 一个活动实例可拥有的工作项数目的上限 -->
<configValue key="max_wi_num">1000</configValue>
<!-- 一个工作项可拥有的参与者数目的上限 -->
<configValue key="max_direct_parti_num">1000</configValue>
<!--
单一叶子参与者检查。
用法示例:某活动参与者定义为"角色A",而"角色A"下面只有一个人"tiger",如果需要引擎直接将工作项分配给"tiger",不做领取动作
则需要将single_person_check节点的值配置为true
true 子参与者唯一时,引擎自动帮子参与者领取工作项
false 引擎分配工作项时不做自动领取,
-->
<configValue key="single_person_check">false</configValue>
<!-- 多工作项根据参与者个数领取模式下是否消除重复的参与者 -->
<configValue key="distinct_participant">false</configValue>
<!-- 人工活动重新启动规则设置参与者策略默认参与者不填最初参与者originalParticipant最终参与者finalParticipant -->
<configValue key="reset_participant_strategy"/>
<configValue key="max_event_num">5000</configValue>
</group>
<!-- 如果需要使用流程引擎自动发送邮件功能,需要配置一个可用的发件人账户 -->
<group name="mail">
<!-- 发件人账号 -->
<configValue key="username">eosworkflow</configValue>
<!-- 发件人账号密码 -->
<configValue key="password">eosworkflow</configValue>
<!-- 邮件服务器地址 -->
<configValue key="mailServer">mail.primeton.com</configValue>
<!-- 邮件服务端口 -->
<configValue key="mailPort">25</configValue>
<!-- 发件人邮件地址 -->
<configValue key="fromMail">eosworkflow@primeton.com</configValue>
<!-- 发件人显示名称 -->
<configValue key="fromName">eosworkflow</configValue>
<!-- 邮件服务器是否需要校验账户 -->
<configValue key="authLogin">true</configValue>
<!-- 引擎集群相关信息自动通知邮件的接收人。如系统维护人员需要及时了解BPS引擎集群的一些情况方便遇到问题及时反应 -->
<configValue key="emailReceiver"/>
</group>
<group name="notification">
<!-- 用户通知默认实现类配置,如果用户有自定义的实现类替换此实现类即可,如果有多个实现类逗号","隔开即可 -->
<configValue key="class">com.primeton.workflow.notification.impl.DefaultNotificationRemindImpl</configValue>
<!-- 检测超时时间 -->
<configValue key="interval">10</configValue>
<!-- 是否展开所有叶子节点true 参与者下面所有叶子节点都展开false只展开一级 -->
<configValue key="is_expand_all_participant">true</configValue>
</group>
<group name="relativedata">
<!--
流程实例表中相关数据varchar字段的最大长度限制
用途说明相关数据有两个字段varchar和clobvarchar字段性能好与clob字段。如果相关数据长度比较小时候可以存放到varchar字段中
不同的数据库的字符串长度算法不同,所以配置此值的上限不同,用户可以根据实际情况配置。
-->
<configValue key="varchar_max">1600</configValue>
</group>
<group name="generateWorkItem">
<configValue key="generate_public">false</configValue>
</group>
</module>
<module name="multitenancy">
<group name="tenancy">
<!-- 多租户配置 -->
<configValue key="is_multi_tenant">false</configValue>
<!-- is_global_process值true为EOS7专用场景 -->
<configValue key="is_global_process">false</configValue>
</group>
</module>
<module name="wfdatabase">
<group name="connection_provider">
<!-- 数据库连接管理的实现类配置 -->
<configValue key="class">com.primeton.workflow.persistence.connection.EOSConnectionProvider</configValue>
</group>
<group name="feature">
<configValue key="db2appender"/>
</group>
</module>
<module name="wfcluster">
<group name="wfcache">
<!-- 引擎集群通知开关 -->
<configValue key="enable">false</configValue>
<!-- 流程实例缓存的实例数上限 -->
<configValue key="inst_cache_max_nodes">3000</configValue>
<!-- 代理关系缓存的实例数上限 -->
<configValue key="agent_cache_max_nodes">3000</configValue>
<configValue key="auto_delete_processinst">true</configValue>
<configValue key="always_persistent_processinst">false</configValue>
<configValue key="always_persistent_activityinst">false</configValue>
</group>
</module>
<module name="wfomservice">
<group name="omservice_provider">
<!-- 组织机构接口实现类配置 -->
<!--
<configValue key="class">org.gocom.components.coframe.bps.om.WFOMServiceImpl</configValue>
-->
<configValue key="class">com.primeton.gocom.afcenter.bps.om.WFOMServiceImpl</configValue>
</group>
<group name="permission_provider">
<!-- 权限接口实现类配置 -->
<!--
<configValue key="class">org.gocom.components.coframe.bps.om.WFOMPermissionImpl</configValue>
-->
<configValue key="class">com.primeton.gocom.afcenter.bps.om.WFOMPermissionImpl</configValue>
</group>
<group name="external_tenant_provider">
<!-- 外部租户提供者实现类, 默认实现返回空集合 -->
<configValue key="class">com.primeton.bps.multitenancy.impl.ExternalTenantProvider</configValue>
</group>
<group name="ommodel">
<!-- studio中组织机构一次刷新的最大节点数 -->
<configValue key="maxnodes">200</configValue>
</group>
<group name="fetch_leaf_participant">
<!-- 引擎迭代查询子参与者的最大层数 -->
<configValue key="max_tier">5</configValue>
</group>
</module>
<module name="wfagent_trigger">
<group name="agent_trigger_provider">
<configValue key="class"/>
</group>
</module>
<module name="wfclient">
<group name="session">
<configValue key="user_id_xpath">WFClientUserName</configValue>
</group>
<group name="processDefgraph">
<!-- 流程定义图标签中使用图标的存放目录 -->
<configValue key="image_path">/workflow/wfcomponent/web/images/processDef_graph</configValue>
<!-- 流程定义图标签中使用图标文件的后缀 -->
<configValue key="postfix">.gif</configValue>
<!-- 流程定义图标签中使用图标文件名中使用的分段符 -->
<configValue key="separator">_</configValue>
</group>
<group name="processInstgraph">
<!-- 流程实例图标签中使用图标的存放目录 -->
<configValue key="image_path">/workflow/wfcomponent/web/images/processInst_graph</configValue>
<!-- 流程实例图标签中使用图标文件的后缀 -->
<configValue key="postfix">.gif</configValue>
<!-- 流程实例图标签中使用图标文件名中使用的分段符 -->
<configValue key="separator">_</configValue>
</group>
<group name="permission">
<!-- 查询流程定义是否校验权限 true 校验 false 不校验 -->
<configValue key="is_qry_defs_check_right">true</configValue>
<!-- 是否校验工作项执行权限 true 校验 false 不校验 -->
<configValue key="check_all_workitem_right">true</configValue>
</group>
<group name="worklist">
<configValue key="is_load_relative_data">false</configValue>
<configValue key="orderType">DESC</configValue>
</group>
</module>
<module name="extend_worklist_query">
<!-- 查询SQL语句使用扩展点的配置可以提高查询性能。如oracle数据库的查询接口加强制索引配置 -->
<group name="dbtype2group">
<configValue key="oracle">default</configValue>
<configValue key="db2"/>
<configValue key="sqlserver"/>
<configValue key="informix"/>
<configValue key="sybase"/>
</group>
<group name="default">
<configValue key="extend1"/>
<configValue key="extend2"/>
<configValue key="extend3"/>
<configValue key="extend4"/>
<configValue key="extend5"/>
<configValue key="extend6"/>
<configValue key="extend7"/>
<configValue key="extend8"/>
<configValue key="extend9"/>
</group>
</module>
<module name="worklist_change_notify">
<group name="listener_class">
<!-- 工作列表变更通知功能开关 -->
<configValue key="is_notify">false</configValue>
<!-- 工作列表变更通知功能接口实现类配置 -->
<configValue key="name">org.gocom.workflow.taskcenter.adapter.bps.WorkListChangeNotifier</configValue>
</group>
<group name="thread_pool">
<!-- 线程池维护线程的最少数量 -->
<configValue key="corePoolSize">2</configValue>
<!-- 线程池维护线程的最大数量 -->
<configValue key="maximumPoolSize">5</configValue>
<!-- 线程池维护线程所允许的空闲时间 -->
<configValue key="keepAliveTime">1</configValue>
</group>
<group name="remote">
<!-- 集中任务中心访问地址-->
<configValue key="url">http://127.0.0.1:8080/taskcenter</configValue>
</group>
<group name="reliableRetryPush">
<!-- 工作项发送错误情况下的重试次数 -->
<configValue key="retryTimes">3</configValue>
</group>
<!-- workItem到Task[集中任务中心的任务]默认转化器配置可以自定义实现需要实现接口org.gocom.workflow.taskcenter.adapter.bps.convertor.IConvertor -->
<group name="taskConvertor">
<configValue key="defaultConvertImp">org.gocom.workflow.taskcenter.adapter.bps.convertor.imp.BpsAdapterDefaultConvertor</configValue>
</group>
<!-- 工作项URL配置 -->
<!-- URL配置说明: -->
<!-- 1、配置关系为KEY-VALUE[示例如下] -->
<!-- <group name="taskUrl"> -->
<!-- <configValue key="tenantA">var:tenantAUrl</configValue> -->
<!-- <configValue key="tenantB">var:tenantBUrl</configValue> -->
<!-- </group> -->
<!-- 2、如果为非多租户模式[示例如下] -->
<!-- <group name="taskUrl"> -->
<!-- <configValue key="defaultUrl">${defaultUrl}</configValue> -->
<!-- </group> -->
<group name="taskUrl">
<configValue key="defaultUrl">var:defaultUrl</configValue>
</group>
</module>
<!-- 审计日志记录配置 -->
<module name="audit_log">
<group name="record_opt">
<!-- 是否记录活动开始、结束轨迹 -->
<configValue key="activity">false</configValue>
<!-- 是否记录工作项执行、轨迹 -->
<configValue key="workItem">false</configValue>
<!-- 是否记录查询操作接口 -->
<configValue key="query">false</configValue>
</group>
</module>
<module name="bps_composer">
<group name="catalog_cfg">
<configValue key="permission_inherited">false</configValue>
<!-- 是否启用业务目录权限控制 -->
<configValue key="permission_enable">false</configValue>
</group>
</module>
<!-- 流程图连线配置 -->
<module name="wflinkcolor">
<group name="wfcache">
<!-- 连线运行时颜色 -->
<configValue key="runtime_color">#A52A2A</configValue>
<!-- 连线完成时颜色 -->
<configValue key="finished_color">#228B22</configValue>
<!-- 连线未启动颜色 -->
<configValue key="unstart_color">#BCBCBC</configValue>
<!-- 连线粗细大小 -->
<configValue key="thickness_degree">1</configValue>
</group>
</module>
<!-- Web服务安全配置 -->
<module name="bps_webservice">
<group name="ws_security">
<!-- 是否启用Web服务安全 -->
<configValue key="security_enable">false</configValue>
<configValue key="user">bps</configValue>
<configValue key="password">pkosszmKuLAJHAwHzJFPiqE=</configValue>
</group>
</module>
</application>

View File

@ -0,0 +1,313 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<application xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- 高性能消息调用配置 -->
<module name="wfmessage">
<group name="wfcache">
<!-- 启用消息调用 -->
<configValue key="message_enable">false</configValue>
<!-- 启用前端机 -->
<configValue key="frontend_enable">false</configValue>
<!-- 消息表名前缀 -->
<configValue key="frontend_tablePrefix">WFMESSAGE_</configValue>
<!-- 执行机数量 -->
<configValue key="frontend_executerCoun">2</configValue>
<!-- 前端机发送线程,检查空闲执行机的时间间隔 -->
<configValue key="frontend_dispatcher_checkFreeInterval">3000</configValue>
<!-- 前端机发送线程的均衡策略,目前仅支持平均 -->
<configValue key="frontend_dispatcher_strategy">average</configValue>
<!-- 启用执行机 -->
<configValue key="executer_enable">false</configValue>
<!--执行机编号 -->
<configValue key="executer_loader_nodeIndex">0</configValue>
<!-- 执行机批量加载消息数量 -->
<configValue key="executer_loader_loadMaxNum">200</configValue>
<!-- 执行机加载消息时间间隔 -->
<configValue key="executer_loader_reLoadWaitInterval">1000</configValue>
<!-- 执行机消息队列长度 -->
<configValue key="executer_thread_maxQueueLength">500</configValue>
<!-- 执行机最大线程数 -->
<configValue key="executer_thread_maxThreadNum">50</configValue>
<!-- 执行机消息队列线程休眠时间间隔 -->
<configValue key="executer_thread_retryWaitInterval">300</configValue>
<!-- 消息执行完毕自动删除 -->
<configValue key="executer_consumer_deleteOnFinished">false</configValue>
<!-- 数据迁移线程判断执行机状态的是否宕机的时间间隔 -->
<configValue key="executer_assistant_deemedDeadInterval">60000</configValue>
<!-- 数据迁移线程判断执行机状态的时间间隔 -->
<configValue key="executer_assistant_checkDeadInterval">10000</configValue>
<!-- 自检线程检测时间间隔 -->
<configValue key="executer_nurse_checkHealthInterval">3000</configValue>
<!-- 辅助搬运线程是否运行 -->
<configValue key="assistant_thread_enable">true</configValue>
</group>
</module>
<module name="wfcluster">
<group name="wfcache">
<!-- 集群通知的消息缓存数上限 -->
<configValue key="max_message_size">300</configValue>
<!-- 集群节点状态维护功能的心跳间隔时间 -->
<configValue key="heartbeat_interval">60000</configValue>
<!-- SMP: Store Strategy -->
<configValue key="def_store_strategy">step</configValue>
</group>
</module>
<!--
用于RMI调用引擎DTS模块的安全校验
-->
<module name="access_authorization">
<group name="rmi_access">
<!-- 是否允许通过Studio提交流程到引擎 -->
<configValue key="allow">true</configValue>
<!-- 通过Studio提交流程到引擎是是否需要校验用户 -->
<configValue key="validate">true</configValue>
<!-- 可以通过studio提交流程的账号 -->
<configValue key="name">internal</configValue>
<!-- 可以通过studio提交流程的账号密码 -->
<configValue key="password">primeton</configValue>
</group>
</module>
<module name="server_watcher">
<group name="watcher">
<!-- Server唯一编号如果不设置则默认为"IP:AdminPort" -->
<configValue key="serverID"></configValue>
<!-- 监控时间间隔 -->
<configValue key="watcherPeriod">300000</configValue>
<!-- Server守护线程启动延时 -->
<configValue key="watcherDelay">300000</configValue>
<!-- 判断心跳停止宕机时间默认20分钟 -->
<configValue key="judgmentDownTime">1200000</configValue>
<!-- 宕机后是否处理宕机节点 -->
<configValue key="downtimeServerProcess">true</configValue>
</group>
</module>
<module name="task_pool">
<group name="pool">
<!-- 缺省任务过滤器实现,通过getOneTask(String qname)方法查询时使用此filter过滤 -->
<configValue key="defaultFilterClass">com.primeton.bps.taskpool.api.DefaultTaskFilter</configValue>
<!-- 默认任务队列对应的任务加载实现类 -->
<configValue key="defaultTaskLoader">com.primeton.bps.taskpool.schedule.TaskLoader</configValue>
<!-- configValue key="defaultTaskLoader_order">priority DESC,createTime ASC,processInstID ASC</configValue-->
<!-- 如果有需要,不同的任务队列可以配置不同的任务加载器
<configValue key="taskQueue_A">com.primeton.bps.taskpool.schedule.TaskLoaderA</configValue>
<configValue key="taskQueue_B">com.primeton.bps.taskpool.schedule.TaskLoaderB</configValue>
<configValue key="taskQueue_C">com.primeton.bps.taskpool.schedule.TaskLoaderC</configValue>
-->
<!-- 单个队列最大任务数 -->
<configValue key="maxCapacity">1000</configValue>
<!-- 已领取任务是否检测超时 -->
<configValue key="checkTimeout">true</configValue>
<!-- 任务领取后超时时间值 -->
<configValue key="taskTimeout">1200000</configValue>
<!-- 当前Server没有任务是否到其他server领取 -->
<configValue key="acrossReceive">true</configValue>
</group>
</module>
<module name="wfservice">
<group name="DataAccessService">
<configValue key="class">com.primeton.workflow.service.das.database.impl.DataAccessServiceImpl</configValue>
<configValue key="startup">100</configValue>
</group>
<group name="NotificationService">
<configValue key="class">#com.primeton.workflow.service.notifaction.NotificationServiceChooser</configValue>
<configValue key="startup">200</configValue>
</group>
<group name="TransactionService">
<configValue key="class">com.primeton.workflow.commons.txeos.TransactionServiceImpl4EOS</configValue>
<configValue key="startup">300</configValue>
</group>
<group name="EventService">
<configValue key="class">com.primeton.workflow.event.framework.event.base.EventServiceImplDefault</configValue>
<configValue key="startup">400</configValue>
</group>
<group name="LockService">
<configValue key="class">com.primeton.workflow.commons.lock.LockServiceOptimizer</configValue>
<configValue key="startup">500</configValue>
</group>
<group name="SystemTimerService">
<configValue key="class">com.primeton.workflow.service.timer.system.SystemTimerImpl</configValue>
<configValue key="startup">600</configValue>
</group>
<group name="TimerService">
<configValue key="class">#com.primeton.workflow.service.timer.TimerServiceChooser</configValue>
<configValue key="startup">700</configValue>
</group>
<group name="DefinationParserService">
<configValue key="class">com.primeton.workflow.process.service.def.DefinationParserServiceImpl</configValue>
<configValue key="startup">800</configValue>
</group>
<group name="TenancyCacheService">
<configValue key="class">com.primeton.bps.multitenancy.impl.TenancyCacheService</configValue>
<configValue key="startup">850</configValue>
</group>
<group name="ExcludeParticipantsCache">
<configValue key="class">com.primeton.bps.taskpool.schedule.ExcludeParticipantsCache</configValue>
<configValue key="startup">860</configValue>
</group>
<group name="WFOMServiceService">
<configValue key="class">com.primeton.workflow.service.organization.internal.WFOMServiceInner</configValue>
<configValue key="startup">900</configValue>
</group>
<group name="WFOMModelService">
<configValue key="class">com.primeton.workflow.service.organization.studio.WFOMModelServiceImpl</configValue>
<configValue key="startup">1000</configValue>
</group>
<group name="InstancePoolService">
<configValue key="class">com.primeton.workflow.instpool.smp.WFInstancePoolImplBasic</configValue>
<configValue key="startup">1100</configValue>
</group>
<group name="DefinationCatcheService">
<configValue key="class">com.primeton.workflow.process.service.def.DefinationCatcheServiceImpl</configValue>
<configValue key="startup">1200</configValue>
</group>
<group name="AgentCacheManager">
<configValue key="class">com.primeton.workflow.task.service.agent.AgentCacheManager</configValue>
<configValue key="startup">1300</configValue>
</group>
<group name="UniqueService">
<configValue key="class">com.primeton.workflow.service.unique.UniqueServiceImpl</configValue>
<configValue key="startup">1400</configValue>
</group>
<group name="KeyTranslatorService">
<configValue key="class">com.primeton.workflow.instpool.keytrans.WFKeyTranslatorServiceConcreate</configValue>
<configValue key="startup">1500</configValue>
</group>
<!--group name="HistoryTransportationService">
<configValue key="class">com.primeton.workflow.engine.scheduler.commons.HistoryTransportationService</configValue>
<configValue key="startup">16</configValue>
</group-->
<group name="BizResourceCacheService">
<configValue key="class">com.primeton.workflow.service.bizresource.das.BizResourceCacheServiceImpl</configValue>
<configValue key="startup">1600</configValue>
</group>
<group name="BizResourceDataAccessService">
<configValue key="class">com.primeton.workflow.service.bizresource.das.BizResourceDataAccessServiceImpl</configValue>
<configValue key="startup">1700</configValue>
</group>
<group name="BizResourceRunnerService">
<configValue key="class">com.primeton.workflow.service.bizresource.runtime.impl.BizResourceRunnerService</configValue>
<configValue key="startup">1800</configValue>
</group>
<group name="BizInfoCacheService">
<configValue key="class">com.primeton.workflow.service.bizinfo.WFBizInfoCacheServiceImpl</configValue>
<configValue key="startup">1900</configValue>
</group>
<group name="AutoDeleteShortProcessInstService">
<configValue key="class">com.primeton.workflow.engine.transhistory.impl.AutoDeleteShortProcessInstServiceImpl</configValue>
<configValue key="startup">2000</configValue>
</group>
<group name="BPSMessageService">
<configValue key="class">com.primeton.workflow.message.service.BPSMessageServiceImpl</configValue>
<configValue key="startup">20</configValue>
</group>
<group name="MultiTenancyService">
<configValue key="class">com.primeton.bps.multitenancy.impl.MultiTenancyService</configValue>
<configValue key="startup">2012</configValue>
</group>
<group name="ProcessInstDataTransfer">
<configValue key="class">com.primeton.workflow.service.transfer.realtime.ProcessInstDataTransfer</configValue>
<configValue key="startup">2300</configValue>
</group>
</module>
<!-- MBean config -->
<module name="Mbean">
<!-- DataSourceMBean config -->
<group name="DatasourceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.ContributionDataSourceConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--
<group name="WFLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">applog</configValue>
<configValue key="LogFile">log4j-wf.xml</configValue>
</group>
-->
<group name="WFMailMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFEngineConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFTransportHistoryMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFEngineConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFOmMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFOMServiceConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFRelativeDataMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFEngineConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFClusterMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFClusterConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFConnectionProviderMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFConnectionProviderConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFAuditLogMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFAuditLogConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFComposerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFComposerConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="WFLinkColorMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFLinkColorConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--
<group name="WFWebServiceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFWebServiceConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
-->
<group name="WFMessageMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFMessageConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<group name="MessageConsumerMBean">
<configValue key="Type">other</configValue>
<configValue key="Class">com.primeton.workflow.commons.notification.notify.MessageConsumer</configValue>
</group>
<group name="WFMultiTenancyMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.common.config.mbean.Config</configValue>
<configValue key="Handler">com.primeton.workflow.commons.config.handler.WFMultiTenancyConfigurationHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
</module>
</application>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<licenses>
<license-group embed="true" format="1.0" productFamily="Primeton Platform" release="8.2">
<license edition="EE" licensee="Primeton Customer" sign="302e0215009120bbbf5b4c047cad26d1a2e28706533c0fcf4f02150096fbc6d0011ad9086e14686533fafb8f8dff5d35" type="PERM">
<license-element key="cpus" privilege="false" value="unlimited"/>
<license-element key="db" value="unlimited"/>
<license-element key="as" value="unlimited"/>
<license-element key="os" value="unlimited"/>
<license-element key="expiration" value="unlimited"/>
<license-element key="ip" value="JuzaMFIXBnCMvdLCDjPaSSBNdo8S0Q7SHA=="/>
<license-element key="mac" value="JuzaMFIXBnCMvdLCDjPaSSBNdo8S0Q7SHA=="/>
<license-element key="server" value="true">
</license-element>
<license-element key="richweb" value="true">
</license-element>
<license-element key="workflow" value="true">
</license-element>
<license-element key="managermodel" value="group"/>
<license-element key="cluster" value="true"/>
<license-element key="international" value="unlimited"/>
<license-element key="concurrency" value="20"/>
<license-element key="distributed" value="true"/>
<license-element key="scaAssembly" value="true"/>
<license-element key="scaCaller" value="true"/>
<license-element key="wsBinding" value="true"/>
<license-element key="wsCaller" value="true"/>
<license-element dynamic="true" key="available.product.components.required" value="eos,bps"/>
<license-element dynamic="true" key="available.product.components.optional" value="lowcode"/>
<license-element dynamic="true" key="gov.integrates.gateway" value="true"/>
<license-element dynamic="true" key="gov.integrates.cfg-center" value="true"/>
<license-element dynamic="true" key="gov.integrates.log-center" value="true"/>
<license-element dynamic="true" key="gov.integrates.apm-center" value="true"/>
<license-element dynamic="true" key="gov.integrates.cbm-center" value="true"/>
<license-element dynamic="true" key="gov.domain.number" value="1"/>
<license-element dynamic="true" key="gov.instance.number" value="20"/>
</license>
</license-group>
</licenses>

View File

@ -0,0 +1,20 @@
afc.application.name=AFCENTER
afc.application.tenant=sys_tenant
bps.application.name=BPS-SERVER
bps.tenant.id=
# attachment
# mode: local,db,nexus,aliyun-oss
afc.attachments.persistence-mode=local
afc.attachments.local.dir=
afc.attachments.nexus.repository-url=
afc.attachments.nexus.username=
afc.attachments.nexus.password=
afc.attachments.aliyun-oss.endpoint=
afc.attachments.aliyun-oss.access-key-id=
afc.attachments.aliyun-oss.access-key-secret=
afc.attachments.aliyun-oss.bucket-name=
afc.attachments.libre-office.host=
afc.attachments.libre-office.port=

View File

@ -0,0 +1,27 @@
management.health.mail.enabled=false
mybatis.mapper-locations=classpath*:mybatis-mapper/*Mapper.xml
#mybatis.type-aliases-package=com.xxl.job.admin.core.model
spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=xxx@qq.com
spring.mail.from=xxx@qq.com
spring.mail.password=xxx
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
#xxl.job.accessToken=
xxl.job.i18n=zh_CN
xxl.job.triggerpool.fast.max=200
xxl.job.triggerpool.slow.max=100
afc.job.admin.enabled=false
afc.job.executor.enabled=false
xxl.job.logretentiondays=30
# executor<6F><72><EFBFBD><EFBFBD>
#afc.job.executor.accessToken=default_token
#afc.job.executor.address=
#afc.job.executor.ip=
#afc.job.executor.port=9999
#afc.job.executor.logPath=
#afc.job.executor.logRetentionDays=

View File

@ -0,0 +1,4 @@
spring.cloud.nacos.discovery.enabled=true
spring.cloud.nacos.discovery.server-addr=192.168.3.32:8848
eureka.client.enabled=false

View File

@ -0,0 +1,70 @@
server.port=28099
spring.application.name=demo
server.servlet.session.timeout=PT120M
server.app-server.accept-count=1000
server.app-server.max-connections=10000
server.app-server.max-threads=500
server.app-server.min-space-threads=50
#file upload
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=100MB
#spring.profiles.active=eureka
spring.profiles.active=nacos,afc,job
management.endpoints.web.exposure.include=hystrix.stream,health,info,loggers,eos,mappings
management.health.redis.enable=false
out.config.folder=config
eos.application.sys-code=EOS-DEMO-SYS
eos.application.sys-key=dc6baaed30e541d78bb91274803d9432
# eos environment: dev prod test
eos.profiles.active=dev
# eos cache config
eos.cache.mode=redis
spring.session.store-type=none
# redis
spring.redis.host=192.168.3.32
spring.redis.port=6379
spring.redis.password=panshu123
spring.redis.database=2
spring.redis.lettuce.pool.max-active=100
spring.redis.lettuce.pool.max-idle=100
spring.redis.lettuce.pool.max-wait=5000
#primary datasource
spring.datasource.url=jdbc:mysql://192.168.3.32:3306/eos-afc-830?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=false
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.pool-name=main
spring.datasource.connection-timeout=60000
spring.datasource.maximum-pool-size=500
spring.datasource.hikari.minimum-idle=100
spring.datasource.hikari.idle-timeout=600000
spring.datasource.hikari.max-lifetime=28740000
#afc datasource
#spring.datasource.dynamic.datasource.afcenter.url=jdbc:mysql://192.168.3.32:3306/eos-index-831?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2b8&useSSL=false
#spring.datasource.dynamic.datasource.afcenter.driver-class-name=com.mysql.jdbc.Driver
#spring.datasource.dynamic.datasource.afcenter.username=root
#spring.datasource.dynamic.datasource.afcenter.password=123456
# MyBatis Plus Configuration
mybatis-plus.type-aliases-package=com.primeton.eos.demo.core.test.entity.bo
mybatis-plus.mapper-locations=classpath*:mybatis-mapper/*.xml
mybatis-plus.configuration.jdbc-type-for-null=null
mybatis-plus.configuration.map-underscore-to-camel-case=true
mybatis-plus.global-config.banner=false
# ??????
file.local.enable=true
#file.local.base-path=/home/file
file.local.base-path=C:/home/file

View File

@ -0,0 +1,51 @@
<assembly 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/assembly-1.0.0.xsd">
<id>package-component</id>
<formats>
<format>zip</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<fileSets>
<fileSet>
<directory>target/${project.parent.name}-db-scripts/META-INF/db-scripts</directory>
<outputDirectory>script</outputDirectory>
</fileSet>
</fileSets>
<!-- 根据实际需要的文件来拷贝 -->
<!--
<files>
<file>
<source>src/META-INF/application-xxx.properties</source>
<outputDirectory>config</outputDirectory>
<destName>application-comp-${project.parent.name}.properties</destName>
<lineEnding>unix</lineEnding>
</file>
<file>
<source>src/META-INF/assembly/resources/meta.json</source>
<outputDirectory />
<lineEnding>unix</lineEnding>
</file>
<file>
<source>target/${project.parent.name}_app.zip</source>
<outputDirectory>frontend</outputDirectory>
</file>
</files>
-->
<dependencySets>
<dependencySet>
<includes>
<!-- 默认是除了boot外的其他构件包 -->
<include>${project.groupId}:${project.groupId}.${project.parent.name}.api</include>
<include>${project.groupId}:${project.groupId}.${project.parent.name}.core</include>
<include>${project.groupId}:${project.groupId}.${project.parent.name}.model</include>
</includes>
<outputDirectory>backend/${project.parent.name}_lib</outputDirectory>
<unpack>false</unpack>
</dependencySet>
</dependencySets>
</assembly>

View File

@ -0,0 +1,153 @@
<assembly 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/assembly-1.0.0.xsd">
<id>package</id>
<formats>
<format>tar.gz</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<!-- Dependent jars can be replaced externally -->
<dependencySets>
<dependencySet>
<outputDirectory>lib/jdbc</outputDirectory>
<includes>
<include>mysql:*</include>
<include>dameng:*</include>
<include>com.huawei.gauss.jdbc.ZenithDriver:*</include>
<include>com.oracle.ojdbc:*</include>
<include>com.primeton.3rd.jdbc:*</include>
<include>com.microsoft.sqlserver:*</include>
<include>com.ibm.db2.jcc:*</include>
<include>org.postgresql:*</include>
<include>com.clickhouse:*</include>
<include>ru.yandex.clickhouse:*</include>
<include>org.mongodb:*</include>
</includes>
<fileMode>0755</fileMode>
</dependencySet>
<dependencySet>
<outputDirectory>lib/hadoop</outputDirectory>
<includes>
<include>org.apache.hadoop:*</include>
</includes>
<fileMode>0755</fileMode>
</dependencySet>
<dependencySet>
<outputDirectory>lib/hive</outputDirectory>
<includes>
<include>org.apache.hive:*</include>
<include>org.apache.hive.shims:*</include>
<include>org.apache.thrift:libthrift</include>
</includes>
<fileMode>0755</fileMode>
</dependencySet>
<dependencySet>
<outputDirectory>lib/hbase</outputDirectory>
<includes>
<include>org.apache.hbase:*</include>
<include>org.apache.hbase.thirdparty:*</include>
</includes>
<fileMode>0755</fileMode>
</dependencySet>
</dependencySets>
<fileSets>
<!-- eos-db-scripts -->
<fileSet>
<directory>target/eos-db-scripts/db-scripts</directory>
<outputDirectory>db-scripts/eos</outputDirectory>
</fileSet>
<!-- program-db-scripts -->
<fileSet>
<directory>target/demo-db-scripts/META-INF/db-scripts</directory>
<outputDirectory>db-scripts/demo</outputDirectory>
</fileSet>
<!-- Jar of the program itself -->
<fileSet>
<directory>target</directory>
<outputDirectory>.</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
<!-- Web resource of program -->
<fileSet>
<directory>static</directory>
<outputDirectory>static</outputDirectory>
<includes>
<include>*/**</include>
</includes>
</fileSet>
<!-- Jar of the project extend -->
<fileSet>
<directory>../lib</directory>
<outputDirectory>lib</outputDirectory>
<includes>
<include>*.jar</include>
</includes>
</fileSet>
<!-- Program configuration -->
<fileSet>
<directory>src/META-INF</directory>
<outputDirectory>config</outputDirectory>
<includes>
<include>*.yml</include>
<include>*.properties</include>
<include>logback-spring.xml</include>
<include>serialkiller.xml</include>
</includes>
</fileSet>
<!-- Program configuration -->
<fileSet>
<directory>src/META-INF/_srv/config</directory>
<outputDirectory>config/demo</outputDirectory>
<includes>
<include>*/**</include>
</includes>
</fileSet>
<!-- Database script of program -->
<fileSet>
<directory>src/META-INF/db-scripts</directory>
<includes>
<include>*/**</include>
</includes>
<outputDirectory>db-scripts</outputDirectory>
</fileSet>
<!-- License -->
<fileSet>
<directory>src/META-INF/_srv</directory>
<outputDirectory>config/demo/license</outputDirectory>
<includes>
<include>*.xml</include>
</includes>
</fileSet>
<!-- Startup script of program -->
<fileSet>
<directory>src/META-INF/scripts</directory>
<includes>
<include>*.sh</include>
</includes>
<outputDirectory>bin</outputDirectory>
<lineEnding>unix</lineEnding>
<fileMode>0755</fileMode>
</fileSet>
<fileSet>
<directory>src/META-INF/scripts</directory>
<includes>
<include>*.cmd</include>
</includes>
<outputDirectory>bin</outputDirectory>
</fileSet>
</fileSets>
</assembly>

View File

@ -0,0 +1,3 @@
# nacos-addr
spring.cloud.nacos.config.enabled=true
spring.cloud.nacos.config.server-addr=192.168.3.32:8848

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- MBean config -->
<module name="Mbean">
<!-- DataSourceMBean config -->
<group name="DatasourceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.ContributionDataSourceConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--<group name="ContributionLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">log</configValue>
</group>-->
</module>
<!-- datasource config -->
<module name="DataSource">
<group name="Reference">
<!--
the configuration below describes
the corresponding relationship between contribution datasource and application datasource,
multiple datasources can be defined.
the value 'default' of attibute 'key' denotes a contribution datasource
and the field value 'default' of 'configValue' node stands for an application datasource.
-->
<configValue key="default">default</configValue>
</group>
</module>
</contribution>

View File

@ -0,0 +1,3 @@
<handlers>
<!--<handler handle-class="com.primeton.runtime.resource.event.ContributionDemoListener"/>-->
</handlers>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_FOLDER" value="${LOG_FOLDER:-./logs}" />
<include resource="com/primeton/eos/springboot/logging/logback/logback-spring.xml" />
</configuration>

View File

@ -0,0 +1,6 @@
#exception properties resource file.
#content format:
# code=message
#for example:
# 100001=It occur when [{0}] execute.

View File

@ -0,0 +1,6 @@
#I18N properties resource file.
#content format:
# code=message
#for example:
# 10000=name

View File

@ -0,0 +1,13 @@
@echo off
setlocal
set PRG=%~dp0
FOR /F %%i IN ('dir /b %PRG%..\*.jar') DO @set JAR_FILE=%%i
echo killing EOS8-PERSON-INDEX server
for /f "tokens=1" %%i in ('jps -m ^| find "%JAR_FILE%"') do ( taskkill /F /PID %%i )
echo Done!

View File

@ -0,0 +1,17 @@
#!/bin/sh
PRG="$0"
saveddir=`pwd`
EOS_DAP_HOME=`dirname "$PRG"`/..
EOS_DAP_HOME=`cd "$EOS_DAP_HOME" && pwd`
cd "$saveddir"
export APP_NAME=EOS8-PERSON-INDEX
export MODE=service
export LOG_FOLDER="${EOS_DAP_HOME}"/logs
export PID_FOLDER="${LOG_FOLDER}"
export LOG_FILENAME="${APP_NAME}.out" # log console for background mode running
BOOT_JAR=`echo "${EOS_DAP_HOME}"/*.jar`
$BOOT_JAR stop "$@"

View File

@ -0,0 +1,52 @@
@echo off
set PRG=%~dp0
set EOS_DAP_HOME=%PRG:~0,-5%
set PRIMETON_HOME=%PRG:~0,-14%
if not exist "%JAVA_HOME%\bin\java.exe" set JAVA_HOME=%PRIMETON_HOME%\jdk180
set "JAVA=%JAVA_HOME%\bin\java.exe"
set APP_NAME=EOS8-PERSON-INDEX
set LOG_FOLDER=%EOS_DAP_HOME%/logs
set EOS_DAP_MEM_OPTS=-Xms512m -Xmx1024m -Xmn256m
set JAVA_OPTS=%JAVA_OPTS% -server -Djava.net.preferIPv4Stack=true -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8
set JAVA_OPTS=%JAVA_OPTS% %EOS_DAP_MEM_OPTS%
set JAVA_OPTS=%JAVA_OPTS% -DEXTERNAL_CONFIG_DIR=%EOS_DAP_HOME%\config
set JAVA_OPTS=%JAVA_OPTS% -Dloader.path=%EOS_DAP_HOME%\lib
set JAVA_OPTS=%JAVA_OPTS% -Dlogging.config=%EOS_DAP_HOME%\config\logback-spring.xml
set JAVA_OPTS=%JAVA_OPTS% -Dnacos.logging.path=%LOG_FOLDER%\nacos -Dcom.alibaba.nacos.naming.cache.dir=%LOG_FOLDER%\nacos\cache
@rem set JAVA_OPTS=%JAVA_OPTS% -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+UseConcMarkSweepGC
echo %*| findstr \-debug >nul && (
set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8787
)
echo %*| findstr \-apm >nul && (
set JAVA_OPTS=%JAVA_OPTS% -javaagent:%EOS_DAP_HOME%\..\..\skywalking-agent\skywalking-agent.jar
set JAVA_OPTS=%JAVA_OPTS% -DSW_AGENT_NAME=%APP_NAME%
set JAVA_OPTS=%JAVA_OPTS% -Dskywalking.trace.ignore_path=/eureka/**,/actuator/eos/**,/nacos/**
@rem set JAVA_OPTS=%JAVA_OPTS% -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
)
echo %*| findstr \-version >nul && (
set JAVA_OPTS=%JAVA_OPTS% -Dloader.main=com.primeton.eos.springboot.VersionInfo
)
echo %*| findstr \-opens >nul && (
set JAVA_OPTS=%JAVA_OPTS% --add-opens java.base/java.lang=ALL-UNNAMED
)
cd %EOS_DAP_HOME%
FOR /F %%i IN ('dir /b *.jar') DO @set JAR_FILE=%%i
set BOOT_JAR=%EOS_DAP_HOME%\%JAR_FILE%
title %JAR_FILE%
"%JAVA%" %JAVA_OPTS% -jar %BOOT_JAR% %1 %2 %3

View File

@ -0,0 +1,66 @@
#!/bin/sh
PRG="$0"
saveddir=`pwd`
EOS_DAP_HOME=`dirname "$PRG"`/..
EOS_DAP_HOME=`cd "$EOS_DAP_HOME" && pwd`
cd "$saveddir"
export APP_NAME=EOS8-PERSON-INDEX
export MODE=service
export LOG_FOLDER="${EOS_DAP_HOME}"/logs
export PID_FOLDER="${LOG_FOLDER}"
export LOG_FILENAME="${APP_NAME}.out" # log console for background mode running
mkdir -p $LOG_FOLDER/$APP_NAME # pid dir
rm -fr $LOG_FOLDER/$LOG_FILENAME
ln -s /dev/null $LOG_FOLDER/$LOG_FILENAME # "$LOG_FOLDER/$LOG_FILENAME is using for >> "$log_file" 2>&1"
export EOS_DAP_MEM_OPTS="-Xms512m -Xmx1024m -Xmn256m"
export JAVA_OPTS="$JAVA_OPTS -server -Djava.net.preferIPv4Stack=true -Duser.timezone=Asia/Shanghai -Dclient.encoding.override=UTF-8 -Dfile.encoding=UTF-8 -Djava.security.egd=file:/dev/./urandom"
export JAVA_OPTS="$JAVA_OPTS $EOS_DAP_MEM_OPTS"
export JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
export JAVA_OPTS="$JAVA_OPTS -DEXTERNAL_CONFIG_DIR=${EOS_DAP_HOME}/config"
export JAVA_OPTS="$JAVA_OPTS -Dloader.path=${EOS_DAP_HOME}/lib"
export JAVA_OPTS="$JAVA_OPTS -Dlogging.config=${EOS_DAP_HOME}/config/logback-spring.xml"
export JAVA_OPTS="$JAVA_OPTS -Dnacos.logging.path=${LOG_FOLDER}/nacos -Dcom.alibaba.nacos.naming.cache.dir=${LOG_FOLDER}/nacos/cache"
# export JAVA_OPTS="$JAVA_OPTS -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 -XX:+UseConcMarkSweepGC"
if [[ "$*" =~ "-debug" ]];
then
export JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8788"
fi
if [[ "$*" =~ "-apm" ]];
then
export JAVA_OPTS="$JAVA_OPTS -javaagent:${EOS_DAP_HOME}/../../skywalking-agent/skywalking-agent.jar"
export JAVA_OPTS="$JAVA_OPTS -DSW_AGENT_NAME=${APP_NAME}"
export JAVA_OPTS="$JAVA_OPTS -Dskywalking.trace.ignore_path=/eureka/**,/actuator/eos/**,/nacos/**"
#export JAVA_OPTS="$JAVA_OPTS -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800"
fi
if [[ "$*" =~ "-opens" ]];
then
export JAVA_OPTS="$JAVA_OPTS --add-opens java.base/java.lang=ALL-UNNAMED"
fi
action=$1
if [[ "$action" == "run" ]] || [[ "$action" == "start" ]];
then
shift
else
action="start"
fi
if [[ "$*" =~ "-version" ]];
then
export JAVA_OPTS="$JAVA_OPTS -Dloader.main=com.primeton.eos.springboot.VersionInfo"
action="run"
fi
BOOT_JAR=`echo "${EOS_DAP_HOME}"/*.jar`
$BOOT_JAR $action "$@"

View File

@ -0,0 +1,244 @@
<?xml version="1.0" encoding="UTF-8"?>
<config>
<blacklist>
<regexps>
<!-- ysoserial's BeanShell1 payload -->
<regexp>bsh\.XThis$</regexp>
<regexp>bsh\.Interpreter$</regexp>
<!-- ysoserial's C3P0 payload -->
<regexp>com\.mchange\.v2\.c3p0\.impl\.PoolBackedDataSourceBase$</regexp>
<regexp>com\.mchange\.v2\.c3p0\.JndiRefForwardingDataSource$</regexp>
<regexp>com\.mchange\.v2\.c3p0\.WrapperConnectionPoolDataSource$</regexp>
<regexp>com\.mchange\.v2\.c3p0\.ComboPooledDataSource$</regexp>
<regexp>com\.mchange\.v2\.c3p0\.debug\.AfterCloseLoggingComboPooledDataSource$</regexp>
<!-- ysoserial's CommonsBeanutils1 payload -->
<regexp>org\.apache\.commons\.beanutils\.BeanComparator$</regexp>
<!-- ysoserial's CommonsCollections1,3,5,6 payload -->
<regexp>org\.apache\.commons\.collections\.Transformer$</regexp>
<regexp>org\.apache\.commons\.collections\.functors\.InvokerTransformer$</regexp>
<regexp>org\.apache\.commons\.collections\.functors\.ChainedTransformer$</regexp>
<regexp>org\.apache\.commons\.collections\.functors\.ConstantTransformer$</regexp>
<regexp>org\.apache\.commons\.collections\.functors\.InstantiateTransformer$</regexp>
<!-- ysoserial's CommonsCollections2,4 payload -->
<regexp>org\.apache\.commons\.collections4\.functors\.InvokerTransformer$</regexp>
<regexp>org\.apache\.commons\.collections4\.functors\.ChainedTransformer$</regexp>
<regexp>org\.apache\.commons\.collections4\.functors\.ConstantTransformer$</regexp>
<regexp>org\.apache\.commons\.collections4\.functors\.InstantiateTransformer$</regexp>
<regexp>org\.apache\.commons\.collections4\.comparators\.TransformingComparator$</regexp>
<!-- ysoserial's FileUpload1,Wicket1 payload -->
<regexp>org\.apache\.commons\.fileupload\.disk\.DiskFileItem$</regexp>
<regexp>org\.apache\.wicket\.util\.upload\.DiskFileItem$</regexp>
<!-- ysoserial's Groovy payload -->
<regexp>org\.codehaus\.groovy\.runtime\.ConvertedClosure$</regexp>
<regexp>org\.codehaus\.groovy\.runtime\.MethodClosure$</regexp>
<!-- ysoserial's Hibernate1,2 payload -->
<regexp>org\.hibernate\.engine\.spi\.TypedValue$</regexp>
<regexp>org\.hibernate\.tuple\.component\.AbstractComponentTuplizer$</regexp>
<regexp>org\.hibernate\.tuple\.component\.PojoComponentTuplizer$</regexp>
<regexp>org\.hibernate\.type\.AbstractType$</regexp>
<regexp>org\.hibernate\.type\.ComponentType$</regexp>
<regexp>org\.hibernate\.type\.Type$</regexp>
<regexp>com\.sun\.rowset\.JdbcRowSetImpl$</regexp>
<!-- ysoserial's JBossInterceptors1, JavassistWeld1 payload -->
<regexp>org\.jboss\.(weld\.)?interceptor\.builder\.InterceptionModelBuilder$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.builder\.MethodReference$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.proxy\.DefaultInvocationContextFactory$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.proxy\.InterceptorMethodHandler$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.reader\.ClassMetadataInterceptorReference$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.reader\.DefaultMethodMetadata$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.reader\.ReflectiveClassMetadata$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.reader\.SimpleInterceptorMetadata$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.spi\.instance\.InterceptorInstantiator$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.spi\.metadata\.InterceptorReference$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.spi\.metadata\.MethodMetadata$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.spi\.model\.InterceptionModel$</regexp>
<regexp>org\.jboss\.(weld\.)?interceptor\.spi\.model\.InterceptionType$</regexp>
<!-- ysoserial's JRMPClient payload -->
<regexp>java\.rmi\.registry\.Registry$</regexp>
<regexp>java\.rmi\.server\.ObjID$</regexp>
<regexp>java\.rmi\.server\.RemoteObjectInvocationHandler$</regexp>
<!-- ysoserial's JSON1 payload -->
<regexp>net\.sf\.json\.JSONObject$</regexp>
<!-- ysoserial's Jdk7u21 payload -->
<regexp>javax\.xml\.transform\.Templates$</regexp>
<!-- ysoserial's Jython1 payload -->
<regexp>org\.python\.core\.PyObject$</regexp>
<regexp>org\.python\.core\.PyBytecode$</regexp>
<regexp>org\.python\.core\.PyFunction$</regexp>
<!-- ysoserial's MozillaRhino1 payload -->
<regexp>org\.mozilla\.javascript\.\.*$</regexp>
<!-- ysoserial's Myfaces1,2 payload -->
<regexp>org\.apache\.myfaces\.context\.servlet\.FacesContextImpl$</regexp>
<regexp>org\.apache\.myfaces\.context\.servlet\.FacesContextImplBase$</regexp>
<regexp>org\.apache\.myfaces\.el\.CompositeELResolver$</regexp>
<regexp>org\.apache\.myfaces\.el\.unified\.FacesELContext$</regexp>
<regexp>org\.apache\.myfaces\.view\.facelets\.el\.ValueExpressionMethodExpression$</regexp>
<!-- ysoserial's ROME payload -->
<regexp>com\.sun\.syndication\.feed\.impl\.ObjectBean$</regexp>
<!-- ysoserial's Spring1,2 payload -->
<regexp>org\.springframework\.beans\.factory\.ObjectFactory$</regexp>
<regexp>org\.springframework\.core\.SerializableTypeWrapper\$MethodInvokeTypeProvider$</regexp>
<regexp>org\.springframework\.aop\.framework\.AdvisedSupport$</regexp>
<regexp>org\.springframework\.aop\.target\.SingletonTargetSource$</regexp>
<regexp>org\.springframework\.aop\.framework\.JdkDynamicAopProxy$</regexp>
<regexp>org\.springframework\.core\.SerializableTypeWrapper\$TypeProvider$</regexp>
<regexp>org\.springframework\.beans\.factory\.config\.PropertyPathFactoryBean$</regexp>
<regexp>org\.springframework\.aop\.config\.MethodLocatingFactoryBean$</regexp>
<regexp>org\.springframework\.beans\.factory\.config\.BeanReferenceFactoryBean$</regexp>
<!-- other trigger gadgets or payloads -->
<regexp>java\.util\.PriorityQueue$</regexp>
<regexp>java\.lang\.reflect\.Proxy$</regexp>
<regexp>javax\.management\.MBeanServerInvocationHandler$</regexp>
<regexp>javax\.management\.openmbean\.CompositeDataInvocationHandler$</regexp>
<regexp>org\.springframework\.aop\.framework\.JdkDynamicAopProxy$</regexp>
<regexp>java\.beans\.EventHandler$</regexp>
<regexp>java\.util\.Comparator$</regexp>
<regexp>org\.reflections\.Reflections$</regexp>
<regexp>com\.sun\.org\.apache\.xalan\.internal\.xsltc\.trax\.TemplatesImpl$</regexp>
<regexp>org\.apache\.xalan\.xsltc\.trax\.TemplatesImpl$</regexp>
<!-- JDK provided -->
<regexp>java\.util\.logging\.FileHandler$</regexp>
<regexp>java\.rmi\.server\.UnicastRemoteObject$</regexp>
<regexp>org\.apache\.tomcat\.dbcp\.dbcp2\.BasicDataSource$</regexp>
<regexp>com\.sun\.org\.apache\.bcel\.internal\.util\.ClassLoader$</regexp>
<regexp>org\.hibernate\.jmx\.StatisticsService$</regexp>
<regexp>org\.apache\.ibatis\.datasource\.jndi\.JndiDataSourceFactory$</regexp>
<regexp>org\.apache\.ibatis\.parsing\.XPathParser$</regexp>
<!-- Jodd-db, with jndi/ldap lookup -->
<regexp>jodd\.db\.connection\.DataSourceConnectionProvider$</regexp>
<!-- Oracle JDBC driver, with jndi/ldap lookup -->
<regexp>oracle\.jdbc\.connector\.OracleManagedConnectionFactory$</regexp>
<regexp>oracle\.jdbc\.rowset\.OracleJDBCRowSet$</regexp>
<regexp>org\.slf4j\.ext\.EventData$</regexp>
<regexp>flex\.messaging\.util\.concurrent\.AsynchBeansWorkManagerExecutor$</regexp>
<regexp>com\.sun\.deploy\.security\.ruleset\.DRSHelper$</regexp>
<regexp>org\.apache\.axis2\.jaxws\.spi\.handler\.HandlerResolverImpl$</regexp>
<regexp>org\.jboss\.util\.propertyeditor\.DocumentEditor$</regexp>
<regexp>org\.apache\.openjpa\.ee\.RegistryManagedRuntime$</regexp>
<regexp>org\.apache\.openjpa\.ee\.JNDIManagedRuntime$</regexp>
<regexp>org\.apache\.openjpa\.ee\.WASRegistryManagedRuntime$</regexp>
<regexp>org\.apache\.axis2\.transport\.jms\.JMSOutTransportInfo$</regexp>
<regexp>com\.mysql\.cj\.jdbc\.admin\.MiniAdmin$</regexp>
<regexp>com\.newrelic\.agent\.deps\.ch\.qos\.logback\.core\.db\.DriverManagerConnectionSource$</regexp>
<regexp>com\.newrelic\.agent\.deps\.ch\.qos\.logback\.core\.db\.JNDIConnectionSource$</regexp>
<regexp>com\.nqadmin\.rowset\.JdbcRowSetImpl$</regexp>
<regexp>com\.oracle\.wls\.shaded\.org\.apache\.xalan\.lib\.sql\.JNDIConnectionPool$</regexp>
<regexp>com\.pastdev\.httpcomponents\.configuration\.JndiConfiguration$</regexp>
<regexp>ch\.qos\.logback\.core\.db\.DriverManagerConnectionSource$</regexp>
<regexp>org\.jdom\.transform\.XSLTransformer$</regexp>
<regexp>org\.jdom2\.transform\.XSLTransformer$</regexp>
<regexp>net\.sf\.ehcache\.transaction\.manager\.DefaultTransactionManagerLookup$</regexp>
<regexp>net\.sf\.ehcache\.hibernate\.EhcacheJtaTransactionManagerLookup$</regexp>
<regexp>ch\.qos\.logback\.core\.db\.JNDIConnectionSource$</regexp>
<regexp>com\.zaxxer\.hikari\.HikariConfig$</regexp>
<regexp>com\.zaxxer\.hikari\.HikariDataSource$</regexp>
<!-- CXF/JAX-RS provider/XSLT -->
<regexp>org\.apache\.cxf\.jaxrs\.provider\.XSLTJaxbProvider$</regexp>
<!-- commons-configuration / -2 -->
<regexp>org\.apache\.commons\.configuration\.JNDIConfiguration$</regexp>
<regexp>org\.apache\.commons\.configuration2\.JNDIConfiguration$</regexp>
<!-- xalan -->
<regexp>org\.apache\.xalan\.lib\.sql\.JNDIConnectionPool$</regexp>
<!-- xalan2 -->
<regexp>com\.sun\.org\.apache\.xalan\.internal\.lib\.sql\.JNDIConnectionPool$</regexp>
<!-- comons-dbcp, p6spy -->
<regexp>org\.apache\.commons\.dbcp\.datasources\.PerUserPoolDataSource$</regexp>
<regexp>org\.apache\.commons\.dbcp\.datasources\.SharedPoolDataSource$</regexp>
<regexp>com\.p6spy\.engine\.spy\.P6DataSource$</regexp>
<!-- log4j-extras (1\.2) -->
<regexp>org\.apache\.log4j\.receivers\.db\.DriverManagerConnectionSource$</regexp>
<regexp>org\.apache\.log4j\.receivers\.db\.JNDIConnectionSource$</regexp>
<!-- some more ehcache -->
<regexp>net\.sf\.ehcache\.transaction\.manager\.selector\.GenericJndiSelector$</regexp>
<regexp>net\.sf\.ehcache\.transaction\.manager\.selector\.GlassfishSelector$</regexp>
<!-- xbean-reflect -->
<regexp>org\.apache\.xbean\.propertyeditor\.JndiConverter$</regexp>
<!-- shaded hikari-config -->
<regexp>org\.apache\.hadoop\.shaded\.com\.zaxxer\.hikari\.HikariConfig$</regexp>
<!-- ibatis-sqlmap, anteros-core -->
<regexp>com\.ibatis\.sqlmap\.engine\.transaction\.jta\.JtaTransactionConfig$</regexp>
<regexp>br\.com\.anteros\.dbcp\.AnterosDBCPConfig$</regexp>
<regexp>br\.com\.anteros\.dbcp\.AnterosDBCPDataSource$</regexp>
<!-- javax\.swing (jdk) -->
<regexp>javax\.swing\.JEditorPane$</regexp>
<regexp>javax\.swing\.JTextPane$</regexp>
<!-- shiro-core -->
<regexp>org\.apache\.shiro\.realm\.jndi\.JndiRealmFactory$</regexp>
<regexp>org\.apache\.shiro\.jndi\.JndiObjectFactory$</regexp>
<!-- quartz-core -->
<regexp>org\.apache\.ignite\.cache\.jta\.jndi\.CacheJndiTmLookup$</regexp>
<regexp>org\.apache\.ignite\.cache\.jta\.jndi\.CacheJndiTmFactory$</regexp>
<regexp>org\.quartz\.utils\.JNDIConnectionProvider$</regexp>
<!-- aries\.transaction\.jms -->
<regexp>org\.apache\.aries\.transaction\.jms\.internal\.XaPooledConnectionFactory$</regexp>
<regexp>org\.apache\.aries\.transaction\.jms\.RecoverablePooledConnectionFactory$</regexp>
<!-- caucho-quercus -->
<regexp>com\.caucho\.config\.types\.ResourceRef$</regexp>
<!-- aoju/bus-proxy -->
<regexp>org\.aoju\.bus\.proxy\.provider\.RmiProvider$</regexp>
<regexp>org\.aoju\.bus\.proxy\.provider\.remoting\.RmiProvider$</regexp>
<!-- activemq-core, activemq-pool, activemq-pool-jms -->
<regexp>org\.apache\.activemq\.ActiveMQConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.ActiveMQXAConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.spring\.ActiveMQConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.spring\.ActiveMQXAConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.pool\.JcaPooledConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.pool\.PooledConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.pool\.XaPooledConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.jms\.pool\.XaPooledConnectionFactory$</regexp>
<regexp>org\.apache\.activemq\.jms\.pool\.JcaPooledConnectionFactory$</regexp>
<!-- apache/commons-jms -->
<regexp>org\.apache\.commons\.proxy\.provider\.remoting\.RmiProvider$</regexp>
<!-- commons-jelly -->
<regexp>org\.apache\.commons\.jelly\.impl\.Embedded$</regexp>
<regexp>oadd\.org\.apache\.commons\.dbcp\.cpdsadapter\.DriverAdapterCPDS$</regexp>
<regexp>oadd\.org\.apache\.commons\.dbcp\.datasources\.PerUserPoolDataSource$</regexp>
<regexp>oadd\.org\.apache\.commons\.dbcp\.datasources\.SharedPoolDataSource$</regexp>
<regexp>org\.apache\.commons\.dbcp\.cpdsadapter\.DriverAdapterCPDS$</regexp>
<regexp>org\.apache\.commons\.dbcp2\.cpdsadapter\.DriverAdapterCPDS$</regexp>
<regexp>org\.apache\.commons\.dbcp2\.datasources\.PerUserPoolDataSource$</regexp>
<regexp>org\.apache\.commons\.dbcp2\.datasources\.SharedPoolDataSource$</regexp>
<!-- apache/drill -->
<regexp>oadd\.org\.apache\.xalan\.lib\.sql\.JNDIConnectionPool$</regexp>
<!-- weblogic installation, possibly fairly old version(s)) -->
<regexp>oracle\.jms\.AQjmsQueueConnectionFactory$</regexp>
<regexp>oracle\.jms\.AQjmsXATopicConnectionFactory$</regexp>
<regexp>oracle\.jms\.AQjmsTopicConnectionFactory$</regexp>
<regexp>oracle\.jms\.AQjmsXAQueueConnectionFactory$</regexp>
<regexp>oracle\.jms\.AQjmsXAConnectionFactory$</regexp>
<!-- org\.jsecurity -->
<regexp>org\.jsecurity\.realm\.jndi\.JndiRealmFactory$</regexp>
<regexp>org\.apache\.tomcat\.dbcp\.dbcp\.cpdsadapter\.DriverAdapterCPDS$</regexp>
<regexp>org\.apache\.tomcat\.dbcp\.dbcp\.datasources\.PerUserPoolDataSource$</regexp>
<regexp>org\.apache\.tomcat\.dbcp\.dbcp\.datasources\.SharedPoolDataSource$</regexp>
<regexp>org\.apache\.tomcat\.dbcp\.dbcp2\.cpdsadapter\.DriverAdapterCPDS$</regexp>
<regexp>org\.apache\.tomcat\.dbcp\.dbcp2\.datasources\.PerUserPoolDataSource$</regexp>
<regexp>org\.apache\.tomcat\.dbcp\.dbcp2\.datasources\.SharedPoolDataSource$</regexp>
<regexp>org\.arrah\.framework\.rdbms\.UpdatableJdbcRowsetImpl$</regexp>
<regexp>org\.docx4j\.org\.apache\.xalan\.lib\.sql\.JNDIConnectionPool$</regexp>
</regexps>
</blacklist>
<whitelist>
<regexps>
<regexp>.*</regexp>
</regexps>
</whitelist>
</config>

View File

@ -0,0 +1,22 @@
package com.primeton.eos.demo;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@SpringBootApplication
@EnableFeignClients
@EnableDiscoveryClient
@EnableAspectJAutoProxy(exposeProxy = true)
@ComponentScan(basePackages = {"com.primeton.eos.demo"})
@MapperScan(basePackages = {"com.primeton.eos.demo.core.test.mapper", "com.primeton.eos.demo.core.mapper"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

View File

@ -0,0 +1,152 @@
package com.primeton.eos.demo;
import cn.hutool.core.io.FileTypeUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.Set;
import java.util.regex.Matcher;
import java.util.stream.Collectors;
import static java.io.File.separator;
/**
* 项目修改器一键替换 Maven groupIdartifactId项目的 package
* <p>
* 通过修改 groupIdNewartifactIdNewprojectBaseDirNew 三个变量
*
* @author 芋道源码
*/
@Slf4j
public class ProjectReactor {
private static final String GROUP_ID = "com.primeton.eos";
private static final String ARTIFACT_ID = "demo";
private static final String PACKAGE_NAME = "com.primeton.eos.demo";
private static final String TITLE = "站内消息服务";
/**
* 白名单文件不进行重写避免出问题
*/
private static final Set<String> WHITE_FILE_TYPES = SetUtils.asSet("gif", "jpg", "svg", "png", // 图片
"eot", "woff2", "ttf", "woff", // 字体
"gitignore",
"xdb"); // IP
public static void main(String[] args) {
long start = System.currentTimeMillis();
String projectBaseDir = getProjectBaseDir();
log.info("[main][原项目路劲改地址 ({})]", projectBaseDir);
// ========== 配置需要你手动修改 ==========
String groupIdNew = "com.primeton.eos";
String artifactIdNew = "demo";
String packageNameNew = "com.primeton.eos.demo";
String titleNew = "站内消息服务";
String projectBaseDirNew = projectBaseDir + "-eos-demo"; // 一键改名后项目所在的目录
log.info("[main][检测新项目目录 ({})是否存在]", projectBaseDirNew);
if (FileUtil.exist(projectBaseDirNew)) {
log.error("[main][新项目目录检测 ({})已存在,请更改新的目录!程序退出]", projectBaseDirNew);
return;
}
// 如果新目录中存在 PACKAGE_NAMEARTIFACT_ID 等关键字路径会被替换导致生成的文件不在预期目录
if (StrUtil.containsAny(projectBaseDirNew, PACKAGE_NAME, ARTIFACT_ID, StrUtil.upperFirst(ARTIFACT_ID))) {
log.error("[main][新项目目录 `projectBaseDirNew` 检测 ({}) 存在冲突名称「{}」或者「{}」,请更改新的目录!程序退出]",
projectBaseDirNew, PACKAGE_NAME, ARTIFACT_ID);
return;
}
log.info("[main][完成新项目目录检测,新项目路径地址 ({})]", projectBaseDirNew);
// 获得需要复制的文件
log.info("[main][开始获得需要重写的文件,预计需要 10-20 秒]");
Collection<File> files = listFiles(projectBaseDir);
log.info("[main][需要重写的文件数量:{},预计需要 15-30 秒]", files.size());
// 写入文件
files.forEach(file -> {
// 如果是白名单的文件类型不进行重写直接拷贝
String fileType = getFileType(file);
if (WHITE_FILE_TYPES.contains(fileType)) {
copyFile(file, projectBaseDir, projectBaseDirNew, packageNameNew, artifactIdNew);
return;
}
// 如果非白名单的文件类型重写内容在生成文件
String content = replaceFileContent(file, groupIdNew, artifactIdNew, packageNameNew, titleNew);
writeFile(file, content, projectBaseDir, projectBaseDirNew, packageNameNew, artifactIdNew);
});
log.info("[main][重写完成]共耗时:{} 秒", (System.currentTimeMillis() - start) / 1000);
}
private static String getProjectBaseDir() {
String baseDir = System.getProperty("user.dir");
if (StrUtil.isEmpty(baseDir)) {
throw new NullPointerException("项目基础路径不存在");
}
return baseDir;
}
private static Collection<File> listFiles(String projectBaseDir) {
Collection<File> files = FileUtil.loopFiles(projectBaseDir);
// 移除 IDEAGit 自身的文件Node 编译出来的文件
files = files.stream()
.filter(file -> !file.getPath().contains(separator + "target" + separator)
&& !file.getPath().contains(separator + "node_modules" + separator)
&& !file.getPath().contains(separator + ".idea" + separator)
&& !file.getPath().contains(separator + ".git" + separator)
&& !file.getPath().contains(separator + "dist" + separator)
&& !file.getPath().contains(separator + "logs" + separator)
&& !file.getPath().contains(".iml")
&& !file.getPath().contains(".html.gz"))
.collect(Collectors.toList());
return files;
}
private static String replaceFileContent(File file, String groupIdNew,
String artifactIdNew, String packageNameNew,
String titleNew) {
String content = FileUtil.readString(file, StandardCharsets.UTF_8);
// 如果是白名单的文件类型不进行重写
String fileType = getFileType(file);
if (WHITE_FILE_TYPES.contains(fileType)) {
return content;
}
// 执行文件内容都重写
return content.replaceAll(GROUP_ID, groupIdNew)
.replaceAll(PACKAGE_NAME, packageNameNew)
.replaceAll(ARTIFACT_ID, artifactIdNew) // 必须放在最后替换因为 ARTIFACT_ID 太短
.replaceAll(StrUtil.upperFirst(ARTIFACT_ID), StrUtil.upperFirst(artifactIdNew))
.replaceAll(TITLE, titleNew);
}
private static void writeFile(File file, String fileContent, String projectBaseDir,
String projectBaseDirNew, String packageNameNew, String artifactIdNew) {
String newPath = buildNewFilePath(file, projectBaseDir, projectBaseDirNew, packageNameNew, artifactIdNew);
FileUtil.writeUtf8String(fileContent, newPath);
}
private static void copyFile(File file, String projectBaseDir,
String projectBaseDirNew, String packageNameNew, String artifactIdNew) {
String newPath = buildNewFilePath(file, projectBaseDir, projectBaseDirNew, packageNameNew, artifactIdNew);
FileUtil.copyFile(file, new File(newPath));
}
private static String buildNewFilePath(File file, String projectBaseDir,
String projectBaseDirNew, String packageNameNew, String artifactIdNew) {
String replace = file.getPath().replace(projectBaseDir, projectBaseDirNew);
replace= replace // 新目录
.replace(PACKAGE_NAME,packageNameNew)
.replace(PACKAGE_NAME.replaceAll("\\.", Matcher.quoteReplacement(separator)),
packageNameNew.replaceAll("\\.", Matcher.quoteReplacement(separator)));
replace.replace(ARTIFACT_ID, artifactIdNew) //
.replaceAll(StrUtil.upperFirst(ARTIFACT_ID), StrUtil.upperFirst(artifactIdNew));
return replace;
}
private static String getFileType(File file) {
return file.length() > 0 ? FileTypeUtil.getType(file) : "";
}
}

View File

@ -0,0 +1,55 @@
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.primeton.eos</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<relativePath>../</relativePath>
</parent>
<artifactId>com.primeton.eos.demo.core</artifactId>
<name>com.primeton.eos.demo.core</name>
<dependencies>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.model</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.api</artifactId>
<version>1.0.0</version>
</dependency>
<!-- 磐树封装的common包 -->
<dependency>
<groupId>com.panshu</groupId>
<artifactId>ps-eos-common</artifactId>
</dependency>
<!-- 磐树封装的存储storage包 -->
<dependency>
<groupId>com.panshu</groupId>
<artifactId>ps-spring-boot-starter-storage</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-redis</artifactId>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,9 @@
Manifest-Version: 1.0
Bundle-SymbolicName: com.primeton.eos.demo.core
Bundle-Name: com.primeton.eos.demo.core
Bundle-Version: 1.0.0
Bundle-Vendor: 40108
Require-Bundle:
eos-webCtxPath: eos
Bundle-Description:

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- MBean config -->
<module name="Mbean">
<!-- DataSourceMBean config -->
<group name="DatasourceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.ContributionDataSourceConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--<group name="ContributionLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">log</configValue>
</group>-->
</module>
<!-- datasource config -->
<module name="DataSource">
<group name="Reference">
<!--
the configuration below describes
the corresponding relationship between contribution datasource and application datasource,
multiple datasources can be defined.
the value 'default' of attibute 'key' denotes a contribution datasource
and the field value 'default' of 'configValue' node stands for an application datasource.
-->
<configValue key="default">default</configValue>
</group>
</module>
</contribution>

View File

@ -0,0 +1,3 @@
<handlers>
<!--<handler handle-class="com.primeton.runtime.resource.event.ContributionDemoListener"/>-->
</handlers>

View File

@ -0,0 +1,6 @@
#exception properties resource file.
#content format:
# code=message
#for example:
# 100001=It occur when [{0}] execute.

View File

@ -0,0 +1,6 @@
#I18N properties resource file.
#content format:
# code=message
#for example:
# 10000=name

View File

@ -0,0 +1,94 @@
package com.primeton.eos.demo.core.common.config;
import com.baomidou.mybatisplus.autoconfigure.SpringBootVFS;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.mapping.DatabaseIdProvider;
import org.apache.ibatis.plugin.Interceptor;
import org.mybatis.spring.boot.autoconfigure.MybatisProperties;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.StringUtils;
import javax.sql.DataSource;
@Configuration
public class MybatisConfig {
@Autowired
private MybatisProperties properties;
@Autowired
private ResourceLoader resourceLoader = new DefaultResourceLoader();
@Autowired(required = false)
private Interceptor[] interceptors;
@Autowired(required = false)
private DatabaseIdProvider databaseIdProvider;
@Bean
public DataSource dataSource(DataSourceProperties properties) {
return properties.initializeDataSourceBuilder().build();
}
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor());
// mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.DM));
return mybatisPlusInterceptor;
}
/**
* 这里全部使用mybatis-autoconfigure 已经自动加载的资源不手动指定
* <p>
* 配置文件和mybatis-boot的配置文件同步
*
* @return
*/
@Bean
public MybatisSqlSessionFactoryBean mybatisSqlSessionFactoryBean(@Qualifier("dataSource") DataSource dataSource) {
MybatisSqlSessionFactoryBean mybatisPlus = new MybatisSqlSessionFactoryBean();
mybatisPlus.setDataSource(dataSource);
mybatisPlus.setVfs(SpringBootVFS.class);
if (StringUtils.hasText(this.properties.getConfigLocation())) {
mybatisPlus.setConfigLocation(this.resourceLoader.getResource(this.properties.getConfigLocation()));
}
if (!ObjectUtils.isEmpty(this.interceptors)) {
mybatisPlus.setPlugins(this.interceptors);
}
MybatisConfiguration mc = new MybatisConfiguration();
mc.setDefaultScriptingLanguage(MybatisXMLLanguageDriver.class);
//数据库字段设计为驼峰命名默认开启的驼峰转下划线会报错字段找不到
mc.setMapUnderscoreToCamelCase(true);
mybatisPlus.setConfiguration(mc);
if (this.databaseIdProvider != null) {
mybatisPlus.setDatabaseIdProvider(this.databaseIdProvider);
}
if (StringUtils.hasLength(this.properties.getTypeAliasesPackage())) {
mybatisPlus.setTypeAliasesPackage(this.properties.getTypeAliasesPackage());
}
if (StringUtils.hasLength(this.properties.getTypeHandlersPackage())) {
mybatisPlus.setTypeHandlersPackage(this.properties.getTypeHandlersPackage());
}
if (!ObjectUtils.isEmpty(this.properties.resolveMapperLocations())) {
mybatisPlus.setMapperLocations(this.properties.resolveMapperLocations());
}
return mybatisPlus;
}
}

View File

@ -0,0 +1,50 @@
package com.primeton.eos.demo.core.common.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration // 标明是配置类
@EnableSwagger2 // 开启swagger功能
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2) // DocumentationType.SWAGGER_2 固定的代表swagger2
.groupName("站内消息服务") // 如果配置多个文档的时候那么需要配置groupName来分组标识
.apiInfo(apiInfo()) // 用于生成API信息
.select() // select()函数返回一个ApiSelectorBuilder实例,用来控制接口被swagger做成文档
// 扫描指定包下的接口最为常用
.apis(RequestHandlerSelectors.basePackage("com.primeton.eos.demo"))
// .withClassAnnotation(RestController.class) // 扫描带有指定注解的类下所有接口
// .withMethodAnnotation(PostMapping.class) // 扫描带有指定注解的方法接口
// .apis(RequestHandlerSelectors.any()) // 扫描所有
// 选择所有的API,如果你想只为部分API生成文档可以配置这里
.paths(PathSelectors.any()
// .any() // 满足条件的路径该断言总为true
// .none() // 不满足条件的路径该断言总为false可用于生成环境屏蔽 swagger
// .ant("/user/**") // 满足字符串表达式路径
// .regex("") // 符合正则的路径
).build();
}
/**
* 用于定义API主界面的信息比如可以声明所有的API的总标题描述版本
*
* @return
*/
private ApiInfo apiInfo() {
return new ApiInfoBuilder().title("潮州全民健康档案API") // 可以用来自定义API的主标题
// .description("XX项目SwaggerAPI管理") // 可以用来描述整体的API
// .termsOfServiceUrl("https://www.baidu.com") // 用于定义服务的域名跳转链接
.version("1.0") // 可以用来定义版本
// .license("Swagger-的使用教程").licenseUrl("https://blog.csdn.net")
.build(); //
}
}

View File

@ -0,0 +1,68 @@
package com.primeton.eos.demo.core.test.controller;
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
import com.panshu.pojo.CommonResult;
import com.panshu.pojo.PageResult;
import com.panshu.util.object.BeanUtils;
import com.primeton.eos.demo.core.test.entity.dto.TestDTO;
import com.primeton.eos.demo.core.test.entity.vo.TestVO;
import com.primeton.eos.demo.core.test.service.TestService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import com.primeton.eos.demo.core.test.entity.bo.Test;
import com.primeton.eos.demo.core.test.entity.dto.TestPageDTO;
import static com.panshu.pojo.CommonResult.success;
/**
* 测试;(test)表控制层
*
* @author : Mr.xiao
* @date : 2025-4-16
*/
@Api(tags = "测试对象功能接口")
@RestController
@RequestMapping("/api/test")
public class TestController {
@Autowired
private TestService testService;
@PostMapping("/create")
@ApiOperation("创建测试")
public CommonResult<Long> create(@Valid @RequestBody TestDTO createDTO) {
return success(testService.create(createDTO));
}
@PutMapping("/update")
@ApiOperation("更新测试")
public CommonResult<Boolean> update(@Valid @RequestBody TestDTO updateDTO) {
testService.update(updateDTO);
return success(true);
}
@GetMapping("/get")
@ApiOperation("获得测试")
public CommonResult<TestVO> get(@RequestParam("id") Long id) {
Test test = testService.get(id);
return success(BeanUtils.toBean(test, TestVO.class));
}
@GetMapping("/page")
@ApiOperation("获得测试分页")
public CommonResult<PageResult<TestVO>> getPage(@Valid TestPageDTO pageDTO) {
PageResult<Test> pageResult = null;
try {
pageResult = testService.getPage(pageDTO);
} catch (Exception e) {
return CommonResult.error(GlobalErrorCodeConstants.UNKNOWN.getCode(), e.getMessage());
}
return success(BeanUtils.toBean(pageResult, TestVO.class));
}
}

View File

@ -0,0 +1,27 @@
package com.primeton.eos.demo.core.test.entity.bo;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 测试;
* @author : Mr.xiao
* @date : 2025-4-16
*/
@Data
@TableName("test")
public class Test implements Serializable{
/* 主键id */
@TableId
private Long id ;
/* 名称 */
private String name ;
/* 性别 */
private Integer sex ;
/* 创建时间 */
private Date createTime ;
}

View File

@ -0,0 +1,29 @@
package com.primeton.eos.demo.core.test.entity.dto;
import com.baomidou.mybatisplus.annotation.IdType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 测试;
* @author : Mr.xiao
* @date : 2025-4-16
*/
@Data
@ApiModel(value = "测试",description = "")
public class TestDTO implements Serializable{
@ApiModelProperty(value = "主键id" )
@TableId(type=IdType.ASSIGN_ID)
private Long id ;
@ApiModelProperty(value = "名称" )
private String name ;
@ApiModelProperty(value = "性别" )
private Integer sex ;
@ApiModelProperty(value = "创建时间" )
private Date createTime ;
}

View File

@ -0,0 +1,30 @@
package com.primeton.eos.demo.core.test.entity.dto;
import com.panshu.pojo.PageParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 测试;
* @author : Mr.xiao
* @date : 2025-4-16
*/
@Data
@ApiModel(value = "测试",description = "")
public class TestPageDTO extends PageParam {
@ApiModelProperty(value = "主键id" )
@TableId
private Long id ;
@ApiModelProperty(value = "名称" )
private String name ;
@ApiModelProperty(value = "性别" )
private Integer sex ;
@ApiModelProperty(value = "创建时间" )
private Date createTime ;
}

View File

@ -0,0 +1,28 @@
package com.primeton.eos.demo.core.test.entity.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 测试;
* @author : Mr.xiao
* @date : 2025-4-16
*/
@Data
@ApiModel(value = "测试",description = "")
public class TestVO implements Serializable{
@ApiModelProperty(value = "主键id" )
@TableId
private Long id ;
@ApiModelProperty(value = "名称" )
private String name ;
@ApiModelProperty(value = "性别" )
private Integer sex ;
@ApiModelProperty(value = "创建时间" )
private Date createTime ;
}

View File

@ -0,0 +1,25 @@
package com.primeton.eos.demo.core.test.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.panshu.pojo.PageResult;
import com.panshu.query.BaseMapperX;
import com.panshu.query.LambdaQueryWrapperX;
import com.panshu.util.MyBatisUtils;
import org.apache.ibatis.annotations.Mapper;
import com.primeton.eos.demo.core.test.entity.bo.Test;
import com.primeton.eos.demo.core.test.entity.dto.TestPageDTO;
/**
* 测试;(test)表数据库访问层
* @author : http://www.chiner.pro
* @date : 2025-4-16
*/
@Mapper
public interface TestMapper extends BaseMapperX<Test> {
default PageResult<Test> selectPage(TestPageDTO pageDTO) {
IPage<Test> mpPage = MyBatisUtils.buildPage(pageDTO, null);
LambdaQueryWrapperX<Test> queryWrapper = new LambdaQueryWrapperX<Test>().orderByDesc(Test::getCreateTime);
selectPage(mpPage, queryWrapper);
return new PageResult<>(mpPage.getRecords(), mpPage.getTotal(), mpPage.getPages());
}
}

View File

@ -0,0 +1,44 @@
package com.primeton.eos.demo.core.test.service;
import javax.validation.Valid;
import com.panshu.pojo.PageResult;
import com.primeton.eos.demo.core.test.entity.bo.Test;
import com.primeton.eos.demo.core.test.entity.dto.TestDTO;
import com.primeton.eos.demo.core.test.entity.dto.TestPageDTO;
/**
* 测试;(test)表服务接口
* @author : Mr.xiao
* @date : 2025-4-16
*/
public interface TestService{
/**
* 创建测试
*
* @param createDTO 创建信息
* @return 编号
*/
Long create(@Valid TestDTO createDTO);
/**
* 更新测试
*
* @param updateDTO 更新信息
*/
void update(@Valid TestDTO updateDTO);
/**
* 获得测试
*
* @param id 编号
* @return 测试
*/
Test get(Long id);
/**
* 获得测试分页
*
* @param pageDTO 分页查询
* @return 测试分页
*/
PageResult<Test> getPage(TestPageDTO pageDTO) throws Exception;
}

View File

@ -0,0 +1,70 @@
package com.primeton.eos.demo.core.test.service.impl;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import com.panshu.storage.core.FileTemplate;
import com.panshu.util.object.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import com.panshu.pojo.PageResult;
import com.primeton.eos.demo.core.test.entity.bo.Test;
import com.primeton.eos.demo.core.test.entity.dto.TestDTO;
import com.primeton.eos.demo.core.test.entity.dto.TestPageDTO;
import com.primeton.eos.demo.core.test.mapper.TestMapper;
import com.primeton.eos.demo.core.test.service.TestService;
import javax.annotation.Resource;
import java.io.BufferedInputStream;
import java.io.File;
import java.util.concurrent.TimeUnit;
/**
* 测试;(test)表服务实现类
*
* @author : http://www.chiner.pro
* @date : 2025-4-16
*/
@Service
public class TestServiceImpl implements TestService {
@Autowired
private TestMapper testMapper;
@Autowired
private FileTemplate fileTemplate;
@Resource
private StringRedisTemplate stringRedisTemplate;
@Override
public Long create(TestDTO createDTO) {
Test test = BeanUtils.toBean(createDTO, Test.class);
testMapper.insert(test);
return test.getId();
}
@Override
public void update(TestDTO updateDTO) {
Test test = BeanUtils.toBean(updateDTO, Test.class);
testMapper.updateById(test);
}
@Override
public Test get(Long id) {
String value = stringRedisTemplate.opsForValue().get("ps:test:" + id);
if (StrUtil.isNotBlank(value)) {
return JsonUtils.parseObject(value, Test.class);
}
Test test = testMapper.selectById(id);
stringRedisTemplate.opsForValue().set("ps:test:" + id, JsonUtils.toJsonString(test), 3600, TimeUnit.SECONDS);
return test;
}
@Override
public PageResult<Test> getPage(TestPageDTO pageDTO) throws Exception {
BufferedInputStream in = FileUtil.getInputStream("c:/home/test.txt");
fileTemplate.putObject("aa", "bb.txt", in);
return testMapper.selectPage(pageDTO);
}
}

View File

@ -0,0 +1,8 @@
DROP TABLE IF EXISTS test;
CREATE TABLE test(
`id` bigint NOT NULL COMMENT '主键id' ,
`name` VARCHAR(90) COMMENT '名称' ,
`sex` tinyint(1) COMMENT '性别' ,
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP() COMMENT '创建时间' ,
PRIMARY KEY (id)
) COMMENT = '测试';

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.primeton.eos.demo.core.test.mapper.TestMapper">
<select id="selectByPage" resultType="com.primeton.eos.demo.core.test.entity.vo.TestVO">
select * from user ${ew.customSqlSegment}
</select>
</mapper>

View File

@ -0,0 +1,46 @@
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.primeton.eos</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<relativePath>../</relativePath>
</parent>
<artifactId>com.primeton.eos.demo.model</artifactId>
<name>com.primeton.eos.demo.model</name>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<groupId>com.primeton.eos.maven.plugin</groupId>
<artifactId>eos-ptp-maven-plugin</artifactId>
<executions>
<execution>
<id>merge-sql</id>
<phase>prepare-package</phase>
<goals>
<goal>filesmerge</goal>
</goals>
<configuration>
<dir>${basedir}/target/classes/META-INF/db-scripts</dir>
<mergeFileName>all.sql</mergeFileName>
<charset>UTF-8</charset>
<mergeCurrentDir>true</mergeCurrentDir>
<includes>
<include>**/*.sql</include>
</includes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,9 @@
Manifest-Version: 1.0
Bundle-SymbolicName: com.primeton.eos.demo.model
Bundle-Name: com.primeton.eos.demo.model
Bundle-Version: 1.0.0
Bundle-Vendor: 40108
Require-Bundle:
eos-webCtxPath: eos
Bundle-Description:

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- MBean config -->
<module name="Mbean">
<!-- DataSourceMBean config -->
<group name="DatasourceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.ContributionDataSourceConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--<group name="ContributionLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">log</configValue>
</group>-->
</module>
<!-- datasource config -->
<module name="DataSource">
<group name="Reference">
<!--
the configuration below describes
the corresponding relationship between contribution datasource and application datasource,
multiple datasources can be defined.
the value 'default' of attibute 'key' denotes a contribution datasource
and the field value 'default' of 'configValue' node stands for an application datasource.
-->
<configValue key="default">default</configValue>
</group>
</module>
</contribution>

View File

@ -0,0 +1,3 @@
<handlers>
<!--<handler handle-class="com.primeton.runtime.resource.event.ContributionDemoListener"/>-->
</handlers>

View File

@ -0,0 +1,6 @@
#exception properties resource file.
#content format:
# code=message
#for example:
# 100001=It occur when [{0}] execute.

View File

@ -0,0 +1,6 @@
#I18N properties resource file.
#content format:
# code=message
#for example:
# 10000=name

View File

@ -0,0 +1,41 @@
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.primeton.eos</groupId>
<artifactId>demo</artifactId>
<version>1.0.0</version>
<relativePath>../</relativePath>
</parent>
<artifactId>com.primeton.eos.demo.starter</artifactId>
<name>com.primeton.eos.demo.starter</name>
<dependencies>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.model</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>com.primeton.eos.demo.core</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>src/META-INF/MANIFEST.MF</manifestFile>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@ -0,0 +1,9 @@
Manifest-Version: 1.0
Bundle-SymbolicName: com.primeton.eos.demo.starter
Bundle-Name: com.primeton.eos.demo.starter
Bundle-Version: 1.0.0
Bundle-Vendor: 40108
Require-Bundle:
eos-webCtxPath: eos
Bundle-Description:

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<contribution xmlns="http://www.primeton.com/xmlns/eos/1.0">
<!-- MBean config -->
<module name="Mbean">
<!-- DataSourceMBean config -->
<group name="DatasourceMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.connection.mbean.ContributionDataSourceConfigHandler</configValue>
<configValue key="ConfigFileType">config</configValue>
</group>
<!--<group name="ContributionLoggerMBean">
<configValue key="Type">config</configValue>
<configValue key="Class">com.eos.system.management.config.mbean.Config</configValue>
<configValue key="Handler">com.eos.common.logging.mbean.LogConfigHandler</configValue>
<configValue key="ConfigFileType">log</configValue>
</group>-->
</module>
<!-- datasource config -->
<module name="DataSource">
<group name="Reference">
<!--
the configuration below describes
the corresponding relationship between contribution datasource and application datasource,
multiple datasources can be defined.
the value 'default' of attibute 'key' denotes a contribution datasource
and the field value 'default' of 'configValue' node stands for an application datasource.
-->
<configValue key="default">default</configValue>
</group>
</module>
</contribution>

View File

@ -0,0 +1,3 @@
<handlers>
<!--<handler handle-class="com.primeton.runtime.resource.event.ContributionDemoListener"/>-->
</handlers>

View File

@ -0,0 +1,6 @@
#exception properties resource file.
#content format:
# code=message
#for example:
# 100001=It occur when [{0}] execute.

View File

@ -0,0 +1,6 @@
#I18N properties resource file.
#content format:
# code=message
#for example:
# 10000=name

147
pom.xml Normal file
View File

@ -0,0 +1,147 @@
<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.primeton.eos</groupId>
<artifactId>eos-pom</artifactId>
<version>8.3.0</version>
</parent>
<groupId>com.primeton.eos</groupId>
<artifactId>demo</artifactId>
<description>站内消息服务</description>
<version>1.0.0</version>
<packaging>pom</packaging>
<modules>
<module>com.primeton.eos.demo.model</module>
<module>com.primeton.eos.demo.api</module>
<module>com.primeton.eos.demo.starter</module>
<module>com.primeton.eos.demo.core</module>
<module>com.primeton.eos.demo.boot</module>
</modules>
<properties>
<eos.version>8.3.0</eos.version>
<bps.version>8.3.0</bps.version>
<afcenter.version>8.3.0</afcenter.version>
<bfp.version>8.3.0</bfp.version>
<lowcode.version>8.3.0</lowcode.version>
<ps-eos-common.version>1.0.0</ps-eos-common.version>
<ps-storage.version>1.0.0</ps-storage.version>
<yudao-ps.version>2.4.1-RELEASE</yudao-ps.version>
</properties>
<dependencies>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>eos-server-starter</artifactId>
</dependency>
<dependency>
<groupId>com.primeton.eos.extension</groupId>
<artifactId>com.primeton.eos.foundation</artifactId>
</dependency>
<dependency>
<groupId>com.primeton.gocom.bfp</groupId>
<artifactId>com.primeton.gocom.bfp.framework.starter</artifactId>
</dependency>
<dependency>
<groupId>com.primeton.gocom</groupId>
<artifactId>com.primeton.gocom.afcenter.sdk</artifactId>
</dependency>
<dependency>
<groupId>com.primeton.gocom.bfp</groupId>
<artifactId>com.primeton.gocom.bfp.message.sdk</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.primeton.eos.extension</groupId>
<artifactId>com.primeton.eos.foundation</artifactId>
<version>${eos.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.eos</groupId>
<artifactId>eos-server-starter</artifactId>
<version>${eos.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.bps</groupId>
<artifactId>bps-server-starter</artifactId>
<version>${bps.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom</groupId>
<artifactId>com.primeton.gocom.afcenter.starter</artifactId>
<version>${afcenter.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom.bfp</groupId>
<artifactId>com.primeton.gocom.bfp.framework.starter</artifactId>
<version>${bfp.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom.bfp</groupId>
<artifactId>com.primeton.gocom.bfp.center.starter</artifactId>
<version>${bfp.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom.bfp</groupId>
<artifactId>com.primeton.gocom.bfp.message.starter</artifactId>
<version>${bfp.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom</groupId>
<artifactId>com.primeton.gocom.lowcode.starter</artifactId>
<version>${lowcode.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom</groupId>
<artifactId>com.primeton.gocom.afcenter.sdk</artifactId>
<version>${afcenter.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom.bfp</groupId>
<artifactId>com.primeton.gocom.bfp.message.sdk</artifactId>
<version>${bfp.version}</version>
</dependency>
<dependency>
<groupId>com.primeton.gocom</groupId>
<artifactId>com.primeton.gocom.afcenter.bps.om</artifactId>
<version>${afcenter.version}</version>
</dependency>
<dependency>
<groupId>com.panshu</groupId>
<artifactId>ps-eos-common</artifactId>
<version>${ps-eos-common.version}</version>
</dependency>
<dependency>
<groupId>com.panshu</groupId>
<artifactId>ps-spring-boot-starter-storage</artifactId>
<version>${ps-storage.version}</version>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-redis</artifactId>
<version>${yudao-ps.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>com.primeton.studio.maven.plugin.eos</groupId>
<artifactId>eos-contribution-maven-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>eoscompile</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>