Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
开发团队
Flowable Engine
提交
190ca662
F
Flowable Engine
项目概览
开发团队
/
Flowable Engine
通知
9
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
Flowable Engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
190ca662
编写于
12月 18, 2015
作者:
J
Joram Barrez
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Manually ported all fixes to the CXF module to v6
上级
f6bba712
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
677 addition
and
90 deletion
+677
-90
modules/activiti-cxf/src/main/java/org/activiti/engine/impl/webservice/CxfWSDLImporter.java
.../org/activiti/engine/impl/webservice/CxfWSDLImporter.java
+39
-16
modules/activiti-cxf/src/test/java/org/activiti/engine/impl/webservice/WSDLImporterTest.java
...org/activiti/engine/impl/webservice/WSDLImporterTest.java
+66
-49
modules/activiti-cxf/src/test/java/org/activiti/engine/impl/webservice/WebServiceMock.java
...a/org/activiti/engine/impl/webservice/WebServiceMock.java
+6
-0
modules/activiti-cxf/src/test/java/org/activiti/engine/impl/webservice/WebServiceMockImpl.java
...g/activiti/engine/impl/webservice/WebServiceMockImpl.java
+14
-0
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/sendtask/WebServiceSimplisticTest.java
...i/engine/test/bpmn/sendtask/WebServiceSimplisticTest.java
+1
-1
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/sendtask/WebServiceUELTest.java
...activiti/engine/test/bpmn/sendtask/WebServiceUELTest.java
+11
-6
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/servicetask/WebServiceSimplisticTest.java
...ngine/test/bpmn/servicetask/WebServiceSimplisticTest.java
+27
-1
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/servicetask/WebServiceUELTest.java
...iviti/engine/test/bpmn/servicetask/WebServiceUELTest.java
+12
-7
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/basic-elements-in-types.wsdl
...iviti/engine/impl/webservice/basic-elements-in-types.wsdl
+104
-0
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/counter.wsdl
...esources/org/activiti/engine/impl/webservice/counter.wsdl
+82
-7
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/counterSchema.xsd
...ces/org/activiti/engine/impl/webservice/counterSchema.xsd
+34
-0
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/counterWithImport.wsdl
...rg/activiti/engine/impl/webservice/counterWithImport.wsdl
+40
-1
modules/activiti-cxf/src/test/resources/org/activiti/engine/test/bpmn/servicetask/WebServiceSimplisticTest.testWebResponseKeywordName.bpmn20.xml
...rviceSimplisticTest.testWebResponseKeywordName.bpmn20.xml
+80
-0
modules/activiti-cxf/src/test/resources/org/activiti/engine/test/bpmn/servicetask/WebServiceSimplisticTest.testWebResponseNoName.bpmn20.xml
...WebServiceSimplisticTest.testWebResponseNoName.bpmn20.xml
+80
-0
modules/activiti-cxf/src/test/resources/org/activiti/engine/test/bpmn/servicetask/counter.wsdl
...es/org/activiti/engine/test/bpmn/servicetask/counter.wsdl
+81
-2
未找到文件。
modules/activiti-cxf/src/main/java/org/activiti/engine/impl/webservice/CxfWSDLImporter.java
浏览文件 @
190ca662
...
...
@@ -31,6 +31,7 @@ import javax.xml.namespace.QName;
import
org.activiti.bpmn.model.Import
;
import
org.activiti.engine.ActivitiException
;
import
org.activiti.engine.impl.bpmn.data.PrimitiveStructureDefinition
;
import
org.activiti.engine.impl.bpmn.data.SimpleStructureDefinition
;
import
org.activiti.engine.impl.bpmn.data.StructureDefinition
;
import
org.activiti.engine.impl.bpmn.parser.BpmnParseXMLImportHandler
;
...
...
@@ -51,6 +52,8 @@ import com.ibm.wsdl.extensions.schema.SchemaImpl;
import
com.sun.codemodel.JClass
;
import
com.sun.codemodel.JDefinedClass
;
import
com.sun.codemodel.JFieldVar
;
import
com.sun.codemodel.JJavaName
;
import
com.sun.codemodel.JType
;
import
com.sun.tools.xjc.ConsoleErrorReporter
;
import
com.sun.tools.xjc.api.ErrorListener
;
import
com.sun.tools.xjc.api.Mapping
;
...
...
@@ -97,7 +100,7 @@ public class CxfWSDLImporter implements XMLImporter {
}
}
pr
ivate
void
transferImportsToParse
(
BpmnParseXMLImportHandler
parseHandler
)
{
pr
otected
void
transferImportsToParse
(
BpmnParseXMLImportHandler
parseHandler
)
{
if
(
parseHandler
!=
null
)
{
for
(
StructureDefinition
structure
:
this
.
structures
.
values
())
{
parseHandler
.
addStructure
(
structure
);
...
...
@@ -144,13 +147,13 @@ public class CxfWSDLImporter implements XMLImporter {
throw
new
ActivitiException
(
"The JAXB binding definitions are not found for activiti-cxf: "
+
JAXB_BINDINGS_RESOURCE
);
}
}
catch
(
WSDLException
e
)
{
e
.
printStackTrace
();
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
throw
new
ActivitiException
(
"Error retrieveing the JAXB binding definitions"
,
e
);
}
}
pr
ivate
WSService
importService
(
ServiceInfo
service
)
{
pr
otected
WSService
importService
(
ServiceInfo
service
)
{
String
name
=
service
.
getName
().
getLocalPart
();
String
location
=
""
;
...
...
@@ -168,12 +171,12 @@ public class CxfWSDLImporter implements XMLImporter {
return
wsService
;
}
pr
ivate
WSOperation
importOperation
(
OperationInfo
operation
,
WSService
service
)
{
pr
otected
WSOperation
importOperation
(
OperationInfo
operation
,
WSService
service
)
{
WSOperation
wsOperation
=
new
WSOperation
(
this
.
namespace
+
operation
.
getName
().
getLocalPart
(),
operation
.
getName
().
getLocalPart
(),
service
);
return
wsOperation
;
}
pr
ivate
void
importTypes
(
Types
types
)
{
pr
otected
void
importTypes
(
Types
types
)
{
SchemaCompiler
compiler
=
XJC
.
createSchemaCompiler
();
ErrorListener
elForRun
=
new
ConsoleErrorReporter
();
compiler
.
setErrorListener
(
elForRun
);
...
...
@@ -188,21 +191,34 @@ public class CxfWSDLImporter implements XMLImporter {
}
}
pr
ivate
void
importStructure
(
Mapping
mapping
)
{
pr
otected
void
importStructure
(
Mapping
mapping
)
{
QName
qname
=
mapping
.
getElement
();
JDefinedClass
theClass
=
(
JDefinedClass
)
mapping
.
getType
().
getTypeClass
();
SimpleStructureDefinition
structure
=
new
SimpleStructureDefinition
(
this
.
namespace
+
qname
.
getLocalPart
());
this
.
structures
.
put
(
structure
.
getId
(),
structure
);
importFields
(
theClass
,
structure
);
final
JType
type
=
mapping
.
getType
().
getTypeClass
();
if
(
type
.
isPrimitive
())
{
final
Class
<?>
primitiveClass
=
ReflectUtil
.
loadClass
(
type
.
boxify
().
fullName
());
final
StructureDefinition
structure
=
new
PrimitiveStructureDefinition
(
this
.
namespace
+
qname
.
getLocalPart
(),
primitiveClass
);
this
.
structures
.
put
(
structure
.
getId
(),
structure
);
}
else
if
(
type
instanceof
JDefinedClass
)
{
JDefinedClass
theClass
=
(
JDefinedClass
)
type
;
SimpleStructureDefinition
structure
=
new
SimpleStructureDefinition
(
this
.
namespace
+
qname
.
getLocalPart
());
this
.
structures
.
put
(
structure
.
getId
(),
structure
);
importFields
(
theClass
,
structure
);
}
else
{
final
Class
<?>
referencedClass
=
ReflectUtil
.
loadClass
(
type
.
fullName
());
final
StructureDefinition
structure
=
new
PrimitiveStructureDefinition
(
this
.
namespace
+
qname
.
getLocalPart
(),
referencedClass
);
this
.
structures
.
put
(
structure
.
getId
(),
structure
);
}
}
pr
ivate
static
void
importFields
(
final
JDefinedClass
theClass
,
final
SimpleStructureDefinition
structure
)
{
pr
otected
static
void
importFields
(
final
JDefinedClass
theClass
,
final
SimpleStructureDefinition
structure
)
{
final
AtomicInteger
index
=
new
AtomicInteger
(
0
);
_importFields
(
theClass
,
index
,
structure
);
}
pr
ivate
static
void
_importFields
(
final
JDefinedClass
theClass
,
final
AtomicInteger
index
,
final
SimpleStructureDefinition
structure
)
{
pr
otected
static
void
_importFields
(
final
JDefinedClass
theClass
,
final
AtomicInteger
index
,
final
SimpleStructureDefinition
structure
)
{
final
JClass
parentClass
=
theClass
.
_extends
();
if
(
parentClass
!=
null
&&
parentClass
instanceof
JDefinedClass
)
{
...
...
@@ -210,12 +226,19 @@ public class CxfWSDLImporter implements XMLImporter {
}
for
(
Entry
<
String
,
JFieldVar
>
entry
:
theClass
.
fields
().
entrySet
())
{
Class
<?>
fieldClass
=
ReflectUtil
.
loadClass
(
entry
.
getValue
().
type
().
boxify
().
fullName
());
structure
.
setFieldName
(
index
.
getAndIncrement
(),
entry
.
getKey
(),
fieldClass
);
String
fieldName
=
entry
.
getKey
();
if
(
fieldName
.
startsWith
(
"_"
))
{
if
(!
JJavaName
.
isJavaIdentifier
(
fieldName
.
substring
(
1
)))
{
fieldName
=
fieldName
.
substring
(
1
);
//it was prefixed with '_' so we should use the original name.
}
}
structure
.
setFieldName
(
index
.
getAndIncrement
(),
fieldName
,
fieldClass
);
}
}
private
S2JJAXBModel
compileModel
(
Types
types
,
SchemaCompiler
compiler
,
org
.
w3c
.
dom
.
Element
rootTypes
)
{
protected
S2JJAXBModel
compileModel
(
Types
types
,
SchemaCompiler
compiler
,
org
.
w3c
.
dom
.
Element
rootTypes
)
{
Schema
schema
=
(
Schema
)
types
.
getExtensibilityElements
().
get
(
0
);
compiler
.
parseSchema
(
schema
.
getDocumentBaseURI
()
+
"#types1"
,
rootTypes
);
S2JJAXBModel
intermediateModel
=
compiler
.
bind
();
...
...
modules/activiti-cxf/src/test/java/org/activiti/engine/impl/webservice/WSDLImporterTest.java
浏览文件 @
190ca662
...
...
@@ -21,8 +21,6 @@ import java.util.Collections;
import
java.util.Comparator
;
import
java.util.List
;
import
junit.framework.Assert
;
import
org.activiti.engine.impl.bpmn.data.SimpleStructureDefinition
;
import
org.activiti.engine.impl.bpmn.data.StructureDefinition
;
import
org.activiti.engine.impl.util.ReflectUtil
;
...
...
@@ -40,75 +38,87 @@ public class WSDLImporterTest {
public
void
setUp
()
{
importer
=
new
CxfWSDLImporter
();
}
@Test
public
void
testImportCounter
()
throws
Exception
{
URL
url
=
ReflectUtil
.
getResource
(
"org/activiti/engine/impl/webservice/counter.wsdl"
);
importer
.
importFrom
(
url
.
toString
());
List
<
WSService
>
services
=
new
ArrayList
<
WSService
>(
importer
.
getServices
());
Assert
.
assertEquals
(
1
,
services
.
size
());
assertEquals
(
1
,
services
.
size
());
WSService
service
=
services
.
get
(
0
);
Assert
.
assertEquals
(
"Counter"
,
service
.
getName
());
Assert
.
assertEquals
(
"http://localhost:63081/counter
"
,
service
.
getLocation
());
assertEquals
(
"Counter"
,
service
.
getName
());
assertEquals
(
"http://localhost:63081/webservicemock
"
,
service
.
getLocation
());
List
<
StructureDefinition
>
structures
=
sortStructures
();
List
<
WSOperation
>
operations
=
sortOperations
();
Assert
.
assertEquals
(
5
,
operations
.
size
());
assertEquals
(
7
,
operations
.
size
());
this
.
assertOperation
(
operations
.
get
(
0
),
"getCount"
,
service
);
this
.
assertOperation
(
operations
.
get
(
1
),
"inc"
,
service
);
this
.
assertOperation
(
operations
.
get
(
2
),
"prettyPrintCount"
,
service
);
this
.
assertOperation
(
operations
.
get
(
3
),
"reset"
,
service
);
this
.
assertOperation
(
operations
.
get
(
4
),
"setTo"
,
service
);
Assert
.
assertEquals
(
10
,
structures
.
size
());
this
.
assertOperation
(
operations
.
get
(
2
),
"noNameResult"
,
service
);
this
.
assertOperation
(
operations
.
get
(
3
),
"prettyPrintCount"
,
service
);
this
.
assertOperation
(
operations
.
get
(
4
),
"reservedWordAsName"
,
service
);
this
.
assertOperation
(
operations
.
get
(
5
),
"reset"
,
service
);
this
.
assertOperation
(
operations
.
get
(
6
),
"setTo"
,
service
);
assertEquals
(
14
,
structures
.
size
());
this
.
assertStructure
(
structures
.
get
(
0
),
"getCount"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
1
),
"getCountResponse"
,
new
String
[]
{
"count"
},
new
Class
<?>[]
{
Integer
.
class
});
this
.
assertStructure
(
structures
.
get
(
2
),
"inc"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
3
),
"incResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
4
),
"prettyPrintCount"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
5
),
"prettyPrintCountResponse"
,
new
String
[]
{
"prettyPrint"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
6
),
"reset"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
7
),
"resetResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
8
),
"setTo"
,
new
String
[]
{
"value"
},
new
Class
<?>[]
{
Integer
.
class
});
this
.
assertStructure
(
structures
.
get
(
9
),
"setToResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
4
),
"noNameResult"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
5
),
"noNameResultResponse"
,
new
String
[]
{
"return"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
6
),
"prettyPrintCount"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
7
),
"prettyPrintCountResponse"
,
new
String
[]
{
"prettyPrint"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
8
),
"reservedWordAsName"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
9
),
"reservedWordAsNameResponse"
,
new
String
[]
{
"static"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
10
),
"reset"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
11
),
"resetResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
12
),
"setTo"
,
new
String
[]
{
"value"
},
new
Class
<?>[]
{
Integer
.
class
});
this
.
assertStructure
(
structures
.
get
(
13
),
"setToResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
}
@Test
public
void
testImportCounterWithImport
()
throws
Exception
{
URL
url
=
ReflectUtil
.
getResource
(
"org/activiti/engine/impl/webservice/counterWithImport.wsdl"
);
importer
.
importFrom
(
url
.
toString
());
List
<
WSService
>
services
=
new
ArrayList
<
WSService
>(
importer
.
getServices
());
Assert
.
assertEquals
(
1
,
services
.
size
());
assertEquals
(
1
,
services
.
size
());
WSService
service
=
services
.
get
(
0
);
Assert
.
assertEquals
(
"Counter"
,
service
.
getName
());
Assert
.
assertEquals
(
"http://localhost:63081/counter"
,
service
.
getLocation
());
assertEquals
(
"Counter"
,
service
.
getName
());
assertEquals
(
"http://localhost:63081/counter"
,
service
.
getLocation
());
List
<
StructureDefinition
>
structures
=
sortStructures
();
List
<
WSOperation
>
operations
=
sortOperations
();
Assert
.
assertEquals
(
5
,
operations
.
size
());
assertEquals
(
7
,
operations
.
size
());
this
.
assertOperation
(
operations
.
get
(
0
),
"getCount"
,
service
);
this
.
assertOperation
(
operations
.
get
(
1
),
"inc"
,
service
);
this
.
assertOperation
(
operations
.
get
(
2
),
"prettyPrintCount"
,
service
);
this
.
assertOperation
(
operations
.
get
(
3
),
"reset"
,
service
);
this
.
assertOperation
(
operations
.
get
(
4
),
"setTo"
,
service
);
Assert
.
assertEquals
(
10
,
structures
.
size
());
this
.
assertOperation
(
operations
.
get
(
2
),
"noNameResult"
,
service
);
this
.
assertOperation
(
operations
.
get
(
3
),
"prettyPrintCount"
,
service
);
this
.
assertOperation
(
operations
.
get
(
4
),
"reservedWordAsName"
,
service
);
this
.
assertOperation
(
operations
.
get
(
5
),
"reset"
,
service
);
this
.
assertOperation
(
operations
.
get
(
6
),
"setTo"
,
service
);
assertEquals
(
14
,
structures
.
size
());
this
.
assertStructure
(
structures
.
get
(
0
),
"getCount"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
1
),
"getCountResponse"
,
new
String
[]
{
"count"
},
new
Class
<?>[]
{
Integer
.
class
});
this
.
assertStructure
(
structures
.
get
(
2
),
"inc"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
3
),
"incResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
4
),
"prettyPrintCount"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
5
),
"prettyPrintCountResponse"
,
new
String
[]
{
"prettyPrint"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
6
),
"reset"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
7
),
"resetResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
8
),
"setTo"
,
new
String
[]
{
"value"
},
new
Class
<?>[]
{
Integer
.
class
});
this
.
assertStructure
(
structures
.
get
(
9
),
"setToResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
4
),
"noNameResult"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
5
),
"noNameResultResponse"
,
new
String
[]
{
"return"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
6
),
"prettyPrintCount"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
7
),
"prettyPrintCountResponse"
,
new
String
[]
{
"prettyPrint"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
8
),
"reservedWordAsName"
,
new
String
[]
{
"prefix"
,
"suffix"
},
new
Class
<?>[]
{
String
.
class
,
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
9
),
"reservedWordAsNameResponse"
,
new
String
[]
{
"static"
},
new
Class
<?>[]
{
String
.
class
});
this
.
assertStructure
(
structures
.
get
(
10
),
"reset"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
11
),
"resetResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
this
.
assertStructure
(
structures
.
get
(
12
),
"setTo"
,
new
String
[]
{
"value"
},
new
Class
<?>[]
{
Integer
.
class
});
this
.
assertStructure
(
structures
.
get
(
13
),
"setToResponse"
,
new
String
[]
{},
new
Class
<?>[]
{});
}
private
List
<
WSOperation
>
sortOperations
()
{
...
...
@@ -130,20 +140,20 @@ public class WSDLImporterTest {
});
return
structures
;
}
private
void
assertOperation
(
WSOperation
wsOperation
,
String
name
,
WSService
service
)
{
Assert
.
assertEquals
(
name
,
wsOperation
.
getName
());
Assert
.
assertEquals
(
service
,
wsOperation
.
getService
());
assertEquals
(
name
,
wsOperation
.
getName
());
assertEquals
(
service
,
wsOperation
.
getService
());
}
private
void
assertStructure
(
StructureDefinition
structure
,
String
structureId
,
String
[]
parameters
,
Class
<?>[]
classes
)
{
SimpleStructureDefinition
simpleStructure
=
(
SimpleStructureDefinition
)
structure
;
Assert
.
assertEquals
(
structureId
,
simpleStructure
.
getId
());
assertEquals
(
structureId
,
simpleStructure
.
getId
());
for
(
int
i
=
0
;
i
<
simpleStructure
.
getFieldSize
();
i
++)
{
Assert
.
assertEquals
(
parameters
[
i
],
simpleStructure
.
getFieldNameAt
(
i
));
Assert
.
assertEquals
(
classes
[
i
],
simpleStructure
.
getFieldTypeAt
(
i
));
assertEquals
(
parameters
[
i
],
simpleStructure
.
getFieldNameAt
(
i
));
assertEquals
(
classes
[
i
],
simpleStructure
.
getFieldTypeAt
(
i
));
}
}
...
...
@@ -156,7 +166,7 @@ public class WSDLImporterTest {
List
<
StructureDefinition
>
structures
=
sortStructures
();
assertEquals
(
1
,
structures
.
size
());
final
Object
structureTypeInst
=
ReflectUtil
.
instantiate
(
"org.activiti.webservice.counter.StructureType"
);
final
Class
structureType
=
structureTypeInst
.
getClass
();
final
Class
<?
extends
Object
>
structureType
=
structureTypeInst
.
getClass
();
this
.
assertStructure
(
structures
.
get
(
0
),
"inheritedRequest"
,
new
String
[]
{
"rootElt"
,
"inheritedElt"
,
"newSimpleElt"
,
"newStructuredElt"
},
new
Class
<?>[]
{
Short
.
class
,
Integer
.
class
,
String
.
class
,
structureType
});
assertEquals
(
2
,
structureType
.
getDeclaredFields
().
length
);
...
...
@@ -165,4 +175,11 @@ public class WSDLImporterTest {
assertEquals
(
1
,
structureType
.
getSuperclass
().
getDeclaredFields
().
length
);
assertNotNull
(
structureType
.
getSuperclass
().
getDeclaredField
(
"rootElt"
));
}
@Test
public
void
testImportBasicElement
()
throws
Exception
{
URL
url
=
ReflectUtil
.
getResource
(
"org/activiti/engine/impl/webservice/basic-elements-in-types.wsdl"
);
assertNotNull
(
url
);
importer
.
importFrom
(
url
.
toString
());
}
}
modules/activiti-cxf/src/test/java/org/activiti/engine/impl/webservice/WebServiceMock.java
浏览文件 @
190ca662
...
...
@@ -78,4 +78,10 @@ public interface WebServiceMock {
*/
@WebResult
(
name
=
"currentStructure"
)
WebServiceDataStructure
getDataStructure
();
@WebResult
String
noNameResult
(
@WebParam
(
name
=
"prefix"
)
String
prefix
,
@WebParam
(
name
=
"suffix"
)
String
suffix
);
@WebResult
(
name
=
"static"
)
String
reservedWordAsName
(
@WebParam
(
name
=
"prefix"
)
String
prefix
,
@WebParam
(
name
=
"suffix"
)
String
suffix
);
}
modules/activiti-cxf/src/test/java/org/activiti/engine/impl/webservice/WebServiceMockImpl.java
浏览文件 @
190ca662
...
...
@@ -82,4 +82,18 @@ public class WebServiceMockImpl implements WebServiceMock {
public
WebServiceDataStructure
getDataStructure
()
{
return
this
.
dataStructure
;
}
/**
* {@inheritDoc}
*/
public
String
noNameResult
(
String
prefix
,
String
suffix
)
{
return
prefix
+
this
.
getCount
()
+
suffix
;
}
/**
* {@inheritDoc}
*/
public
String
reservedWordAsName
(
String
prefix
,
String
suffix
)
{
return
prefix
+
this
.
getCount
()
+
suffix
;
}
}
\ No newline at end of file
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/sendtask/WebServiceSimplisticTest.java
浏览文件 @
190ca662
...
...
@@ -27,7 +27,7 @@ public class WebServiceSimplisticTest extends AbstractWebServiceTaskTest {
protected
boolean
isValidating
()
{
return
false
;
}
@Deployment
public
void
testAsyncInvocationWithSimplisticDataFlow
()
throws
Exception
{
assertEquals
(-
1
,
webServiceMock
.
getCount
());
...
...
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/sendtask/WebServiceUELTest.java
浏览文件 @
190ca662
...
...
@@ -35,12 +35,17 @@ public class WebServiceUELTest extends AbstractWebServiceTaskTest {
public
void
testAsyncInvocationWithDataFlowUEL
()
throws
Exception
{
assertEquals
(-
1
,
webServiceMock
.
getCount
());
ProcessDefinitionEntity
processDefinition
=
processEngineConfiguration
.
getCommandExecutor
().
execute
(
new
Command
<
ProcessDefinitionEntity
>()
{
public
ProcessDefinitionEntity
execute
(
CommandContext
commandContext
)
{
return
Context
.
getProcessEngineConfiguration
().
getDeploymentManager
().
findDeployedLatestProcessDefinitionByKey
(
"asyncWebServiceInvocationWithDataFlowUEL"
);
}
});
ProcessDefinitionEntity
processDefinition
=
processEngineConfiguration
.
getCommandExecutor
()
.
execute
(
new
Command
<
ProcessDefinitionEntity
>()
{
public
ProcessDefinitionEntity
execute
(
CommandContext
commandContext
)
{
return
Context
.
getProcessEngineConfiguration
()
.
getDeploymentManager
()
.
findDeployedLatestProcessDefinitionByKey
(
"asyncWebServiceInvocationWithDataFlowUEL"
);
}
});
ItemDefinition
itemDefinition
=
processDefinition
.
getIoSpecification
().
getDataInputs
().
get
(
0
).
getDefinition
();
ItemInstance
itemInstance
=
itemDefinition
.
createInstance
();
...
...
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/servicetask/WebServiceSimplisticTest.java
浏览文件 @
190ca662
...
...
@@ -26,7 +26,7 @@ public class WebServiceSimplisticTest extends AbstractWebServiceTaskTest {
protected
boolean
isValidating
()
{
return
false
;
}
@Deployment
public
void
testWebServiceInvocationWithSimplisticDataFlow
()
throws
Exception
{
Map
<
String
,
Object
>
variables
=
new
HashMap
<
String
,
Object
>();
...
...
@@ -39,4 +39,30 @@ public class WebServiceSimplisticTest extends AbstractWebServiceTaskTest {
String
response
=
(
String
)
processEngine
.
getRuntimeService
().
getVariable
(
instance
.
getId
(),
"OutputVariable"
);
assertEquals
(
"The counter has the value -1. Good news"
,
response
);
}
@Deployment
public
void
testWebResponseNoName
()
throws
Exception
{
Map
<
String
,
Object
>
variables
=
new
HashMap
<
String
,
Object
>();
variables
.
put
(
"PrefixVariable"
,
"The counter has the value "
);
variables
.
put
(
"SuffixVariable"
,
". Good news (NO NAME)"
);
ProcessInstance
instance
=
processEngine
.
getRuntimeService
().
startProcessInstanceByKey
(
"webServiceInvocationWithSimplisticDataFlow"
,
variables
);
waitForJobExecutorToProcessAllJobs
(
10000L
,
250L
);
String
response
=
(
String
)
processEngine
.
getRuntimeService
().
getVariable
(
instance
.
getId
(),
"OutputVariable"
);
assertEquals
(
"The counter has the value -1. Good news (NO NAME)"
,
response
);
}
@Deployment
public
void
testWebResponseKeywordName
()
throws
Exception
{
Map
<
String
,
Object
>
variables
=
new
HashMap
<
String
,
Object
>();
variables
.
put
(
"PrefixVariable"
,
"The counter has the value "
);
variables
.
put
(
"SuffixVariable"
,
". Good news Keyword"
);
ProcessInstance
instance
=
processEngine
.
getRuntimeService
().
startProcessInstanceByKey
(
"webServiceInvocationWithSimplisticDataFlow"
,
variables
);
waitForJobExecutorToProcessAllJobs
(
10000L
,
250L
);
String
response
=
(
String
)
processEngine
.
getRuntimeService
().
getVariable
(
instance
.
getId
(),
"OutputVariable"
);
assertEquals
(
"The counter has the value -1. Good news Keyword"
,
response
);
}
}
modules/activiti-cxf/src/test/java/org/activiti/engine/test/bpmn/servicetask/WebServiceUELTest.java
浏览文件 @
190ca662
...
...
@@ -32,13 +32,18 @@ public class WebServiceUELTest extends AbstractWebServiceTaskTest {
@Deployment
public
void
testWebServiceInvocationWithDataFlowUEL
()
throws
Exception
{
ProcessDefinitionEntity
processDefinition
=
processEngineConfiguration
.
getCommandExecutor
().
execute
(
new
Command
<
ProcessDefinitionEntity
>()
{
public
ProcessDefinitionEntity
execute
(
CommandContext
commandContext
)
{
return
Context
.
getProcessEngineConfiguration
().
getDeploymentManager
().
findDeployedLatestProcessDefinitionByKey
(
"webServiceInvocationWithDataFlowUEL"
);
}
});
ItemDefinition
itemDefinition
=
processDefinition
.
getIoSpecification
().
getDataInputs
().
get
(
0
).
getDefinition
();
ProcessDefinitionEntity
processDefinition
=
processEngineConfiguration
.
getCommandExecutor
()
.
execute
(
new
Command
<
ProcessDefinitionEntity
>()
{
public
ProcessDefinitionEntity
execute
(
CommandContext
commandContext
)
{
return
Context
.
getProcessEngineConfiguration
()
.
getDeploymentManager
()
.
findDeployedLatestProcessDefinitionByKey
(
"webServiceInvocationWithDataFlowUEL"
);
}
});
ItemDefinition
itemDefinition
=
processDefinition
.
getIoSpecification
().
getDataInputs
().
get
(
0
).
getDefinition
();
ItemInstance
itemInstance
=
itemDefinition
.
createInstance
();
FieldBaseStructureInstance
structureInstance
=
(
FieldBaseStructureInstance
)
itemInstance
.
getStructureInstance
();
...
...
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/basic-elements-in-types.wsdl
0 → 100644
浏览文件 @
190ca662
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions
name=
"Counter"
targetNamespace=
"http://webservice.activiti.org/"
xmlns:ns1=
"http://schemas.xmlsoap.org/soap/http"
xmlns:soap=
"http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns=
"http://webservice.activiti.org/"
xmlns:wsdl=
"http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
>
<wsdl:types>
<xs:schema
attributeFormDefault=
"unqualified"
elementFormDefault=
"unqualified"
targetNamespace=
"http://webservice.activiti.org/"
xmlns:tns=
"http://webservice.activiti.org/"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
>
<xs:element
name=
"int"
type=
"xsd:int"
/>
<xs:element
name=
"long"
type=
"xsd:long"
/>
<xs:element
name=
"short"
type=
"xsd:short"
/>
<xs:element
name=
"boolean"
type=
"xsd:boolean"
/>
<xs:element
name=
"double"
type=
"xsd:double"
/>
<xs:element
name=
"string"
type=
"xsd:string"
/>
<xs:element
name=
"date"
type=
"xsd:date"
/>
<xs:element
name=
"uri"
type=
"xsd:anyURI"
/>
</xs:schema>
</wsdl:types>
<wsdl:message
name=
"int"
>
<wsdl:part
element=
"tns:int"
name=
"int"
/>
</wsdl:message>
<wsdl:message
name=
"long"
>
<wsdl:part
element=
"tns:long"
name=
"long"
/>
</wsdl:message>
<wsdl:message
name=
"short"
>
<wsdl:part
element=
"tns:short"
name=
"short"
/>
</wsdl:message>
<wsdl:message
name=
"boolean"
>
<wsdl:part
element=
"tns:boolean"
name=
"boolean"
/>
</wsdl:message>
<wsdl:message
name=
"double"
>
<wsdl:part
element=
"tns:double"
name=
"double"
/>
</wsdl:message>
<wsdl:message
name=
"string"
>
<wsdl:part
element=
"tns:string"
name=
"string"
/>
</wsdl:message>
<wsdl:message
name=
"date"
>
<wsdl:part
element=
"tns:date"
name=
"date"
/>
</wsdl:message>
<wsdl:message
name=
"uri"
>
<wsdl:part
element=
"tns:uri"
name=
"uri"
/>
</wsdl:message>
<wsdl:portType
name=
"Basic"
>
<wsdl:operation
name=
"op1"
>
<wsdl:input
message=
"tns:int"
name=
"int"
/>
<wsdl:output
message=
"tns:long"
name=
"long"
/>
</wsdl:operation>
<wsdl:operation
name=
"op2"
>
<wsdl:input
message=
"tns:short"
name=
"short"
/>
<wsdl:output
message=
"tns:boolean"
name=
"boolean"
/>
</wsdl:operation>
<wsdl:operation
name=
"op3"
>
<wsdl:input
message=
"tns:double"
name=
"double"
/>
<wsdl:output
message=
"tns:string"
name=
"string"
/>
</wsdl:operation>
<wsdl:operation
name=
"op4"
>
<wsdl:input
message=
"tns:date"
name=
"date"
/>
<wsdl:output
message=
"tns:uri"
name=
"uri"
/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding
name=
"BasicSoapBinding"
type=
"tns:Basic"
>
<soap:binding
style=
"document"
transport=
"http://schemas.xmlsoap.org/soap/http"
/>
<wsdl:operation
name=
"op1"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"int"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"long"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"op2"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"short"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"boolean"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"op3"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"double"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"string"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"op4"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"date"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"uri"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service
name=
"Basic"
>
<wsdl:port
binding=
"tns:BasicSoapBinding"
name=
"BasicImplPort"
>
<soap:address
location=
"http://localhost:63081/basic"
/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
\ No newline at end of file
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/counter.wsdl
浏览文件 @
190ca662
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions
name=
"Counter"
targetNamespace=
"http://webservice.activiti.org/counter"
xmlns:ns1=
"http://schemas.xmlsoap.org/soap/http"
xmlns:soap=
"http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns=
"http://webservice.activiti.org/counter"
xmlns:wsdl=
"http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
>
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions
name=
"Counter"
targetNamespace=
"http://webservice.activiti.org/"
xmlns:ns1=
"http://schemas.xmlsoap.org/soap/http"
xmlns:soap=
"http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns=
"http://webservice.activiti.org/"
xmlns:wsdl=
"http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
>
<wsdl:types>
<xs:schema
attributeFormDefault=
"unqualified"
elementFormDefault=
"unqualified"
targetNamespace=
"http://webservice.activiti.org/counter"
xmlns:tns=
"http://webservice.activiti.org/counter"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
>
<xs:schema
attributeFormDefault=
"unqualified"
elementFormDefault=
"unqualified"
targetNamespace=
"http://webservice.activiti.org/"
xmlns:tns=
"http://webservice.activiti.org/"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
>
<xs:element
name=
"getCount"
type=
"tns:getCount"
/>
<xs:element
name=
"getCountResponse"
type=
"tns:getCountResponse"
/>
<xs:element
name=
"inc"
type=
"tns:inc"
/>
<xs:element
name=
"incResponse"
type=
"tns:incResponse"
/>
<xs:element
name=
"prettyPrintCount"
type=
"tns:prettyPrintCount"
/>
<xs:element
name=
"prettyPrintCountResponse"
type=
"tns:prettyPrintCountResponse"
/>
<xs:element
name=
"noNameResult"
type=
"tns:noNameResult"
/>
<xs:element
name=
"noNameResultResponse"
type=
"tns:noNameResultResponse"
/>
<xs:element
name=
"reservedWordAsName"
type=
"tns:reservedWordAsName"
/>
<xs:element
name=
"reservedWordAsNameResponse"
type=
"tns:reservedWordAsNameResponse"
/>
<xs:element
name=
"reset"
type=
"tns:reset"
/>
<xs:element
name=
"resetResponse"
type=
"tns:resetResponse"
/>
<xs:element
name=
"setTo"
type=
"tns:setTo"
/>
...
...
@@ -46,6 +48,31 @@
<xs:element
minOccurs=
"0"
name=
"prettyPrint"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"noNameResult"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"prefix"
type=
"xs:string"
/>
<xs:element
minOccurs=
"0"
name=
"suffix"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"noNameResultResponse"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"return"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"reservedWordAsName"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"prefix"
type=
"xs:string"
/>
<xs:element
minOccurs=
"0"
name=
"suffix"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"reservedWordAsNameResponse"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"static"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"getCount"
>
<xs:sequence
/>
</xs:complexType>
...
...
@@ -68,6 +95,15 @@
<wsdl:part
element=
"tns:prettyPrintCountResponse"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"noNameResultResponse"
>
<wsdl:part
element=
"tns:noNameResultResponse"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"reservedWordAsNameResponse"
>
<wsdl:part
element=
"tns:reservedWordAsNameResponse"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"resetResponse"
>
<wsdl:part
element=
"tns:resetResponse"
name=
"parameters"
>
</wsdl:part>
...
...
@@ -88,6 +124,14 @@
<wsdl:part
element=
"tns:prettyPrintCount"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"noNameResult"
>
<wsdl:part
element=
"tns:noNameResult"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"reservedWordAsName"
>
<wsdl:part
element=
"tns:reservedWordAsName"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"inc"
>
<wsdl:part
element=
"tns:inc"
name=
"parameters"
>
</wsdl:part>
...
...
@@ -121,6 +165,18 @@
<wsdl:output
message=
"tns:prettyPrintCountResponse"
name=
"prettyPrintCountResponse"
>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"noNameResult"
>
<wsdl:input
message=
"tns:noNameResult"
name=
"noNameResult"
>
</wsdl:input>
<wsdl:output
message=
"tns:noNameResultResponse"
name=
"noNameResultResponse"
>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"reservedWordAsName"
>
<wsdl:input
message=
"tns:reservedWordAsName"
name=
"reservedWordAsName"
>
</wsdl:input>
<wsdl:output
message=
"tns:reservedWordAsNameResponse"
name=
"reservedWordAsNameResponse"
>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"getCount"
>
<wsdl:input
message=
"tns:getCount"
name=
"getCount"
>
</wsdl:input>
...
...
@@ -166,6 +222,25 @@
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"noNameResult"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"noNameResult"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"noNameResultResponse"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"reservedWordAsName"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"reservedWordAsName"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"reservedWordAsNameResponse"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"getCount"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"getCount"
>
...
...
@@ -178,7 +253,7 @@
</wsdl:binding>
<wsdl:service
name=
"Counter"
>
<wsdl:port
binding=
"tns:CounterSoapBinding"
name=
"CounterImplPort"
>
<soap:address
location=
"http://localhost:63081/
counter
"
/>
<soap:address
location=
"http://localhost:63081/
webservicemock
"
/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
\ No newline at end of file
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/counterSchema.xsd
浏览文件 @
190ca662
...
...
@@ -12,6 +12,14 @@
<xs:element
name=
"prettyPrintCountResponse"
type=
"tns:prettyPrintCountResponse"
></xs:element>
<xs:element
name=
"noNameResult"
type=
"tns:noNameResult"
></xs:element>
<xs:element
name=
"noNameResultResponse"
type=
"tns:noNameResultResponse"
></xs:element>
<xs:element
name=
"reservedWordAsName"
type=
"tns:reservedWordAsName"
></xs:element>
<xs:element
name=
"reservedWordAsNameResponse"
type=
"tns:reservedWordAsNameResponse"
></xs:element>
<xs:element
name=
"reset"
type=
"tns:reset"
></xs:element>
<xs:element
name=
"resetResponse"
type=
"tns:resetResponse"
></xs:element>
...
...
@@ -31,6 +39,32 @@
<xs:sequence>
<xs:element
name=
"prettyPrint"
type=
"xs:string"
minOccurs=
"0"
></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"reservedWordAsName"
>
<xs:sequence>
<xs:element
name=
"prefix"
type=
"xs:string"
minOccurs=
"0"
></xs:element>
<xs:element
name=
"suffix"
type=
"xs:string"
minOccurs=
"0"
></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"reservedWordAsNameResponse"
>
<xs:sequence>
<xs:element
name=
"static"
type=
"xs:string"
minOccurs=
"0"
></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"noNameResult"
>
<xs:sequence>
<xs:element
name=
"prefix"
type=
"xs:string"
minOccurs=
"0"
></xs:element>
<xs:element
name=
"suffix"
type=
"xs:string"
minOccurs=
"0"
></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"noNameResultResponse"
>
<xs:sequence>
<xs:element
name=
"return"
type=
"xs:string"
minOccurs=
"0"
></xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"inc"
>
...
...
modules/activiti-cxf/src/test/resources/org/activiti/engine/impl/webservice/counterWithImport.wsdl
浏览文件 @
190ca662
...
...
@@ -16,11 +16,23 @@
<message
name=
"setToResponse"
>
<part
name=
"parameters"
element=
"tns:setToResponse"
></part>
</message>
<message
name=
"prettyPrintCount"
>
<message
name=
"noNameResult"
>
<part
name=
"parameters"
element=
"tns:noNameResult"
></part>
</message>
<message
name=
"prettyPrintCount"
>
<part
name=
"parameters"
element=
"tns:prettyPrintCount"
></part>
</message>
<message
name=
"prettyPrintCountResponse"
>
<part
name=
"parameters"
element=
"tns:prettyPrintCountResponse"
></part>
</message>
<message
name=
"reservedWordAsName"
>
<part
name=
"parameters"
element=
"tns:reservedWordAsName"
></part>
</message>
<message
name=
"reservedWordAsNameResponse"
>
<part
name=
"parameters"
element=
"tns:reservedWordAsNameResponse"
></part>
</message>
<message
name=
"noNameResultResponse"
>
<part
name=
"parameters"
element=
"tns:noNameResultResponse"
></part>
</message>
<message
name=
"reset"
>
<part
name=
"parameters"
element=
"tns:reset"
></part>
...
...
@@ -46,6 +58,15 @@
<operation
name=
"prettyPrintCount"
>
<input
message=
"tns:prettyPrintCount"
></input>
<output
message=
"tns:prettyPrintCountResponse"
></output>
</operation>
<operation
name=
"reservedWordAsName"
>
<input
message=
"tns:reservedWordAsName"
></input>
<output
message=
"tns:reservedWordAsNameResponse"
></output>
</operation>
<operation
name=
"noNameResult"
>
<input
message=
"tns:noNameResult"
></input>
<output
message=
"tns:noNameResultResponse"
></output>
</operation>
<operation
name=
"reset"
>
<input
message=
"tns:reset"
></input>
...
...
@@ -84,6 +105,24 @@
<output>
<soap:body
use=
"literal"
></soap:body>
</output>
</operation>
<operation
name=
"reservedWordAsName"
>
<soap:operation
soapAction=
""
></soap:operation>
<input>
<soap:body
use=
"literal"
></soap:body>
</input>
<output>
<soap:body
use=
"literal"
></soap:body>
</output>
</operation>
<operation
name=
"noNameResult"
>
<soap:operation
soapAction=
""
></soap:operation>
<input>
<soap:body
use=
"literal"
></soap:body>
</input>
<output>
<soap:body
use=
"literal"
></soap:body>
</output>
</operation>
<operation
name=
"reset"
>
<soap:operation
soapAction=
""
></soap:operation>
...
...
modules/activiti-cxf/src/test/resources/org/activiti/engine/test/bpmn/servicetask/WebServiceSimplisticTest.testWebResponseKeywordName.bpmn20.xml
0 → 100644
浏览文件 @
190ca662
<?xml version="1.0" encoding="UTF-8"?>
<definitions
id=
"definitions"
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti=
"http://activiti.org/bpmn"
typeLanguage=
"http://www.w3.org/2001/XMLSchema"
expressionLanguage=
"http://java.sun.com/products/jsp/"
targetNamespace=
"org.activiti.engine.test.bpmn.servicetask"
xmlns:tns=
"org.activiti.engine.test.bpmn.servicetask"
xmlns:counter=
"http://webservice.activiti.org/"
>
<!--
XML Schema is used as type language for the model whereas the Java
Unified Expression Language serves as language for Expressions.
-->
<import
importType=
"http://schemas.xmlsoap.org/wsdl/"
location=
"http://localhost:63081/webservicemock?wsdl"
namespace=
"http://webservice.activiti.org/"
/>
<process
id=
"webServiceInvocationWithSimplisticDataFlow"
>
<startEvent
id=
"theStart"
/>
<sequenceFlow
id=
"flow1"
sourceRef=
"theStart"
targetRef=
"webService"
/>
<serviceTask
id=
"webService"
name=
"Web service invocation"
implementation=
"##WebService"
operationRef=
"tns:reservedWordAsNameOperation"
>
<!--
Warning: The following code abuses the syntax of Data Associations
for a radical shortcut.
-->
<dataInputAssociation>
<sourceRef>
PrefixVariable
</sourceRef>
<!-- name of an Activiti variable -->
<targetRef>
prefix
</targetRef>
<!-- name of an element of the input message -->
</dataInputAssociation>
<dataInputAssociation>
<sourceRef>
SuffixVariable
</sourceRef>
<!-- name of an Activiti variable -->
<targetRef>
suffix
</targetRef>
<!-- name of an element of the input message -->
</dataInputAssociation>
<dataOutputAssociation>
<sourceRef>
static
</sourceRef>
<!-- name of an element of the output message -->
<targetRef>
OutputVariable
</targetRef>
<!-- name of an Activiti variable -->
</dataOutputAssociation>
</serviceTask>
<sequenceFlow
id=
"flow2"
sourceRef=
"webService"
targetRef=
"waitState"
/>
<receiveTask
id=
"waitState"
/>
<sequenceFlow
id=
"flow3"
sourceRef=
"waitState"
targetRef=
"theEnd"
/>
<endEvent
id=
"theEnd"
/>
</process>
<itemDefinition
id=
"PrefixVariable"
structureRef=
"string"
/>
<itemDefinition
id=
"prefix"
structureRef=
"string"
/>
<itemDefinition
id=
"SuffixVariable"
structureRef=
"string"
/>
<itemDefinition
id=
"suffix"
structureRef=
"string"
/>
<itemDefinition
id=
"static"
structureRef=
"string"
/>
<itemDefinition
id=
"OutputVariable"
structureRef=
"string"
/>
<!-- Interface: implementationRef = QName of WSDL Port Type -->
<interface
name=
"Counter Interface"
implementationRef=
"counter:Counter"
>
<!-- Operation: implementationRef = QName of WSDL Operation -->
<operation
id=
"reservedWordAsNameOperation"
name=
"reservedWordAsName Operation"
implementationRef=
"counter:reservedWordAsName"
>
<inMessageRef>
tns:reservedWordAsNameRequestMessage
</inMessageRef>
<outMessageRef>
tns:reservedWordAsNameResponseMessage
</outMessageRef>
</operation>
</interface>
<message
id=
"reservedWordAsNameRequestMessage"
itemRef=
"tns:reservedWordAsNameRequestItem"
/>
<message
id=
"reservedWordAsNameResponseMessage"
itemRef=
"tns:reservedWordAsNameResponseItem"
/>
<itemDefinition
id=
"reservedWordAsNameRequestItem"
structureRef=
"counter:reservedWordAsName"
/>
<!-- QName of input element -->
<itemDefinition
id=
"reservedWordAsNameResponseItem"
structureRef=
"counter:reservedWordAsNameResponse"
/>
<!-- QName of output element -->
</definitions>
\ No newline at end of file
modules/activiti-cxf/src/test/resources/org/activiti/engine/test/bpmn/servicetask/WebServiceSimplisticTest.testWebResponseNoName.bpmn20.xml
0 → 100644
浏览文件 @
190ca662
<?xml version="1.0" encoding="UTF-8"?>
<definitions
id=
"definitions"
xmlns=
"http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:activiti=
"http://activiti.org/bpmn"
typeLanguage=
"http://www.w3.org/2001/XMLSchema"
expressionLanguage=
"http://java.sun.com/products/jsp/"
targetNamespace=
"org.activiti.engine.test.bpmn.servicetask"
xmlns:tns=
"org.activiti.engine.test.bpmn.servicetask"
xmlns:counter=
"http://webservice.activiti.org/"
>
<!--
XML Schema is used as type language for the model whereas the Java
Unified Expression Language serves as language for Expressions.
-->
<import
importType=
"http://schemas.xmlsoap.org/wsdl/"
location=
"http://localhost:63081/webservicemock?wsdl"
namespace=
"http://webservice.activiti.org/"
/>
<process
id=
"webServiceInvocationWithSimplisticDataFlow"
>
<startEvent
id=
"theStart"
/>
<sequenceFlow
id=
"flow1"
sourceRef=
"theStart"
targetRef=
"webService"
/>
<serviceTask
id=
"webService"
name=
"Web service invocation"
implementation=
"##WebService"
operationRef=
"tns:noNameResultOperation"
>
<!--
Warning: The following code abuses the syntax of Data Associations
for a radical shortcut.
-->
<dataInputAssociation>
<sourceRef>
PrefixVariable
</sourceRef>
<!-- name of an Activiti variable -->
<targetRef>
prefix
</targetRef>
<!-- name of an element of the input message -->
</dataInputAssociation>
<dataInputAssociation>
<sourceRef>
SuffixVariable
</sourceRef>
<!-- name of an Activiti variable -->
<targetRef>
suffix
</targetRef>
<!-- name of an element of the input message -->
</dataInputAssociation>
<dataOutputAssociation>
<sourceRef>
return
</sourceRef>
<!-- name of an element of the output message -->
<targetRef>
OutputVariable
</targetRef>
<!-- name of an Activiti variable -->
</dataOutputAssociation>
</serviceTask>
<sequenceFlow
id=
"flow2"
sourceRef=
"webService"
targetRef=
"waitState"
/>
<receiveTask
id=
"waitState"
/>
<sequenceFlow
id=
"flow3"
sourceRef=
"waitState"
targetRef=
"theEnd"
/>
<endEvent
id=
"theEnd"
/>
</process>
<itemDefinition
id=
"PrefixVariable"
structureRef=
"string"
/>
<itemDefinition
id=
"prefix"
structureRef=
"string"
/>
<itemDefinition
id=
"SuffixVariable"
structureRef=
"string"
/>
<itemDefinition
id=
"suffix"
structureRef=
"string"
/>
<itemDefinition
id=
"return"
structureRef=
"string"
/>
<itemDefinition
id=
"OutputVariable"
structureRef=
"string"
/>
<!-- Interface: implementationRef = QName of WSDL Port Type -->
<interface
name=
"Counter Interface"
implementationRef=
"counter:Counter"
>
<!-- Operation: implementationRef = QName of WSDL Operation -->
<operation
id=
"noNameResultOperation"
name=
"noNameResult Operation"
implementationRef=
"counter:noNameResult"
>
<inMessageRef>
tns:noNameResultRequestMessage
</inMessageRef>
<outMessageRef>
tns:noNameResultResponseMessage
</outMessageRef>
</operation>
</interface>
<message
id=
"noNameResultRequestMessage"
itemRef=
"tns:noNameResultRequestItem"
/>
<message
id=
"noNameResultResponseMessage"
itemRef=
"tns:noNameResultResponseItem"
/>
<itemDefinition
id=
"noNameResultRequestItem"
structureRef=
"counter:noNameResult"
/>
<!-- QName of input element -->
<itemDefinition
id=
"noNameResultResponseItem"
structureRef=
"counter:noNameResultResponse"
/>
<!-- QName of output element -->
</definitions>
\ No newline at end of file
modules/activiti-cxf/src/test/resources/org/activiti/engine/test/bpmn/servicetask/counter.wsdl
浏览文件 @
190ca662
<?xml version='1.0' encoding='UTF-8'?>
<wsdl:definitions
name=
"Counter"
targetNamespace=
"http://webservice.activiti.org/"
xmlns:ns1=
"http://schemas.xmlsoap.org/soap/http"
xmlns:soap=
"http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns=
"http://webservice.activiti.org/"
xmlns:wsdl=
"http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
>
<wsdl:types>
<xs:schema
attributeFormDefault=
"unqualified"
elementFormDefault=
"unqualified"
targetNamespace=
"http://webservice.activiti.org/"
xmlns:tns=
"http://webservice.activiti.org/"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
>
<xs:schema
attributeFormDefault=
"unqualified"
elementFormDefault=
"unqualified"
targetNamespace=
"http://webservice.activiti.org/"
xmlns:tns=
"http://webservice.activiti.org/"
xmlns:xs=
"http://www.w3.org/2001/XMLSchema"
>
<xs:element
name=
"getCount"
type=
"tns:getCount"
/>
<xs:element
name=
"getCountResponse"
type=
"tns:getCountResponse"
/>
<xs:element
name=
"inc"
type=
"tns:inc"
/>
<xs:element
name=
"incResponse"
type=
"tns:incResponse"
/>
<xs:element
name=
"prettyPrintCount"
type=
"tns:prettyPrintCount"
/>
<xs:element
name=
"prettyPrintCountResponse"
type=
"tns:prettyPrintCountResponse"
/>
<xs:element
name=
"noNameResult"
type=
"tns:noNameResult"
/>
<xs:element
name=
"noNameResultResponse"
type=
"tns:noNameResultResponse"
/>
<xs:element
name=
"reservedWordAsName"
type=
"tns:reservedWordAsName"
/>
<xs:element
name=
"reservedWordAsNameResponse"
type=
"tns:reservedWordAsNameResponse"
/>
<xs:element
name=
"reset"
type=
"tns:reset"
/>
<xs:element
name=
"resetResponse"
type=
"tns:resetResponse"
/>
<xs:element
name=
"setTo"
type=
"tns:setTo"
/>
...
...
@@ -42,6 +48,31 @@
<xs:element
minOccurs=
"0"
name=
"prettyPrint"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"noNameResult"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"prefix"
type=
"xs:string"
/>
<xs:element
minOccurs=
"0"
name=
"suffix"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"noNameResultResponse"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"return"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"reservedWordAsName"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"prefix"
type=
"xs:string"
/>
<xs:element
minOccurs=
"0"
name=
"suffix"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"reservedWordAsNameResponse"
>
<xs:sequence>
<xs:element
minOccurs=
"0"
name=
"static"
type=
"xs:string"
/>
</xs:sequence>
</xs:complexType>
<xs:complexType
name=
"getCount"
>
<xs:sequence
/>
</xs:complexType>
...
...
@@ -63,6 +94,15 @@
<wsdl:message
name=
"prettyPrintCountResponse"
>
<wsdl:part
element=
"tns:prettyPrintCountResponse"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"noNameResultResponse"
>
<wsdl:part
element=
"tns:noNameResultResponse"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"reservedWordAsNameResponse"
>
<wsdl:part
element=
"tns:reservedWordAsNameResponse"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"resetResponse"
>
<wsdl:part
element=
"tns:resetResponse"
name=
"parameters"
>
...
...
@@ -83,6 +123,14 @@
<wsdl:message
name=
"prettyPrintCount"
>
<wsdl:part
element=
"tns:prettyPrintCount"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"noNameResult"
>
<wsdl:part
element=
"tns:noNameResult"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"reservedWordAsName"
>
<wsdl:part
element=
"tns:reservedWordAsName"
name=
"parameters"
>
</wsdl:part>
</wsdl:message>
<wsdl:message
name=
"inc"
>
<wsdl:part
element=
"tns:inc"
name=
"parameters"
>
...
...
@@ -116,6 +164,18 @@
</wsdl:input>
<wsdl:output
message=
"tns:prettyPrintCountResponse"
name=
"prettyPrintCountResponse"
>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"noNameResult"
>
<wsdl:input
message=
"tns:noNameResult"
name=
"noNameResult"
>
</wsdl:input>
<wsdl:output
message=
"tns:noNameResultResponse"
name=
"noNameResultResponse"
>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"reservedWordAsName"
>
<wsdl:input
message=
"tns:reservedWordAsName"
name=
"reservedWordAsName"
>
</wsdl:input>
<wsdl:output
message=
"tns:reservedWordAsNameResponse"
name=
"reservedWordAsNameResponse"
>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"getCount"
>
<wsdl:input
message=
"tns:getCount"
name=
"getCount"
>
...
...
@@ -161,6 +221,25 @@
<wsdl:output
name=
"prettyPrintCountResponse"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"noNameResult"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"noNameResult"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"noNameResultResponse"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"reservedWordAsName"
>
<soap:operation
soapAction=
""
style=
"document"
/>
<wsdl:input
name=
"reservedWordAsName"
>
<soap:body
use=
"literal"
/>
</wsdl:input>
<wsdl:output
name=
"reservedWordAsNameResponse"
>
<soap:body
use=
"literal"
/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation
name=
"getCount"
>
<soap:operation
soapAction=
""
style=
"document"
/>
...
...
@@ -174,7 +253,7 @@
</wsdl:binding>
<wsdl:service
name=
"Counter"
>
<wsdl:port
binding=
"tns:CounterSoapBinding"
name=
"CounterImplPort"
>
<soap:address
location=
"http://localhost:63081/
counter
"
/>
<soap:address
location=
"http://localhost:63081/
webservicemock
"
/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录