Skip to content

Commit 5797f81

Browse files
author
DistChen
committed
移除spring
1 parent 970fafa commit 5797f81

22 files changed

Lines changed: 702 additions & 94 deletions

distfeatures.xml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
3+
<procedures xmlns="http://www.dist.com.cn"
4+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5+
xsi:schemaLocation="http://www.dist.com.cn distprocedure.xsd">
6+
7+
<!--datasource>
8+
<driver>oracle.jdbc.driver.OracleDriver</driver>
9+
<url>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</url>
10+
<username>scott</username>
11+
<password>pass</password>
12+
</datasource-->
13+
14+
<datasource src="config.properties">
15+
<driver>${driverClassName}</driver>
16+
<url>${url}</url>
17+
<username>${username}</username>
18+
<password>${password}</password>
19+
</datasource>
20+
21+
<procedure id="testPro">
22+
<proName>pro_test</proName>
23+
<parameters>
24+
<parameter name="p_str" type="in" dataType="varchar"/>
25+
<parameter name="p_str2" type="in" dataType="varchar"/>
26+
<parameter name="p_num" type="in" dataType="number" />
27+
<parameter name="p_strDate" type="in" dataType="date" format="yyyy-MM-dd" />
28+
<parameter name="p_date" type="in" dataType="date" />
29+
<parameter name="p_info" type="out" dataType="varchar" />
30+
<parameter name="p_cursor" type="out" dataType="cursor" vo="dist.dgp.controller.Person">
31+
<!--rule ruleFile="distrule.drl" group="DemoGroup" filterKey="DemoCase" filterType="EQUAL" / -->
32+
<!--rule ruleFile="F:\IDEAWorkSpace\distprocedure\src\test\resources\distrule.drl" / -->
33+
<rule ruleFile="distrule.drl" />
34+
</parameter>
35+
</parameters>
36+
</procedure>
37+
</procedures>

distprocedure.xsd

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<?xml version="1.0"?>
2+
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
3+
targetNamespace="http://www.dist.com.cn"
4+
xmlns="http://www.dist.com.cn"
5+
xmlns:dist="http://www.dist.com.cn"
6+
elementFormDefault="qualified">
7+
8+
<xs:element name="procedures">
9+
<xs:complexType>
10+
<xs:sequence>
11+
<xs:element name="datasource" minOccurs="0" maxOccurs="1">
12+
<xs:complexType>
13+
<xs:all>
14+
<xs:element name="driver" type="DistString" />
15+
<xs:element name="url" type="DistString" />
16+
<xs:element name="username" type="DistString" />
17+
<xs:element name="password" type="DistString" />
18+
</xs:all>
19+
<xs:attribute name="src" type="DistString" use="optional" />
20+
</xs:complexType>
21+
</xs:element>
22+
<xs:element name="procedure" type="procedure" minOccurs="0" maxOccurs="unbounded"/>
23+
</xs:sequence>
24+
</xs:complexType>
25+
<xs:unique name="UNIQUEID">
26+
<xs:selector xpath="dist:procedure" />
27+
<xs:field xpath="@id" />
28+
</xs:unique>
29+
</xs:element>
30+
31+
<xs:complexType name="procedure">
32+
<xs:all>
33+
<xs:element name="desc" type="DistString" minOccurs="0"/>
34+
<xs:element name="proName" type="DistString"/>
35+
<xs:element name="executeClass" type="DistString" minOccurs="0"/>
36+
<xs:element name="executeMethod" type="DistString" minOccurs="0"/>
37+
<xs:element name="parameters" type="parameters"/>
38+
</xs:all>
39+
<xs:attribute name="id" use="required" type="DistString" />
40+
</xs:complexType>
41+
42+
<xs:complexType name="parameters">
43+
<xs:sequence>
44+
<xs:element name="parameter" type="parameter" maxOccurs="unbounded" minOccurs="1"/>
45+
</xs:sequence>
46+
</xs:complexType>
47+
48+
<xs:complexType name="parameter">
49+
<xs:sequence>
50+
<xs:element name="rule" type="RuleType" minOccurs="0" maxOccurs="1"/>
51+
</xs:sequence>
52+
<xs:attribute name="name" type="DistString" use="required"/>
53+
<xs:attribute name="type" type="InOutType" use="required"/>
54+
<xs:attribute name="dataType" type="DataType" use="required" />
55+
<xs:attribute name="format" type="DistString" use="optional" />
56+
<xs:attribute name="vo" type="DistString" use="optional" />
57+
</xs:complexType>
58+
59+
<xs:complexType name="RuleType">
60+
<xs:attribute name="ruleFile" type="DistString" use="required" />
61+
<xs:attribute name="group" type="DistString" use="optional" />
62+
<xs:attribute name="filterKey" type="DistString" use="optional" />
63+
<xs:attribute name="filterType" type="FilterType" use="optional" />
64+
</xs:complexType>
65+
66+
<xs:simpleType name="DistString">
67+
<xs:restriction base="xs:string">
68+
<xs:whiteSpace value="replace" />
69+
</xs:restriction>
70+
</xs:simpleType>
71+
72+
<xs:simpleType name="InOutType">
73+
<xs:restriction base="DistString">
74+
<xs:enumeration value="in" />
75+
<xs:enumeration value="out" />
76+
</xs:restriction>
77+
</xs:simpleType>
78+
79+
<xs:simpleType name="DataType">
80+
<xs:restriction base="DistString">
81+
<xs:enumeration value="varchar" />
82+
<xs:enumeration value="number" />
83+
<xs:enumeration value="date" />
84+
<xs:enumeration value="cursor" />
85+
<xs:enumeration value="clob" />
86+
<xs:enumeration value="blob" />
87+
<xs:enumeration value="integer" />
88+
</xs:restriction>
89+
</xs:simpleType>
90+
91+
<xs:simpleType name="FilterType">
92+
<xs:restriction base="DistString">
93+
<xs:enumeration value="START" />
94+
<xs:enumeration value="END" />
95+
<xs:enumeration value="CONTAIN" />
96+
<xs:enumeration value="EQUAL" />
97+
<xs:enumeration value="EQUALIGNORECASE" />
98+
<xs:enumeration value="REGEX" />
99+
</xs:restriction>
100+
</xs:simpleType>
101+
102+
103+
</xs:schema>

distrule.drl

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import dist.common.rules.define.*
2+
import java.util.List
3+
import org.w3c.dom.Document
4+
import org.w3c.dom.Element
5+
import dist.dgp.controller.Person
6+
7+
8+
//在规则文件当中定义的函数
9+
function Element createElement(Document document,Person person){
10+
Element element=document.createElement("person");
11+
element.setAttribute("name",person.getName());
12+
element.setAttribute("birth",person.getAge().toLocaleString());
13+
element.setAttribute("id",person.getId().toString());
14+
element.setAttribute("school",person.getSchool());
15+
return element;
16+
}
17+
18+
rule "DemoCase"
19+
no-loop true
20+
salience 1
21+
date-effective "2015-01-01"
22+
date-expires "2017-01-01"
23+
when
24+
obj:RuleObject(source!=null,source instanceof List)
25+
then
26+
try {
27+
List<Person> list=(List<Person>) obj.getSource();
28+
Document document=CommonUtil.createDocument();
29+
Element root=document.createElement("tree");
30+
for(Person person:list){
31+
root.appendChild(createElement(document,person));
32+
}
33+
document.appendChild(root);
34+
obj.setResult(CommonUtil.XMLToString(document));
35+
} catch (Exception e) {
36+
e.printStackTrace();
37+
}
38+
end

pom.xml

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<modelVersion>4.0.0</modelVersion>
77
<groupId>dist.common</groupId>
88
<artifactId>distprocedure</artifactId>
9-
<version>1.1.0.RELEASE</version>
9+
<version>1.1.3.RELEASE</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -24,9 +24,19 @@
2424
<version>2.5</version>
2525
</dependency>
2626
<dependency>
27-
<groupId>commons-lang</groupId>
28-
<artifactId>commons-lang</artifactId>
29-
<version>2.6</version>
27+
<groupId>org.apache.commons</groupId>
28+
<artifactId>commons-lang3</artifactId>
29+
<version>3.1</version>
30+
</dependency>
31+
<dependency>
32+
<groupId>dist.common</groupId>
33+
<artifactId>distrule</artifactId>
34+
<version>1.0.0.RELEASE</version>
35+
</dependency>
36+
<dependency>
37+
<groupId>log4j</groupId>
38+
<artifactId>log4j</artifactId>
39+
<version>1.2.14</version>
3040
</dependency>
3141
<dependency>
3242
<groupId>junit</groupId>
@@ -54,6 +64,8 @@
5464
</dependency>
5565
</dependencies>
5666

67+
68+
5769
<build>
5870
<plugins>
5971
<plugin>
@@ -84,6 +96,8 @@
8496
<targetPath>META-INF</targetPath>
8597
<includes>
8698
<include>distprocedure.xsd</include>
99+
<include>distfeatures.xml</include>
100+
<include>distrule.drl</include>
87101
</includes>
88102
</resource>
89103
</resources>

src/main/java/dist/common/procedure/define/DBConnector.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dist.common.procedure.define;
22

3+
import org.apache.log4j.Logger;
4+
35
import java.sql.Connection;
46
import java.sql.DriverManager;
57
import java.sql.SQLException;
@@ -9,13 +11,21 @@
911
*/
1012
public class DBConnector {
1113

14+
private static Logger log=Logger.getLogger(DBConnector.class);
15+
1216
public static Connection conn = null;
1317

1418
public static void conn(String driver,String url,String userName,String password){
1519
try {
1620
Class.forName(driver);
1721
conn = DriverManager.getConnection(url, userName, password);
22+
if (conn!=null){
23+
log.debug("数据库连接成功");
24+
}else{
25+
log.debug("数据库连接失败");
26+
}
1827
} catch (Exception e) {
28+
log.error("数据库连接失败:"+e.getMessage());
1929
e.printStackTrace();
2030
}
2131
}
@@ -24,8 +34,8 @@ public static void closeConn(){
2434
try {
2535
conn.close();
2636
} catch (SQLException e) {
37+
log.error("数据库关闭异常:"+e.getMessage());
2738
e.printStackTrace();
2839
}
2940
}
30-
3141
}

src/main/java/dist/common/procedure/define/ProcedureCaller.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package dist.common.procedure.define;
22

3+
import org.apache.log4j.Logger;
4+
35
import java.lang.reflect.Method;
46
import java.util.Arrays;
57
import java.util.List;
@@ -12,6 +14,9 @@
1214
*/
1315

1416
public class ProcedureCaller {
17+
18+
private static Logger log=Logger.getLogger(ProcedureCaller.class);
19+
1520
/**
1621
* 调用存储过程
1722
*
@@ -27,20 +32,21 @@ public static Object call(ProcedureModel procedureModel,Object...values) {
2732
Object instance = cls.newInstance();
2833
return method.invoke(instance, new Object[]{procedureModel, Arrays.asList(values)});
2934
} catch (ClassNotFoundException e) {
30-
System.out.println("未找到类" + procedureModel.getExecuteClass() + ",请添加该类所在jar包。");
35+
log.error("未找到类" + procedureModel.getExecuteClass() + ",请添加该类所在jar包。");
3136
e.printStackTrace();
3237
} catch (NoSuchMethodException e) {
33-
System.out.println("在类" + procedureModel.getExecuteClass() + "中未找到" + procedureModel.getExecuteMethod() + "方法。");
38+
log.error("在类" + procedureModel.getExecuteClass() + "中未找到" + procedureModel.getExecuteMethod() + "方法。");
3439
e.printStackTrace();
3540
} catch (IllegalArgumentException e) {
36-
System.out.println("方法" + procedureModel.getExecuteMethod() + "的参数有误。");
41+
log.error("方法" + procedureModel.getExecuteMethod() + "的参数有误。");
3742
e.printStackTrace();
3843
} catch (Exception e) {
44+
log.error(e.getMessage());
3945
e.printStackTrace();
4046
}
4147
return null;
4248
} else {
43-
System.out.println("请配置该功能对应的存储过程模型.");
49+
log.debug("请配置该功能对应的存储过程模型.");
4450
return null;
4551
}
4652
}

0 commit comments

Comments
 (0)