Initial version 2.0.0-SNAPHSOT, now includes preview of event manager service and lock service (both within MiscServices
git-svn-id: https://brutex.net/svn/xservices/trunk@201 e7e49efb-446e-492e-b9ec-fcafc1997a86master
parent
5cc829df49
commit
076e78afe2
67
build.gradle
67
build.gradle
|
@ -1,9 +1,73 @@
|
|||
apply plugin: 'war'
|
||||
apply plugin: "maven-publish"
|
||||
apply plugin: "signing"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion = JavaLanguageVersion.of(8)
|
||||
}
|
||||
}
|
||||
|
||||
project.version "2.0.0-SNAPSHOT"
|
||||
group "net.brutex.xservices"
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
maven(MavenPublication) {
|
||||
from components.java
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
|
||||
maven {
|
||||
name = 'LocalRemote'
|
||||
def releasesRepoUrl = 'https://archiva.brutex.net/repository/internal/'
|
||||
def snapshotsRepoUrl = 'https://archiva.brutex.net/repository/snapshots/'
|
||||
url = project.version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
|
||||
allowInsecureProtocol = false
|
||||
credentials {
|
||||
username = mavenuser
|
||||
password = mavenpass
|
||||
}
|
||||
}
|
||||
|
||||
maven {
|
||||
name = 'OSSRH'
|
||||
def releasesRepoUrl = 'https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/'
|
||||
def snapshotsRepoUrl = 'https://s01.oss.sonatype.org/content/repositories/snapshots/'
|
||||
url = project.version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
|
||||
credentials {
|
||||
username = ossrhUsername
|
||||
password = ossrhPassword
|
||||
}
|
||||
}
|
||||
|
||||
maven {
|
||||
name = 'brutexGitea'
|
||||
def releasesRepoUrl = 'https://source.brutex.net/api/packages/brutex/maven'
|
||||
def snapshotsRepoUrl = 'https://source.brutex.net/api/packages/brutex/maven'
|
||||
url = project.version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
|
||||
allowInsecureProtocol = false
|
||||
credentials {
|
||||
username = mavenuser
|
||||
password = mavenpass
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register('createDist', Zip) {Zip t ->
|
||||
archiveBaseName = project.name
|
||||
archiveVersion = version
|
||||
archiveExtension = "zip"
|
||||
destinationDirectory = new File(project.buildDir, "/distribution/")
|
||||
from war.outputs.files
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly "javax.servlet:javax.servlet-api:4.0.1"
|
||||
compileOnly "javax.ws.rs:javax.ws.rs-api:2.1.1"
|
||||
|
@ -13,6 +77,7 @@ dependencies {
|
|||
implementation "commons-net:commons-net:3.9.0"
|
||||
implementation "commons-beanutils:commons-beanutils:1.9.4"
|
||||
implementation "org.apache.httpcomponents:httpclient:4.5.14"
|
||||
implementation "org.apache.httpcomponents:fluent-hc:4.5.14"
|
||||
implementation "commons-io:commons-io:2.11.0"
|
||||
|
||||
implementation "org.apache.ant:ant:1.10.13"
|
||||
|
@ -41,7 +106,7 @@ dependencies {
|
|||
implementation "org.apache.shiro:shiro-root:1.12.0"
|
||||
implementation "org.apache.shiro:shiro-web:1.12.0"
|
||||
|
||||
implementation "org.apache.cxf:cxf:3.2.14"
|
||||
implementation "org.apache.cxf:cxf:3.4.10"
|
||||
implementation "org.apache.cxf:cxf-rt-databinding-aegis:3.2.14"
|
||||
|
||||
runtimeOnly "org.apache.cxf:cxf-rt-transports-http:3.2.14"
|
||||
|
|
|
@ -0,0 +1,339 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns="http://www.eclipse.org/alf/schema/EventBase/1"
|
||||
targetNamespace="http://www.eclipse.org/alf/schema/EventBase/1"
|
||||
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
|
||||
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
|
||||
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
WARNING: PRELIMINARY VERSION SUBJECT TO CHANGE
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Copyright Notice The material in this document is Copyright
|
||||
(c) Serena Software, Inc. and others, 2005, 2006 Terms and
|
||||
Conditions: The Eclipse Foundation makes available all
|
||||
content in this document ("Content"). Unless otherwise
|
||||
indicated below, the Content is provided to you under the
|
||||
terms and conditions of the Eclipse Public License Version
|
||||
1.0 ("EPL"). A copy of the EPL is available at
|
||||
http://www.eclipse.org/legal/epl-v10.html. For purposes of
|
||||
the EPL, "Program" will mean the Content. If you did not
|
||||
receive this Content directly from the Eclipse Foundation,
|
||||
the Content is being redistributed by another party
|
||||
("Redistributor") and different terms and conditions may
|
||||
apply to your use of any object code in the Content. Check
|
||||
the Redistributor's license that was provided with the
|
||||
Content. If you did not receive any such license, contact
|
||||
the Redistributor. Unless otherwise indicated below, the
|
||||
terms and conditions of the EPL still apply to the Content.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<!-- Begin EventBaseTypes -->
|
||||
<xs:complexType name="EventBaseType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
EventBaseType is a container for that portion of an ALF
|
||||
Event that is generally set by the Tool that raises the
|
||||
event.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="EventId" type="EventIdType"/>
|
||||
<xs:element name="Timestamp" type="TimestampType"/>
|
||||
<xs:element name="EventType" type="EventTypeType"/>
|
||||
<xs:element name="ObjectType" type="ObjectTypeType"/>
|
||||
<xs:element name="ObjectId" type="ObjectIdType"/>
|
||||
<xs:element name="Source" type="SourceType"/>
|
||||
<xs:element name="User" type="CredentialsType"/>
|
||||
<xs:element name="EventControl" type="EmBaseType" minOccurs="0"/>
|
||||
<xs:element name="BaseExtension" type="BaseExtensionType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="EmBaseType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
EventControlType is a container for that portion of an
|
||||
ALF Event that is generally set by the ALF EventManager.
|
||||
In some cases, ALF compliant tools may set some fields,
|
||||
in particular when the event is a result of an ALF
|
||||
service call to that tool from a ServiceFlow.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="EmEventId" type="xs:string"/>
|
||||
<xs:element name="EmTimestamp" type="TimestampType"/>
|
||||
<xs:element name="PrecedingEmEventId" type="EventIdType"/>
|
||||
<xs:element name="ApplicationName" type="ApplicationNameType"/>
|
||||
<xs:element name="EventMatchName" type="EventMatchNameType"/>
|
||||
<xs:element name="ServiceFlowName" type="ServiceFlowNameType"/>
|
||||
<xs:element name="ServiceFlowId" type="ServiceFlowIdType"/>
|
||||
<xs:element name="Callback" type="xs:boolean"/>
|
||||
<xs:element name="Environment" type="EnvironmentType"/>
|
||||
<xs:element name="EmUser" type="CredentialsType"/>
|
||||
<xs:element name="EmExtension" type="EmExtensionType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute/>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="EventIdType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A UUID that uniquely identifies the Event instance.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="36"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ServiceFlowIdType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A UUID that uniquely identifies the ServiceFlow
|
||||
instance.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:maxLength value="36"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="TimestampType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The date and timestamp when the EventManager received
|
||||
the Event. This element may be left empty by the event
|
||||
emitter, in which case, the Event Manager will supply a
|
||||
value.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:dateTime"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="EventTypeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A string indicating the type of event. EventType
|
||||
designates the verb. That is what action happened to the
|
||||
Objects that triggered the event.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<!-- ============= Object that triggered the event ============= -->
|
||||
<xs:simpleType name="ObjectIdType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
An ObjectId identifies the entity or relationship that
|
||||
changed within a tool. The identifier must be unique for
|
||||
a particular instance of the source tool. The format of
|
||||
this element will not be standardized by ALF. The
|
||||
primary purpose is to allow subsequent ServiceFlows to
|
||||
uniquely identify (and perhaps access) the object that
|
||||
triggered the event.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ObjectTypeType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The type of entity involved. Note that the word entity
|
||||
is taken in its broadest sense, referring to whatever
|
||||
artifact a tool was operating on. For example, for a
|
||||
data modeling tool, an E-R relationship is a type of
|
||||
entity (i.e., and ObjectType) to ALF.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<!-- ============= The source (i.e, tool or product) that emitted the event ============= -->
|
||||
<xs:complexType name="SourceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A Source element is a container type that describes the
|
||||
source of the event. ProductCallbackURI is optional for
|
||||
tools that don't provide a listener to accept the
|
||||
callback from a tool or serviceflow at a later time.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:element name="Product" type="ProductType"/>
|
||||
<xs:element name="ProductVersion" type="ProductVersionType"/>
|
||||
<xs:element name="ProductInstance" type="ProductInstanceType"/>
|
||||
<xs:element name="ProductCallbackURI" type="ProductCallbackURIType" minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="ProductType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A descriptive name for the tool (i.e., program) that
|
||||
emitted the Event. Note that this is a datatype for a
|
||||
Product element.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ProductCallbackURIType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The web service endpoint for tools that support
|
||||
callbacks from ServiceFlows for additional information.
|
||||
The element content is optional for transient tools that
|
||||
may not be running at a later time, and so cannot accept
|
||||
a callback. Constantly running (server) tools that
|
||||
support callbacks should supply a URI.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:anyURI"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ProductInstanceType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A unique string identifying the instance of the tool.
|
||||
This is useful when there may be multiple instances of a
|
||||
product working within an instance of ALF.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ProductVersionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The release version of the product, such as 5.06
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<!-- ====== User information identifying the security context of the request ======= -->
|
||||
<xs:complexType name="CredentialsType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
A structure to hold security authentication-relevant data.
|
||||
If present the data within may be encrypted.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute/>
|
||||
</xs:complexType>
|
||||
<xs:simpleType name="ApplicationNameType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The name of the ALF application to which this event
|
||||
belongs. Depending on the emitting tool, events may or
|
||||
may not be associated with an ALF application. If the
|
||||
emitting tool has the information available then it can
|
||||
provide the ALF ApplicationName as an additional
|
||||
information to distinguish the event.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="EventMatchNameType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The name of the event match within the ALF Application
|
||||
that matches this event. This fields is set by the Event Manager
|
||||
when it dispatches the event.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ServiceFlowNameType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The name of the service flow withing the event match that
|
||||
matches this event. This field is set by the Event Manager
|
||||
when it dispatches the event.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="EnvironmentType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
The name of the environment in which this event is being
|
||||
raised. This element will be set by the ALF Event
|
||||
manager from its installation configuration.
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:restriction base="xs:string"/>
|
||||
</xs:simpleType>
|
||||
<xs:simpleType name="ALFSchemaVersionType">
|
||||
<xs:restriction base="xs:string">
|
||||
<xs:enumeration value="1.0"/>
|
||||
</xs:restriction>
|
||||
</xs:simpleType>
|
||||
<xs:complexType name="BaseExtensionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Place holder type for future extensions of
|
||||
BaseExtensionType
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:any namespace="targetnamespace" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="EmExtensionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Place holder type for future extensions of EmBaseType
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:any namespace="targetnamespace" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="DetailExtensionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Place holder type for vocabulary based Event payload "details"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="CustomExtensionType">
|
||||
<xs:annotation>
|
||||
<xs:documentation>
|
||||
Place holder type for custom Event payload "extensions"
|
||||
</xs:documentation>
|
||||
</xs:annotation>
|
||||
<xs:sequence>
|
||||
<xs:any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute/>
|
||||
</xs:complexType>
|
||||
<!-- End EventBaseTypes -->
|
||||
<!-- BEGIN ALFEvent -->
|
||||
<xs:complexType name="ALFEventType">
|
||||
<xs:sequence>
|
||||
<xs:element name="Base" type="EventBaseType"/>
|
||||
<xs:element name="Detail" type="DetailExtensionType" minOccurs="0"/>
|
||||
<xs:element name="Extension" type="CustomExtensionType" minOccurs="0"/>
|
||||
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" type="ALFSchemaVersionType" default="1.0"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="ALFEventResponseType">
|
||||
<xs:sequence>
|
||||
<xs:any minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="ALFEventWithReplyResponseType">
|
||||
<xs:sequence>
|
||||
<xs:any minOccurs="0"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<!-- END ALFEvent -->
|
||||
<!-- Event Notice -->
|
||||
<!-- Element declaration for creating documents -->
|
||||
<xs:element name="EventNotice" type="ALFEventType"/>
|
||||
</xs:schema>
|
|
@ -0,0 +1,135 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<wsdl:definitions xmlns:evt="http://www.eclipse.org/alf/schema/EventBase/1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.eclipse.org/alf/schema/EventBase/1" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ALFEventManager" targetNamespace="http://www.eclipse.org/alf/schema/EventBase/1">
|
||||
|
||||
<wsdl:documentation>
|
||||
WARNING: PRELIMINARY VERSION SUBJECT TO CHANGE
|
||||
|
||||
Copyright Notice
|
||||
The material in this document is Copyright (c) Serena Software, Inc. and others, 2005, 2006
|
||||
Terms and Conditions:
|
||||
The Eclipse Foundation makes available all content in this document ("Content").
|
||||
Unless otherwise indicated below, the Content is provided to you under the terms
|
||||
and conditions of the Eclipse Public License Version 1.0 ("EPL").
|
||||
A copy of the EPL is available at http://www.eclipse.org/legal/epl-v10.html.
|
||||
For purposes of the EPL, "Program" will mean the Content.
|
||||
If you did not receive this Content directly from the Eclipse Foundation, the
|
||||
Content is being redistributed by another party ("Redistributor") and different
|
||||
terms and conditions may apply to your use of any object code in the Content.
|
||||
Check the Redistributor's license that was provided with the Content.
|
||||
If you did not receive any such license, contact the Redistributor.
|
||||
Unless otherwise indicated below, the terms and conditions of the EPL still apply to the Content.
|
||||
</wsdl:documentation>
|
||||
|
||||
<!-- ALF EventManager WSDL -->
|
||||
<wsdl:types>
|
||||
<xsd:schema xmlns="http://www.eclipse.org/alf/schema/EventBase/1" elementFormDefault="qualified" targetNamespace="http://www.eclipse.org/alf/schema/EventBase/1">
|
||||
<xsd:include schemaLocation="ALFEventBase_1.xsd"/>
|
||||
</xsd:schema>
|
||||
</wsdl:types>
|
||||
|
||||
<wsdl:message name="EventNotice">
|
||||
<wsdl:part type="evt:ALFEventType" name="EventNotice"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EventNoticeResponse">
|
||||
<wsdl:part type="evt:ALFEventResponseType" name="EventNoticeResponse"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EventNoticeWithReply">
|
||||
<wsdl:part type="evt:ALFEventType" name="EventNoticeWithReply"/>
|
||||
</wsdl:message>
|
||||
|
||||
<wsdl:message name="EventNoticeWithReplyResponse">
|
||||
<wsdl:part type="evt:ALFEventWithReplyResponseType" name="EventNoticeWithReplyResponse"/>
|
||||
</wsdl:message>
|
||||
|
||||
|
||||
<wsdl:portType name="ALFEventManager">
|
||||
<wsdl:operation name="EventNotice">
|
||||
<wsdl:input message="tns:EventNotice"/>
|
||||
<wsdl:output message="tns:EventNoticeResponse"/>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="EventNoticeWithReply">
|
||||
<wsdl:input message="tns:EventNoticeWithReply"/>
|
||||
<wsdl:output message="tns:EventNoticeWithReplyResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:portType name="ALFServiceFlow">
|
||||
<wsdl:operation name="TEMPEventNotice">
|
||||
<wsdl:input message="tns:EventNotice"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:portType name="ALFServiceFlowWithReply">
|
||||
<wsdl:operation name="EventNotice">
|
||||
<wsdl:input message="tns:EventNotice"/>
|
||||
<wsdl:output message="tns:EventNoticeWithReplyResponse"/>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
|
||||
<wsdl:binding name="ALFEventManagerSOAP" type="tns:ALFEventManager">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="EventNotice">
|
||||
<soap:operation soapAction=""/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="EventNoticeWithReply">
|
||||
<soap:operation soapAction=""/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:binding name="ALFServiceFlowSOAP" type="tns:ALFServiceFlow">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="TEMPEventNotice">
|
||||
<soap:operation soapAction=""/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
</wsdl:input>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<wsdl:binding name="ALFServiceFlowWithReplySOAP" type="tns:ALFServiceFlowWithReply">
|
||||
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="EventNotice">
|
||||
<soap:operation soapAction=""/>
|
||||
<wsdl:input>
|
||||
<soap:body use="literal" namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output>
|
||||
<soap:body use="literal" namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
|
||||
<!-- Example services -->
|
||||
<wsdl:service name="ALFEventManager">
|
||||
<wsdl:port binding="tns:ALFEventManagerSOAP" name="ALFEventManagerSOAP">
|
||||
<soap:address location="http://localhost:8080/ALFEventManager/services/ALFEventManagerSOAP"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
<wsdl:service name="ALFServiceFlow">
|
||||
<wsdl:port binding="tns:ALFServiceFlowSOAP" name="ALFServiceFlowSOAP">
|
||||
<soap:address location="http://localhost:8080/ALFServiceFlow/services/ALFServiceFlowSOAP"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
<wsdl:service name="ALFServiceFlowWithReply">
|
||||
<wsdl:port binding="tns:ALFServiceFlowWithReplySOAP" name="ALFServiceFlowWithReplySOAP">
|
||||
<soap:address location="http://localhost:8080/ALFServiceFlow/services/ALFServiceFlowWithReplySOAP"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
|
||||
</wsdl:definitions>
|
|
@ -0,0 +1,62 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>Java-Klasse für ALFEventResponseType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="ALFEventResponseType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <any minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "ALFEventResponseType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"any"
|
||||
})
|
||||
public class ALFEventResponseType {
|
||||
|
||||
@XmlAnyElement(lax = true)
|
||||
protected Object any;
|
||||
|
||||
/**
|
||||
* Ruft den Wert der any-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Object }
|
||||
*
|
||||
*/
|
||||
public Object getAny() {
|
||||
return any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der any-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Object }
|
||||
*
|
||||
*/
|
||||
public void setAny(Object value) {
|
||||
this.any = value;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,188 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
||||
/**
|
||||
* <p>Java-Klasse für ALFEventType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="ALFEventType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="Base" type="{http://www.eclipse.org/alf/schema/EventBase/1}EventBaseType"/>
|
||||
* <element name="Detail" type="{http://www.eclipse.org/alf/schema/EventBase/1}DetailExtensionType" minOccurs="0"/>
|
||||
* <element name="Extension" type="{http://www.eclipse.org/alf/schema/EventBase/1}CustomExtensionType" minOccurs="0"/>
|
||||
* <any processContents='lax' namespace='##other' maxOccurs="unbounded" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* <attribute name="version" type="{http://www.eclipse.org/alf/schema/EventBase/1}ALFSchemaVersionType" default="1.0" />
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "ALFEventType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"base",
|
||||
"detail",
|
||||
"extension",
|
||||
"any"
|
||||
})
|
||||
public class ALFEventType {
|
||||
|
||||
@XmlElement(name = "Base", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected EventBaseType base;
|
||||
@XmlElement(name = "Detail", namespace = "http://www.eclipse.org/alf/schema/EventBase/1")
|
||||
protected DetailExtensionType detail;
|
||||
@XmlElement(name = "Extension", namespace = "http://www.eclipse.org/alf/schema/EventBase/1")
|
||||
protected CustomExtensionType extension;
|
||||
@XmlAnyElement(lax = true)
|
||||
protected List<Object> any;
|
||||
@XmlAttribute(name = "version")
|
||||
protected String version;
|
||||
|
||||
/**
|
||||
* Ruft den Wert der base-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link EventBaseType }
|
||||
*
|
||||
*/
|
||||
public EventBaseType getBase() {
|
||||
return base;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der base-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link EventBaseType }
|
||||
*
|
||||
*/
|
||||
public void setBase(EventBaseType value) {
|
||||
this.base = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der detail-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link DetailExtensionType }
|
||||
*
|
||||
*/
|
||||
public DetailExtensionType getDetail() {
|
||||
return detail;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der detail-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link DetailExtensionType }
|
||||
*
|
||||
*/
|
||||
public void setDetail(DetailExtensionType value) {
|
||||
this.detail = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der extension-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link CustomExtensionType }
|
||||
*
|
||||
*/
|
||||
public CustomExtensionType getExtension() {
|
||||
return extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der extension-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link CustomExtensionType }
|
||||
*
|
||||
*/
|
||||
public void setExtension(CustomExtensionType value) {
|
||||
this.extension = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the value of the any property.
|
||||
*
|
||||
* <p>
|
||||
* This accessor method returns a reference to the live list,
|
||||
* not a snapshot. Therefore any modification you make to the
|
||||
* returned list will be present inside the JAXB object.
|
||||
* This is why there is not a <CODE>set</CODE> method for the any property.
|
||||
*
|
||||
* <p>
|
||||
* For example, to add a new item, do as follows:
|
||||
* <pre>
|
||||
* getAny().add(newItem);
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* Objects of the following type(s) are allowed in the list
|
||||
* {@link Object }
|
||||
* {@link Element }
|
||||
*
|
||||
*
|
||||
*/
|
||||
public List<Object> getAny() {
|
||||
if (any == null) {
|
||||
any = new ArrayList<Object>();
|
||||
}
|
||||
return this.any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der version-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getVersion() {
|
||||
if (version == null) {
|
||||
return "1.0";
|
||||
} else {
|
||||
return version;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der version-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setVersion(String value) {
|
||||
this.version = value;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>Java-Klasse für ALFEventWithReplyResponseType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="ALFEventWithReplyResponseType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <any minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "ALFEventWithReplyResponseType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"any"
|
||||
})
|
||||
public class ALFEventWithReplyResponseType {
|
||||
|
||||
@XmlAnyElement(lax = true)
|
||||
protected Object any;
|
||||
|
||||
/**
|
||||
* Ruft den Wert der any-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Object }
|
||||
*
|
||||
*/
|
||||
public Object getAny() {
|
||||
return any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der any-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Object }
|
||||
*
|
||||
*/
|
||||
public void setAny(Object value) {
|
||||
this.any = value;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Place holder type for future extensions of
|
||||
* BaseExtensionType
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für BaseExtensionType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="BaseExtensionType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <any namespace='targetnamespace' maxOccurs="unbounded"/>
|
||||
* </sequence>
|
||||
* <anyAttribute/>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "BaseExtensionType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"any"
|
||||
})
|
||||
public class BaseExtensionType {
|
||||
|
||||
@XmlAnyElement(lax = true)
|
||||
protected List<Object> any;
|
||||
@XmlAnyAttribute
|
||||
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
|
||||
|
||||
/**
|
||||
* Gets the value of the any property.
|
||||
*
|
||||
* <p>
|
||||
* This accessor method returns a reference to the live list,
|
||||
* not a snapshot. Therefore any modification you make to the
|
||||
* returned list will be present inside the JAXB object.
|
||||
* This is why there is not a <CODE>set</CODE> method for the any property.
|
||||
*
|
||||
* <p>
|
||||
* For example, to add a new item, do as follows:
|
||||
* <pre>
|
||||
* getAny().add(newItem);
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* Objects of the following type(s) are allowed in the list
|
||||
* {@link Object }
|
||||
*
|
||||
*
|
||||
*/
|
||||
public List<Object> getAny() {
|
||||
if (any == null) {
|
||||
any = new ArrayList<Object>();
|
||||
}
|
||||
return this.any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a map that contains attributes that aren't bound to any typed property on this class.
|
||||
*
|
||||
* <p>
|
||||
* the map is keyed by the name of the attribute and
|
||||
* the value is the string value of the attribute.
|
||||
*
|
||||
* the map returned by this method is live, and you can add new attribute
|
||||
* by updating the map directly. Because of this design, there's no setter.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* always non-null
|
||||
*/
|
||||
public Map<QName, String> getOtherAttributes() {
|
||||
return otherAttributes;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.namespace.QName;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* A structure to hold security authentication-relevant data.
|
||||
* If present the data within may be encrypted.
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für CredentialsType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="CredentialsType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <any processContents='lax' maxOccurs="unbounded" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* <anyAttribute/>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "CredentialsType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"any"
|
||||
})
|
||||
public class CredentialsType {
|
||||
|
||||
@XmlAnyElement(lax = true)
|
||||
protected List<Object> any;
|
||||
@XmlAnyAttribute
|
||||
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
|
||||
|
||||
/**
|
||||
* Gets the value of the any property.
|
||||
*
|
||||
* <p>
|
||||
* This accessor method returns a reference to the live list,
|
||||
* not a snapshot. Therefore any modification you make to the
|
||||
* returned list will be present inside the JAXB object.
|
||||
* This is why there is not a <CODE>set</CODE> method for the any property.
|
||||
*
|
||||
* <p>
|
||||
* For example, to add a new item, do as follows:
|
||||
* <pre>
|
||||
* getAny().add(newItem);
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* Objects of the following type(s) are allowed in the list
|
||||
* {@link Object }
|
||||
* {@link Element }
|
||||
*
|
||||
*
|
||||
*/
|
||||
public List<Object> getAny() {
|
||||
if (any == null) {
|
||||
any = new ArrayList<Object>();
|
||||
}
|
||||
return this.any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a map that contains attributes that aren't bound to any typed property on this class.
|
||||
*
|
||||
* <p>
|
||||
* the map is keyed by the name of the attribute and
|
||||
* the value is the string value of the attribute.
|
||||
*
|
||||
* the map returned by this method is live, and you can add new attribute
|
||||
* by updating the map directly. Because of this design, there's no setter.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* always non-null
|
||||
*/
|
||||
public Map<QName, String> getOtherAttributes() {
|
||||
return otherAttributes;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.namespace.QName;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Place holder type for custom Event payload "extensions"
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für CustomExtensionType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="CustomExtensionType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <any processContents='lax' namespace='##other' maxOccurs="unbounded"/>
|
||||
* </sequence>
|
||||
* <anyAttribute/>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "CustomExtensionType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"any"
|
||||
})
|
||||
public class CustomExtensionType {
|
||||
|
||||
@XmlAnyElement(lax = true)
|
||||
protected List<Object> any;
|
||||
@XmlAnyAttribute
|
||||
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
|
||||
|
||||
/**
|
||||
* Gets the value of the any property.
|
||||
*
|
||||
* <p>
|
||||
* This accessor method returns a reference to the live list,
|
||||
* not a snapshot. Therefore any modification you make to the
|
||||
* returned list will be present inside the JAXB object.
|
||||
* This is why there is not a <CODE>set</CODE> method for the any property.
|
||||
*
|
||||
* <p>
|
||||
* For example, to add a new item, do as follows:
|
||||
* <pre>
|
||||
* getAny().add(newItem);
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* Objects of the following type(s) are allowed in the list
|
||||
* {@link Object }
|
||||
* {@link Element }
|
||||
*
|
||||
*
|
||||
*/
|
||||
public List<Object> getAny() {
|
||||
if (any == null) {
|
||||
any = new ArrayList<Object>();
|
||||
}
|
||||
return this.any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a map that contains attributes that aren't bound to any typed property on this class.
|
||||
*
|
||||
* <p>
|
||||
* the map is keyed by the name of the attribute and
|
||||
* the value is the string value of the attribute.
|
||||
*
|
||||
* the map returned by this method is live, and you can add new attribute
|
||||
* by updating the map directly. Because of this design, there's no setter.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* always non-null
|
||||
*/
|
||||
public Map<QName, String> getOtherAttributes() {
|
||||
return otherAttributes;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,100 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.namespace.QName;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Place holder type for vocabulary based Event payload "details"
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für DetailExtensionType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="DetailExtensionType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <any processContents='lax' namespace='##other' maxOccurs="unbounded"/>
|
||||
* </sequence>
|
||||
* <anyAttribute/>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "DetailExtensionType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"any"
|
||||
})
|
||||
public class DetailExtensionType {
|
||||
|
||||
@XmlAnyElement(lax = true)
|
||||
protected List<Object> any;
|
||||
@XmlAnyAttribute
|
||||
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
|
||||
|
||||
/**
|
||||
* Gets the value of the any property.
|
||||
*
|
||||
* <p>
|
||||
* This accessor method returns a reference to the live list,
|
||||
* not a snapshot. Therefore any modification you make to the
|
||||
* returned list will be present inside the JAXB object.
|
||||
* This is why there is not a <CODE>set</CODE> method for the any property.
|
||||
*
|
||||
* <p>
|
||||
* For example, to add a new item, do as follows:
|
||||
* <pre>
|
||||
* getAny().add(newItem);
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* Objects of the following type(s) are allowed in the list
|
||||
* {@link Object }
|
||||
* {@link Element }
|
||||
*
|
||||
*
|
||||
*/
|
||||
public List<Object> getAny() {
|
||||
if (any == null) {
|
||||
any = new ArrayList<Object>();
|
||||
}
|
||||
return this.any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a map that contains attributes that aren't bound to any typed property on this class.
|
||||
*
|
||||
* <p>
|
||||
* the map is keyed by the name of the attribute and
|
||||
* the value is the string value of the attribute.
|
||||
*
|
||||
* the map returned by this method is live, and you can add new attribute
|
||||
* by updating the map directly. Because of this design, there's no setter.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* always non-null
|
||||
*/
|
||||
public Map<QName, String> getOtherAttributes() {
|
||||
return otherAttributes;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,370 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlSchemaType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.datatype.XMLGregorianCalendar;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* EventControlType is a container for that portion of an
|
||||
* ALF Event that is generally set by the ALF EventManager.
|
||||
* In some cases, ALF compliant tools may set some fields,
|
||||
* in particular when the event is a result of an ALF
|
||||
* service call to that tool from a ServiceFlow.
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für EmBaseType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="EmBaseType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="EmEventId" type="{http://www.w3.org/2001/XMLSchema}string"/>
|
||||
* <element name="EmTimestamp" type="{http://www.eclipse.org/alf/schema/EventBase/1}TimestampType"/>
|
||||
* <element name="PrecedingEmEventId" type="{http://www.eclipse.org/alf/schema/EventBase/1}EventIdType"/>
|
||||
* <element name="ApplicationName" type="{http://www.eclipse.org/alf/schema/EventBase/1}ApplicationNameType"/>
|
||||
* <element name="EventMatchName" type="{http://www.eclipse.org/alf/schema/EventBase/1}EventMatchNameType"/>
|
||||
* <element name="ServiceFlowName" type="{http://www.eclipse.org/alf/schema/EventBase/1}ServiceFlowNameType"/>
|
||||
* <element name="ServiceFlowId" type="{http://www.eclipse.org/alf/schema/EventBase/1}ServiceFlowIdType"/>
|
||||
* <element name="Callback" type="{http://www.w3.org/2001/XMLSchema}boolean"/>
|
||||
* <element name="Environment" type="{http://www.eclipse.org/alf/schema/EventBase/1}EnvironmentType"/>
|
||||
* <element name="EmUser" type="{http://www.eclipse.org/alf/schema/EventBase/1}CredentialsType"/>
|
||||
* <element name="EmExtension" type="{http://www.eclipse.org/alf/schema/EventBase/1}EmExtensionType" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* <anyAttribute/>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "EmBaseType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"emEventId",
|
||||
"emTimestamp",
|
||||
"precedingEmEventId",
|
||||
"applicationName",
|
||||
"eventMatchName",
|
||||
"serviceFlowName",
|
||||
"serviceFlowId",
|
||||
"callback",
|
||||
"environment",
|
||||
"emUser",
|
||||
"emExtension"
|
||||
})
|
||||
public class EmBaseType {
|
||||
|
||||
@XmlElement(name = "EmEventId", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String emEventId;
|
||||
@XmlElement(name = "EmTimestamp", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
@XmlSchemaType(name = "dateTime")
|
||||
protected XMLGregorianCalendar emTimestamp;
|
||||
@XmlElement(name = "PrecedingEmEventId", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String precedingEmEventId;
|
||||
@XmlElement(name = "ApplicationName", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String applicationName;
|
||||
@XmlElement(name = "EventMatchName", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String eventMatchName;
|
||||
@XmlElement(name = "ServiceFlowName", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String serviceFlowName;
|
||||
@XmlElement(name = "ServiceFlowId", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String serviceFlowId;
|
||||
@XmlElement(name = "Callback", namespace = "http://www.eclipse.org/alf/schema/EventBase/1")
|
||||
protected boolean callback;
|
||||
@XmlElement(name = "Environment", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String environment;
|
||||
@XmlElement(name = "EmUser", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected CredentialsType emUser;
|
||||
@XmlElement(name = "EmExtension", namespace = "http://www.eclipse.org/alf/schema/EventBase/1")
|
||||
protected EmExtensionType emExtension;
|
||||
@XmlAnyAttribute
|
||||
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
|
||||
|
||||
/**
|
||||
* Ruft den Wert der emEventId-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getEmEventId() {
|
||||
return emEventId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der emEventId-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setEmEventId(String value) {
|
||||
this.emEventId = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der emTimestamp-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link XMLGregorianCalendar }
|
||||
*
|
||||
*/
|
||||
public XMLGregorianCalendar getEmTimestamp() {
|
||||
return emTimestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der emTimestamp-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link XMLGregorianCalendar }
|
||||
*
|
||||
*/
|
||||
public void setEmTimestamp(XMLGregorianCalendar value) {
|
||||
this.emTimestamp = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der precedingEmEventId-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getPrecedingEmEventId() {
|
||||
return precedingEmEventId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der precedingEmEventId-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setPrecedingEmEventId(String value) {
|
||||
this.precedingEmEventId = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der applicationName-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getApplicationName() {
|
||||
return applicationName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der applicationName-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setApplicationName(String value) {
|
||||
this.applicationName = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der eventMatchName-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getEventMatchName() {
|
||||
return eventMatchName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der eventMatchName-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setEventMatchName(String value) {
|
||||
this.eventMatchName = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der serviceFlowName-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getServiceFlowName() {
|
||||
return serviceFlowName;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der serviceFlowName-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setServiceFlowName(String value) {
|
||||
this.serviceFlowName = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der serviceFlowId-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getServiceFlowId() {
|
||||
return serviceFlowId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der serviceFlowId-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setServiceFlowId(String value) {
|
||||
this.serviceFlowId = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der callback-Eigenschaft ab.
|
||||
*
|
||||
*/
|
||||
public boolean isCallback() {
|
||||
return callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der callback-Eigenschaft fest.
|
||||
*
|
||||
*/
|
||||
public void setCallback(boolean value) {
|
||||
this.callback = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der environment-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getEnvironment() {
|
||||
return environment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der environment-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setEnvironment(String value) {
|
||||
this.environment = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der emUser-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link CredentialsType }
|
||||
*
|
||||
*/
|
||||
public CredentialsType getEmUser() {
|
||||
return emUser;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der emUser-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link CredentialsType }
|
||||
*
|
||||
*/
|
||||
public void setEmUser(CredentialsType value) {
|
||||
this.emUser = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der emExtension-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link EmExtensionType }
|
||||
*
|
||||
*/
|
||||
public EmExtensionType getEmExtension() {
|
||||
return emExtension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der emExtension-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link EmExtensionType }
|
||||
*
|
||||
*/
|
||||
public void setEmExtension(EmExtensionType value) {
|
||||
this.emExtension = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a map that contains attributes that aren't bound to any typed property on this class.
|
||||
*
|
||||
* <p>
|
||||
* the map is keyed by the name of the attribute and
|
||||
* the value is the string value of the attribute.
|
||||
*
|
||||
* the map returned by this method is live, and you can add new attribute
|
||||
* by updating the map directly. Because of this design, there's no setter.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* always non-null
|
||||
*/
|
||||
public Map<QName, String> getOtherAttributes() {
|
||||
return otherAttributes;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,98 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlAnyElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Place holder type for future extensions of EmBaseType
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für EmExtensionType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="EmExtensionType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <any namespace='targetnamespace' maxOccurs="unbounded"/>
|
||||
* </sequence>
|
||||
* <anyAttribute/>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "EmExtensionType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"any"
|
||||
})
|
||||
public class EmExtensionType {
|
||||
|
||||
@XmlAnyElement(lax = true)
|
||||
protected List<Object> any;
|
||||
@XmlAnyAttribute
|
||||
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
|
||||
|
||||
/**
|
||||
* Gets the value of the any property.
|
||||
*
|
||||
* <p>
|
||||
* This accessor method returns a reference to the live list,
|
||||
* not a snapshot. Therefore any modification you make to the
|
||||
* returned list will be present inside the JAXB object.
|
||||
* This is why there is not a <CODE>set</CODE> method for the any property.
|
||||
*
|
||||
* <p>
|
||||
* For example, to add a new item, do as follows:
|
||||
* <pre>
|
||||
* getAny().add(newItem);
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* Objects of the following type(s) are allowed in the list
|
||||
* {@link Object }
|
||||
*
|
||||
*
|
||||
*/
|
||||
public List<Object> getAny() {
|
||||
if (any == null) {
|
||||
any = new ArrayList<Object>();
|
||||
}
|
||||
return this.any;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a map that contains attributes that aren't bound to any typed property on this class.
|
||||
*
|
||||
* <p>
|
||||
* the map is keyed by the name of the attribute and
|
||||
* the value is the string value of the attribute.
|
||||
*
|
||||
* the map returned by this method is live, and you can add new attribute
|
||||
* by updating the map directly. Because of this design, there's no setter.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* always non-null
|
||||
*/
|
||||
public Map<QName, String> getOtherAttributes() {
|
||||
return otherAttributes;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,320 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlAnyAttribute;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlSchemaType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
import javax.xml.datatype.XMLGregorianCalendar;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* EventBaseType is a container for that portion of an ALF
|
||||
* Event that is generally set by the Tool that raises the
|
||||
* event.
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für EventBaseType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="EventBaseType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="EventId" type="{http://www.eclipse.org/alf/schema/EventBase/1}EventIdType"/>
|
||||
* <element name="Timestamp" type="{http://www.eclipse.org/alf/schema/EventBase/1}TimestampType"/>
|
||||
* <element name="EventType" type="{http://www.eclipse.org/alf/schema/EventBase/1}EventTypeType"/>
|
||||
* <element name="ObjectType" type="{http://www.eclipse.org/alf/schema/EventBase/1}ObjectTypeType"/>
|
||||
* <element name="ObjectId" type="{http://www.eclipse.org/alf/schema/EventBase/1}ObjectIdType"/>
|
||||
* <element name="Source" type="{http://www.eclipse.org/alf/schema/EventBase/1}SourceType"/>
|
||||
* <element name="User" type="{http://www.eclipse.org/alf/schema/EventBase/1}CredentialsType"/>
|
||||
* <element name="EventControl" type="{http://www.eclipse.org/alf/schema/EventBase/1}EmBaseType" minOccurs="0"/>
|
||||
* <element name="BaseExtension" type="{http://www.eclipse.org/alf/schema/EventBase/1}BaseExtensionType" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* <anyAttribute/>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "EventBaseType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"eventId",
|
||||
"timestamp",
|
||||
"eventType",
|
||||
"objectType",
|
||||
"objectId",
|
||||
"source",
|
||||
"user",
|
||||
"eventControl",
|
||||
"baseExtension"
|
||||
})
|
||||
public class EventBaseType {
|
||||
|
||||
@XmlElement(name = "EventId", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String eventId;
|
||||
@XmlElement(name = "Timestamp", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
@XmlSchemaType(name = "dateTime")
|
||||
protected XMLGregorianCalendar timestamp;
|
||||
@XmlElement(name = "EventType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String eventType;
|
||||
@XmlElement(name = "ObjectType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String objectType;
|
||||
@XmlElement(name = "ObjectId", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String objectId;
|
||||
@XmlElement(name = "Source", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected SourceType source;
|
||||
@XmlElement(name = "User", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected CredentialsType user;
|
||||
@XmlElement(name = "EventControl", namespace = "http://www.eclipse.org/alf/schema/EventBase/1")
|
||||
protected EmBaseType eventControl;
|
||||
@XmlElement(name = "BaseExtension", namespace = "http://www.eclipse.org/alf/schema/EventBase/1")
|
||||
protected BaseExtensionType baseExtension;
|
||||
@XmlAnyAttribute
|
||||
private Map<QName, String> otherAttributes = new HashMap<QName, String>();
|
||||
|
||||
/**
|
||||
* Ruft den Wert der eventId-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getEventId() {
|
||||
return eventId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der eventId-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setEventId(String value) {
|
||||
this.eventId = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der timestamp-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link XMLGregorianCalendar }
|
||||
*
|
||||
*/
|
||||
public XMLGregorianCalendar getTimestamp() {
|
||||
return timestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der timestamp-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link XMLGregorianCalendar }
|
||||
*
|
||||
*/
|
||||
public void setTimestamp(XMLGregorianCalendar value) {
|
||||
this.timestamp = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der eventType-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getEventType() {
|
||||
return eventType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der eventType-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setEventType(String value) {
|
||||
this.eventType = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der objectType-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getObjectType() {
|
||||
return objectType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der objectType-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setObjectType(String value) {
|
||||
this.objectType = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der objectId-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getObjectId() {
|
||||
return objectId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der objectId-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setObjectId(String value) {
|
||||
this.objectId = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der source-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link SourceType }
|
||||
*
|
||||
*/
|
||||
public SourceType getSource() {
|
||||
return source;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der source-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link SourceType }
|
||||
*
|
||||
*/
|
||||
public void setSource(SourceType value) {
|
||||
this.source = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der user-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link CredentialsType }
|
||||
*
|
||||
*/
|
||||
public CredentialsType getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der user-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link CredentialsType }
|
||||
*
|
||||
*/
|
||||
public void setUser(CredentialsType value) {
|
||||
this.user = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der eventControl-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link EmBaseType }
|
||||
*
|
||||
*/
|
||||
public EmBaseType getEventControl() {
|
||||
return eventControl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der eventControl-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link EmBaseType }
|
||||
*
|
||||
*/
|
||||
public void setEventControl(EmBaseType value) {
|
||||
this.eventControl = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der baseExtension-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link BaseExtensionType }
|
||||
*
|
||||
*/
|
||||
public BaseExtensionType getBaseExtension() {
|
||||
return baseExtension;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der baseExtension-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link BaseExtensionType }
|
||||
*
|
||||
*/
|
||||
public void setBaseExtension(BaseExtensionType value) {
|
||||
this.baseExtension = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a map that contains attributes that aren't bound to any typed property on this class.
|
||||
*
|
||||
* <p>
|
||||
* the map is keyed by the name of the attribute and
|
||||
* the value is the string value of the attribute.
|
||||
*
|
||||
* the map returned by this method is live, and you can add new attribute
|
||||
* by updating the map directly. Because of this design, there's no setter.
|
||||
*
|
||||
*
|
||||
* @return
|
||||
* always non-null
|
||||
*/
|
||||
public Map<QName, String> getOtherAttributes() {
|
||||
return otherAttributes;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import javax.xml.bind.JAXBElement;
|
||||
import javax.xml.bind.annotation.XmlElementDecl;
|
||||
import javax.xml.bind.annotation.XmlRegistry;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
|
||||
/**
|
||||
* This object contains factory methods for each
|
||||
* Java content interface and Java element interface
|
||||
* generated in the net.brutex.xservices.types.alfevent package.
|
||||
* <p>An ObjectFactory allows you to programatically
|
||||
* construct new instances of the Java representation
|
||||
* for XML content. The Java representation of XML
|
||||
* content can consist of schema derived interfaces
|
||||
* and classes representing the binding of schema
|
||||
* type definitions, element declarations and model
|
||||
* groups. Factory methods for each of these are
|
||||
* provided in this class.
|
||||
*
|
||||
*/
|
||||
@XmlRegistry
|
||||
public class ObjectFactory {
|
||||
|
||||
private final static QName _EventNotice_QNAME = new QName("http://www.eclipse.org/alf/schema/EventBase/1", "EventNotice");
|
||||
|
||||
/**
|
||||
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: net.brutex.xservices.types.alfevent
|
||||
*
|
||||
*/
|
||||
public ObjectFactory() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link ALFEventType }
|
||||
*
|
||||
*/
|
||||
public ALFEventType createALFEventType() {
|
||||
return new ALFEventType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link DetailExtensionType }
|
||||
*
|
||||
*/
|
||||
public DetailExtensionType createDetailExtensionType() {
|
||||
return new DetailExtensionType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link CustomExtensionType }
|
||||
*
|
||||
*/
|
||||
public CustomExtensionType createCustomExtensionType() {
|
||||
return new CustomExtensionType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link CredentialsType }
|
||||
*
|
||||
*/
|
||||
public CredentialsType createCredentialsType() {
|
||||
return new CredentialsType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SourceType }
|
||||
*
|
||||
*/
|
||||
public SourceType createSourceType() {
|
||||
return new SourceType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link BaseExtensionType }
|
||||
*
|
||||
*/
|
||||
public BaseExtensionType createBaseExtensionType() {
|
||||
return new BaseExtensionType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link EmExtensionType }
|
||||
*
|
||||
*/
|
||||
public EmExtensionType createEmExtensionType() {
|
||||
return new EmExtensionType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link ALFEventWithReplyResponseType }
|
||||
*
|
||||
*/
|
||||
public ALFEventWithReplyResponseType createALFEventWithReplyResponseType() {
|
||||
return new ALFEventWithReplyResponseType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link EventBaseType }
|
||||
*
|
||||
*/
|
||||
public EventBaseType createEventBaseType() {
|
||||
return new EventBaseType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link ALFEventResponseType }
|
||||
*
|
||||
*/
|
||||
public ALFEventResponseType createALFEventResponseType() {
|
||||
return new ALFEventResponseType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link EmBaseType }
|
||||
*
|
||||
*/
|
||||
public EmBaseType createEmBaseType() {
|
||||
return new EmBaseType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link ALFEventType }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://www.eclipse.org/alf/schema/EventBase/1", name = "EventNotice")
|
||||
public JAXBElement<ALFEventType> createEventNotice(ALFEventType value) {
|
||||
return new JAXBElement<ALFEventType>(_EventNotice_QNAME, ALFEventType.class, null, value);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,155 @@
|
|||
|
||||
package net.brutex.xservices.types.alfevent;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlSchemaType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* A Source element is a container type that describes the
|
||||
* source of the event. ProductCallbackURI is optional for
|
||||
* tools that don't provide a listener to accept the
|
||||
* callback from a tool or serviceflow at a later time.
|
||||
*
|
||||
*
|
||||
* <p>Java-Klasse für SourceType complex type.
|
||||
*
|
||||
* <p>Das folgende Schemafragment gibt den erwarteten Content an, der in dieser Klasse enthalten ist.
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SourceType">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="Product" type="{http://www.eclipse.org/alf/schema/EventBase/1}ProductType"/>
|
||||
* <element name="ProductVersion" type="{http://www.eclipse.org/alf/schema/EventBase/1}ProductVersionType"/>
|
||||
* <element name="ProductInstance" type="{http://www.eclipse.org/alf/schema/EventBase/1}ProductInstanceType"/>
|
||||
* <element name="ProductCallbackURI" type="{http://www.eclipse.org/alf/schema/EventBase/1}ProductCallbackURIType" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SourceType", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", propOrder = {
|
||||
"product",
|
||||
"productVersion",
|
||||
"productInstance",
|
||||
"productCallbackURI"
|
||||
})
|
||||
public class SourceType {
|
||||
|
||||
@XmlElement(name = "Product", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String product;
|
||||
@XmlElement(name = "ProductVersion", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String productVersion;
|
||||
@XmlElement(name = "ProductInstance", namespace = "http://www.eclipse.org/alf/schema/EventBase/1", required = true)
|
||||
protected String productInstance;
|
||||
@XmlElement(name = "ProductCallbackURI", namespace = "http://www.eclipse.org/alf/schema/EventBase/1")
|
||||
@XmlSchemaType(name = "anyURI")
|
||||
protected String productCallbackURI;
|
||||
|
||||
/**
|
||||
* Ruft den Wert der product-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getProduct() {
|
||||
return product;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der product-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setProduct(String value) {
|
||||
this.product = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der productVersion-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getProductVersion() {
|
||||
return productVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der productVersion-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setProductVersion(String value) {
|
||||
this.productVersion = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der productInstance-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getProductInstance() {
|
||||
return productInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der productInstance-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setProductInstance(String value) {
|
||||
this.productInstance = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Ruft den Wert der productCallbackURI-Eigenschaft ab.
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getProductCallbackURI() {
|
||||
return productCallbackURI;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt den Wert der productCallbackURI-Eigenschaft fest.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setProductCallbackURI(String value) {
|
||||
this.productCallbackURI = value;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,180 @@
|
|||
package net.brutex.xservices.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.h2.jdbcx.JdbcConnectionPool;
|
||||
import org.quartz.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Reader;
|
||||
import java.io.StringReader;
|
||||
import java.sql.*;
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import static org.quartz.TriggerBuilder.newTrigger;
|
||||
|
||||
@Slf4j
|
||||
public class EventEmitter implements Job, InterruptableJob {
|
||||
|
||||
private final AtomicBoolean isInterrupted = new AtomicBoolean(false);
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext context) throws JobExecutionException {
|
||||
final Instant d = Instant.now();
|
||||
final long ts = d.toEpochMilli();
|
||||
final EventmanagerConfiguration conf = (EventmanagerConfiguration) context.getMergedJobDataMap()
|
||||
.get(EventmanagerConfiguration.KEY);
|
||||
|
||||
final String url = conf.getTargeturl();
|
||||
|
||||
final JdbcConnectionPool pool = (JdbcConnectionPool) context.getMergedJobDataMap().get("mdbConnection");
|
||||
final JdbcConnectionPool fpool = (JdbcConnectionPool) context.getMergedJobDataMap().get("fdbConnection");
|
||||
final long run_key = context.getMergedJobDataMap().getLong("run_key");
|
||||
final AtomicLong egres_counter = (AtomicLong) context.getMergedJobDataMap().get("egres_counter");
|
||||
|
||||
final String querySQL = "SELECT btx_id, btx_event, btx_obj_id, btx_event_type, btx_obj_type, btx_timestamp FROM brutex.tbl_events_snap ORDER BY btx_timestamp asc FOR UPDATE;";
|
||||
final String deleteSQL = "DELETE FROM brutex.tbl_events_snap where btx_id=?";
|
||||
final String deleteTable = "TRUNCATE TABLE brutex.tbl_events;";
|
||||
|
||||
final String moveSQL = "INSERT INTO brutex.tbl_events_snap DIRECT SELECT " +
|
||||
" btx_event_type, btx_id, btx_obj_type, btx_obj_id, btx_timestamp, ?, btx_event FROM brutex.tbl_events; ";
|
||||
|
||||
|
||||
final String moveErrorSQL = "MERGE INTO brutex.tbl_events_errors " +
|
||||
"KEY (btx_event_type, btx_obj_type, btx_obj_id) " +
|
||||
"VALUES (?,?,?,?,?,?,?,?);";
|
||||
|
||||
/**
|
||||
* Move event table data to snapshot
|
||||
*/
|
||||
|
||||
Connection con = null;
|
||||
Connection fcon = null;
|
||||
try {
|
||||
con = pool.getConnection();
|
||||
con.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
|
||||
con.setAutoCommit(false);
|
||||
Statement stmt = con.createStatement();
|
||||
PreparedStatement moveprep= con.prepareStatement(moveSQL);
|
||||
moveprep.setLong(1, run_key);
|
||||
moveprep.execute();
|
||||
stmt.execute(deleteTable);
|
||||
con.commit(); //all events moved from tbl_events to tbl_events_snap at this point
|
||||
|
||||
|
||||
fcon = fpool.getConnection();
|
||||
PreparedStatement errorPrepSql = fcon.prepareStatement(moveErrorSQL);
|
||||
|
||||
PreparedStatement del = con.prepareStatement(deleteSQL);
|
||||
|
||||
ResultSet rs = stmt.executeQuery(querySQL);
|
||||
|
||||
|
||||
while(rs.next() && !isInterrupted.get()) {
|
||||
/* btx_id, btx_event, btx_obj_id, btx_event_type, btx_obj_typ */
|
||||
String id = rs.getString(1);
|
||||
Clob c = rs.getClob(2);
|
||||
String obj_id = rs.getString(3);
|
||||
String event_type = rs.getString(4);
|
||||
String obj_type = rs.getString(5);
|
||||
long event_ts = rs.getLong(6);
|
||||
boolean bretry = false;
|
||||
|
||||
SimpleSoap ss = new SimpleSoap( url, id, IOUtils.toString(c.getCharacterStream()));
|
||||
int retry = 0;
|
||||
Reader response = null;
|
||||
String rsp = "";
|
||||
boolean succeeded = false;
|
||||
while(retry < 3 && !succeeded && !isInterrupted.get()) {
|
||||
retry++;
|
||||
response = ss.sendSoap(false);
|
||||
succeeded = true;
|
||||
if(response!=null) {
|
||||
rsp = IOUtils.toString(response);
|
||||
}
|
||||
|
||||
if (rsp.contains("<soap:Fault") || rsp.contains("<soapenv:Fault")) { succeeded=false; bretry=false;};
|
||||
if (! rsp.contains(":Envelope ")) { succeeded=false; bretry=true;};
|
||||
|
||||
if (succeeded) {
|
||||
// Successfully send
|
||||
del.setString(1, id);
|
||||
del.execute();
|
||||
con.commit();
|
||||
egres_counter.incrementAndGet();
|
||||
log.debug("Successfully sent event '{}' to target ALF Event Manager.", id);
|
||||
} else {
|
||||
// Error during sending
|
||||
log.warn("Unable to send ALF Event '{}' to event manager. Will retry in 2 seconds. This is the {}. time.", id, retry);
|
||||
try {
|
||||
Thread.sleep(2000);
|
||||
} catch (InterruptedException e) {
|
||||
log.error("Interrupted while waiting to retry: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(! succeeded) {
|
||||
log.error("Failed to send ALF Event '{}' to the event manager. Giving up. " +
|
||||
"Moving event back to the queue unless there is a superseding event already queued.", id);
|
||||
|
||||
|
||||
try {
|
||||
//this is in file-based db
|
||||
errorPrepSql.setString(1, event_type);
|
||||
errorPrepSql.setString(2, id);
|
||||
errorPrepSql.setString(3, obj_type);
|
||||
errorPrepSql.setString(4, obj_id);
|
||||
errorPrepSql.setLong(5, event_ts);
|
||||
errorPrepSql.setBoolean(6, bretry);
|
||||
errorPrepSql.setClob(7, new StringReader(rsp) );
|
||||
errorPrepSql.setClob(8, c);
|
||||
errorPrepSql.execute();
|
||||
fcon.commit();
|
||||
|
||||
//this is in-memory
|
||||
del.setString(1, id);
|
||||
del.execute();
|
||||
con.commit();
|
||||
} catch (SQLException e) {
|
||||
log.error("Exception in SQL execution during writing error events: {}", e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
} catch (SQLException e) {
|
||||
log.error("Exception in SQL execution: {}", e.getMessage());
|
||||
throw new JobExecutionException(e);
|
||||
} catch (IOException e) {
|
||||
log.error("Exception in SQL execution: {}", e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
} finally {
|
||||
try {
|
||||
if(fcon!=null) fcon.close();
|
||||
if(con!=null) con.close();
|
||||
} catch (SQLException e) {
|
||||
log.error("Error closing the database connections: {}", e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Called by the <code>{@link Scheduler}</code> when a user
|
||||
* interrupts the <code>Job</code>.
|
||||
* </p>
|
||||
*
|
||||
* @throws UnableToInterruptJobException if there is an exception while interrupting the job.
|
||||
*/
|
||||
@Override
|
||||
public synchronized void interrupt() throws UnableToInterruptJobException {
|
||||
isInterrupted.set(true);
|
||||
log.warn("ALFEmitter received and interrupt.");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
package net.brutex.xservices.util;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.Singular;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.configuration2.Configuration;
|
||||
import org.apache.commons.configuration2.FileBasedConfiguration;
|
||||
import org.apache.commons.configuration2.PropertiesConfiguration;
|
||||
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
|
||||
import org.apache.commons.configuration2.builder.PropertiesBuilderParametersImpl;
|
||||
import org.apache.commons.configuration2.ex.ConfigurationException;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
/**
|
||||
* A configuration object for the MiscService -> Eventmanager. Implemented as singleton.
|
||||
* @author Brian Rosenberger, bru@brutex.de
|
||||
**/
|
||||
@Data
|
||||
@Slf4j
|
||||
public class EventmanagerConfiguration {
|
||||
|
||||
public static final String KEY = "net.brutex.xservices.EventmanagerConfiguration";
|
||||
|
||||
private static class InstanceHolder {
|
||||
public static final EventmanagerConfiguration instance = new EventmanagerConfiguration();
|
||||
}
|
||||
|
||||
private EventmanagerConfiguration() {
|
||||
refreshConfig();
|
||||
}
|
||||
|
||||
public static EventmanagerConfiguration getInstance() {
|
||||
return InstanceHolder.instance;
|
||||
}
|
||||
|
||||
|
||||
private String targeturl;
|
||||
private int interval;
|
||||
private String jdbc_memdb;
|
||||
private String jdbc_filedb;
|
||||
|
||||
|
||||
public synchronized EventmanagerConfiguration refreshConfig() {
|
||||
log.trace("Reading EventmanagerConfiguration from file eventmanager.properties.");
|
||||
FileBasedConfigurationBuilder<FileBasedConfiguration> builder =
|
||||
new FileBasedConfigurationBuilder<FileBasedConfiguration>(PropertiesConfiguration.class)
|
||||
.configure(new PropertiesBuilderParametersImpl().setFileName("eventmanager.properties"));
|
||||
|
||||
try {
|
||||
Configuration config = builder.getConfiguration();
|
||||
|
||||
/* Read from eventmanager.properties file */
|
||||
this.targeturl = config.getString("target.url");
|
||||
this.interval = config.getInt("interval", 10);
|
||||
this.jdbc_memdb = config.getString("memdb", "jdbc:h2:mem:lockdb;DB_CLOSE_DELAY=-1;");
|
||||
this.jdbc_filedb = config.getString("fdb", "jdbc:h2:mem:lockdb;DB_CLOSE_DELAY=-1;");
|
||||
|
||||
|
||||
} catch (ConfigurationException e) {
|
||||
log.error("Error loading configuration for event manager in XServices MiscServices: {}", e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,192 @@
|
|||
package net.brutex.xservices.util;
|
||||
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.h2.jdbcx.JdbcConnectionPool;
|
||||
import org.quartz.*;
|
||||
import org.quartz.impl.StdSchedulerFactory;
|
||||
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.ServletContextEvent;
|
||||
import javax.servlet.ServletContextListener;
|
||||
import javax.servlet.annotation.WebListener;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.time.Instant;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import static org.quartz.TriggerBuilder.newTrigger;
|
||||
|
||||
//For Servlet container 3.x, you can annotate the listener with @WebListener, no need to declares in web.xml.
|
||||
|
||||
/**
|
||||
* Handle servlet lifecycle actions for the MiscService servlet, such as
|
||||
* initializing in-memory database, persist on shutdown etc.
|
||||
*/
|
||||
|
||||
|
||||
@WebListener
|
||||
@Slf4j
|
||||
public class MiscServiceServletContextListener implements ServletContextListener {
|
||||
|
||||
/**
|
||||
* SQL initialization for in-memory database
|
||||
* INIT=RUNSCRIPT FROM 'classpath:scripts/create.sql'"
|
||||
*/
|
||||
private final static String dbinit = "RUNSCRIPT FROM 'classpath:ddl/BRTX_schema.ddl';";
|
||||
|
||||
private final EventmanagerConfiguration configuration = EventmanagerConfiguration.getInstance().refreshConfig();
|
||||
private final JdbcConnectionPool mempool = getDbPool(configuration.getJdbc_memdb());
|
||||
private final JdbcConnectionPool fdbpool = getDbPool(configuration.getJdbc_filedb());
|
||||
|
||||
/**
|
||||
* Create DB connection pool and initialize the in-memory database with schema.
|
||||
*
|
||||
* @return connection pool
|
||||
*/
|
||||
private static JdbcConnectionPool getDbPool(String dbConnectString) {
|
||||
JdbcConnectionPool p = JdbcConnectionPool.create(dbConnectString, "", "");
|
||||
p.setMaxConnections(16);
|
||||
p.setLoginTimeout(5);
|
||||
try {
|
||||
Connection c = p.getConnection();
|
||||
Statement s = c.createStatement();
|
||||
s.execute(dbinit);
|
||||
log.trace("Running SQL against database '{}': '{}'", dbConnectString, dbinit);
|
||||
c.close();
|
||||
log.debug("Successfully created schema for database 'Brutex' at '{}'.", dbConnectString);
|
||||
} catch (SQLException e) {
|
||||
log.error("Error creating the schema for database 'Brutex' using '{}': {}", dbConnectString, e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return p;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void contextDestroyed(ServletContextEvent arg0) {
|
||||
log.trace("contextDestroyed called.");
|
||||
try {
|
||||
Scheduler scheduler = (Scheduler) arg0.getServletContext().getAttribute("scheduler");
|
||||
log.debug("Active jobs to be terminated: {}", scheduler.getCurrentlyExecutingJobs());
|
||||
|
||||
JobKey key = JobKey.jobKey("ALFEmitter");
|
||||
synchronized (scheduler) {
|
||||
if (!scheduler.isShutdown() && scheduler.checkExists(key) ) {
|
||||
scheduler.interrupt(key);
|
||||
scheduler.deleteJob(key);
|
||||
log.info("Gracefully stopped the ALFEventEmitter job.");
|
||||
}
|
||||
if (!scheduler.isShutdown()) {
|
||||
scheduler.shutdown(true);
|
||||
}
|
||||
}
|
||||
} catch (SchedulerException e) {
|
||||
log.error("Failed to stop the ALFEmitter job: {}", e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
log.info("ServletContextListener destroyed. Saving in-memory database to file based database.");
|
||||
int act_i = mempool.getActiveConnections();
|
||||
if (act_i > 0) {
|
||||
log.warn("There are still {} connections to the XServices in-memory database active.", act_i);
|
||||
}
|
||||
|
||||
try {
|
||||
log.info("Create/Re-open file based database to persist memory database.");
|
||||
Connection con = fdbpool.getConnection();
|
||||
Statement s = con.createStatement();
|
||||
|
||||
final String insert = "INSERT INTO brutex.tbl_events SELECT * from LINK UNION SELECT " + "btx_event_type, btx_id, btx_obj_type, btx_obj_id, btx_timestamp, btx_event from LINK2;";
|
||||
s.execute(insert);
|
||||
int count = s.getUpdateCount();
|
||||
log.info("Persisted {} rows in file-based database.", count);
|
||||
log.info("Shutting down in-memory database. Closing file-based database. Please wait ...");
|
||||
s.execute("SHUTDOWN;");
|
||||
con.close();
|
||||
log.info("Shutting down databases complete.");
|
||||
} catch (SQLException e) {
|
||||
log.error("An error occurred during database persistence: {}", e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
log.debug("Handled {} egress events.", arg0.getServletContext().getAttribute("egres_counter"));
|
||||
log.debug("Handled {} ingress events.", arg0.getServletContext().getAttribute("ingres_counter"));
|
||||
}
|
||||
|
||||
//Run this before web application is started
|
||||
@Override
|
||||
public void contextInitialized(ServletContextEvent arg0) {
|
||||
log.debug("ServletContextListener started");
|
||||
ServletContext context = arg0.getServletContext();
|
||||
readConfiguration(context);
|
||||
|
||||
context.setAttribute("mdbConnection", mempool);
|
||||
context.setAttribute("fdbConnection", fdbpool);
|
||||
context.setAttribute("ingres_counter", 0);
|
||||
AtomicLong egres = new AtomicLong(0);
|
||||
context.setAttribute("egres_counter", egres);
|
||||
context.setAttribute("ingres_counter", new AtomicLong(0));
|
||||
try {
|
||||
StdSchedulerFactory fact = new StdSchedulerFactory();
|
||||
fact.initialize("MiscServicesScheduler-quartz.properties");
|
||||
Scheduler scheduler = fact.getScheduler();
|
||||
scheduler.start();
|
||||
context.setAttribute("scheduler", scheduler);
|
||||
} catch (SchedulerException e) {
|
||||
log.error("Error creating scheduler within ServletContext: {}", e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
//Load events from file based database into in-memory database
|
||||
try {
|
||||
log.info("Start recovery of previously unsend alf events. Trying to load them into in-memory database.");
|
||||
final String link = "CREATE LINKED TABLE IF NOT EXISTS LINK('org.h2.Driver', '"+configuration.getJdbc_memdb()+"', '', '', 'brutex.tbl_events'); " +
|
||||
"CREATE LINKED TABLE IF NOT EXISTS LINK2('org.h2.Driver', '"+configuration.getJdbc_memdb()+"', '', '', 'brutex.tbl_events_snap');";
|
||||
final String recoverSQL = "INSERT INTO LINK DIRECT SELECT * FROM brutex.tbl_events;";
|
||||
final String truncate = "TRUNCATE TABLE brutex.tbl_events;";
|
||||
int count = 0;
|
||||
Connection con = fdbpool.getConnection();
|
||||
con.setAutoCommit(false);
|
||||
Statement statement = con.createStatement();
|
||||
statement.execute(link);
|
||||
con.commit();
|
||||
ResultSet rs = statement.executeQuery("SELECT COUNT(1) FROM brutex.tbl_events");
|
||||
if(rs.next()) count = rs.getInt(1);
|
||||
statement.execute(recoverSQL);
|
||||
log.info("Recovered {} events and loaded them into in-memory database.", count);
|
||||
statement.execute(truncate);
|
||||
con.commit();
|
||||
con.close();
|
||||
} catch (SQLException e) {
|
||||
log.error("Exception during recovery of events from previous runs: {}", e.getMessage());
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
//Start initial run of the emitter
|
||||
startEmitterImmediate(egres, (Scheduler) context.getAttribute("scheduler"));
|
||||
}
|
||||
|
||||
private synchronized void startEmitterImmediate(AtomicLong egres_counter, Scheduler scheduler) {
|
||||
try {
|
||||
if (!scheduler.checkExists(JobKey.jobKey("ALFEmitter"))) {
|
||||
JobDetail job2 = JobBuilder.newJob(EventEmitter.class).withIdentity("ALFEmitter").build();
|
||||
job2.getJobDataMap().put("mdbConnection", mempool);
|
||||
job2.getJobDataMap().put("fdbConnection", fdbpool);
|
||||
job2.getJobDataMap().put("run_key", Instant.now().toEpochMilli());
|
||||
job2.getJobDataMap().put("egres_counter", egres_counter);
|
||||
job2.getJobDataMap().put(EventmanagerConfiguration.KEY, EventmanagerConfiguration.getInstance());
|
||||
SimpleTrigger t = (SimpleTrigger) newTrigger().withIdentity("ALFEmitter").startNow().build();
|
||||
scheduler.scheduleJob(job2, t);
|
||||
}
|
||||
} catch (SchedulerException ex) {
|
||||
log.error("Could not start EventEmitter to process existing queue directly after startup: {}", ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
private void readConfiguration(ServletContext ctx) {
|
||||
/* Configure ServletContext attributes using configuration object*/
|
||||
EventmanagerConfiguration c = EventmanagerConfiguration.getInstance().refreshConfig();
|
||||
ctx.setAttribute(EventmanagerConfiguration.KEY, c);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
/*
|
||||
* Copyright 2013 Brian Rosenberger (Brutex Network)
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package net.brutex.xservices.util;
|
||||
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.client.ClientProtocolException;
|
||||
import org.apache.http.client.entity.EntityBuilder;
|
||||
import org.apache.http.client.fluent.Request;
|
||||
import org.apache.http.client.fluent.Response;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
|
||||
/**
|
||||
* Construct a HTTP POST and send it.
|
||||
*
|
||||
* @author Brian Rosenberger, bru(at)brutex.de
|
||||
* @since 0.1
|
||||
*/
|
||||
@Slf4j
|
||||
public class SimpleSoap {
|
||||
|
||||
private final String url;
|
||||
private final String soapBody;
|
||||
private final String id;
|
||||
private long duration = 0;
|
||||
|
||||
|
||||
final AtomicBoolean isInterrupted = new AtomicBoolean(false);
|
||||
|
||||
/**
|
||||
* Instantiates a new simple http event.
|
||||
*
|
||||
* @param url the url
|
||||
* @param soapBody the soap body
|
||||
*/
|
||||
public SimpleSoap(String url, String id, String soapBody) {
|
||||
this.url = url;
|
||||
this.id = id;
|
||||
this.soapBody = soapBody;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send soap.
|
||||
*
|
||||
* @param isDropResponse show interest in response or not
|
||||
* @throws ClientProtocolException the client protocol exception
|
||||
* @throws IOException Signals that an I/O exception has occurred.
|
||||
*/
|
||||
public Reader sendSoap(boolean isDropResponse) {
|
||||
Reader response = null;
|
||||
long start = System.currentTimeMillis();
|
||||
EntityBuilder entitybuilder = EntityBuilder.create();
|
||||
entitybuilder.setContentEncoding("UTF-8");
|
||||
entitybuilder.setText(soapBody);
|
||||
HttpEntity entity = entitybuilder.build();
|
||||
|
||||
log.trace("Sending event '{}' to target ALF Event Manager.", id);
|
||||
|
||||
if(isInterrupted.get()) return null;
|
||||
|
||||
try {
|
||||
Response resp = Request.Post(url)
|
||||
.addHeader("Accept", "text/xml")
|
||||
.addHeader("Content-Type", "text/xml; charset=utf-8")
|
||||
.addHeader("SOAPAction", "")
|
||||
.body(entity).execute();
|
||||
|
||||
if (!isDropResponse) {
|
||||
HttpEntity e = resp.returnResponse().getEntity();
|
||||
response = new BufferedReader(new InputStreamReader(e.getContent()));
|
||||
/*
|
||||
StringBuilder sb = new StringBuilder();
|
||||
BufferedReader in = new BufferedReader(new InputStreamReader(e.getContent()));
|
||||
String s;
|
||||
while ((s = in.readLine()) != null) {
|
||||
sb.append(s);
|
||||
}
|
||||
log.trace("Response: \n {}", sb.toString());
|
||||
if (sb.toString().contains("<soap:Fault>")) { return false;};
|
||||
if (! sb.toString().contains(":Envelope ")) { return false;};
|
||||
|
||||
*/
|
||||
} else {
|
||||
log.debug("Response intentionally ignored.");
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error("Error sending ALF Event '{}'. Got IOException: {}", id, e.getMessage());
|
||||
}
|
||||
|
||||
duration = System.currentTimeMillis() - start;
|
||||
return response;
|
||||
}
|
||||
|
||||
public void interrupt() {
|
||||
this.isInterrupted.set(true);
|
||||
}
|
||||
}
|
|
@ -16,12 +16,14 @@
|
|||
|
||||
package net.brutex.xservices.ws.impl;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.brutex.xservices.types.*;
|
||||
import net.brutex.xservices.types.alfevent.ALFEventResponseType;
|
||||
import net.brutex.xservices.types.alfevent.ALFEventType;
|
||||
import net.brutex.xservices.types.alfevent.ObjectFactory;
|
||||
import net.brutex.xservices.types.ant.FileSetResource;
|
||||
import net.brutex.xservices.util.EventEmitter;
|
||||
import net.brutex.xservices.util.EventmanagerConfiguration;
|
||||
import net.brutex.xservices.util.RunTask;
|
||||
import net.brutex.xservices.ws.MiscService;
|
||||
import net.brutex.xservices.ws.XServicesFault;
|
||||
|
@ -46,11 +48,11 @@ import java.io.StringWriter;
|
|||
import java.math.BigInteger;
|
||||
import java.sql.*;
|
||||
import java.time.Instant;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.Date;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Properties;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
||||
import static org.quartz.TriggerBuilder.newTrigger;
|
||||
|
||||
|
@ -60,30 +62,13 @@ import static org.quartz.TriggerBuilder.newTrigger;
|
|||
*
|
||||
* @author Brian Rosenberger, bru@brutex.de
|
||||
*/
|
||||
@Slf4j
|
||||
@WebService(targetNamespace="http://ws.xservices.brutex.net", endpointInterface="net.brutex.xservices.ws.MiscService", serviceName="MiscService")
|
||||
public class MiscServiceImpl
|
||||
implements MiscService {
|
||||
|
||||
@Resource
|
||||
private WebServiceContext context;
|
||||
|
||||
// Grab the Scheduler instance from the Factory
|
||||
private final Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
|
||||
private final static String conStr = "jdbc:h2:mem:lockdb;DB_CLOSE_DELAY=-1;";
|
||||
|
||||
private final static String dbinit = "" +
|
||||
"CREATE SCHEMA IF NOT EXISTS brutex;" +
|
||||
"CREATE TABLE IF NOT EXISTS brutex.tbl_events (" +
|
||||
"btx_event_type VARCHAR(128) NOT NULL," +
|
||||
"btx_id VARCHAR(32) NOT NULL, " +
|
||||
"btx_obj_type VARCHAR(32) NOT NULL, " +
|
||||
"btx_obj_id VARCHAR(32) NOT NULL, " +
|
||||
"btx_timestamp BIGINT NOT NULL," +
|
||||
"btx_event CLOB" +
|
||||
");" +
|
||||
"CREATE INDEX IF NOT EXISTS brutex.btx_idx ON brutex.tbl_events (btx_obj_id, btx_obj_type, btx_event_type);" +
|
||||
"CREATE INDEX IF NOT EXISTS brutex.IDX_TO_DESC ON brutex.tbl_events (btx_timestamp ASC);";
|
||||
|
||||
public MiscServiceImpl() throws SchedulerException {
|
||||
}
|
||||
|
||||
|
@ -241,11 +226,21 @@ public class MiscServiceImpl
|
|||
public ALFEventResponseType mergeALFEvent(ALFEventType event) throws XServicesFault {
|
||||
final Instant d = Instant.now();
|
||||
final long ts = d.toEpochMilli();
|
||||
//System.out.println("Step 1: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
|
||||
//Get Parameters from the Servlet Context
|
||||
final ServletContext servletContext =
|
||||
(ServletContext) context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
|
||||
final JdbcConnectionPool pool = (JdbcConnectionPool) servletContext.getAttribute("dbConnection");
|
||||
final EventmanagerConfiguration conf = (EventmanagerConfiguration) servletContext
|
||||
.getAttribute(EventmanagerConfiguration.KEY);
|
||||
|
||||
final JdbcConnectionPool pool = (JdbcConnectionPool) servletContext.getAttribute("mdbConnection");
|
||||
final JdbcConnectionPool fpool = (JdbcConnectionPool) servletContext.getAttribute("fdbConnection");
|
||||
final AtomicLong egres_counter = (AtomicLong) servletContext.getAttribute("egres_counter");
|
||||
final AtomicLong ingres_counter = (AtomicLong) servletContext.getAttribute("ingres_counter");
|
||||
final Scheduler scheduler = (Scheduler) servletContext.getAttribute("scheduler");
|
||||
|
||||
log.trace("Read dbConnection from servlet context: {}", pool);
|
||||
|
||||
//System.out.println("Step 2: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
final ObjectFactory of = new ObjectFactory();
|
||||
|
||||
|
@ -253,16 +248,15 @@ public class MiscServiceImpl
|
|||
final String eventId = event.getBase().getEventId();
|
||||
final String objectType = event.getBase().getObjectType();
|
||||
final String eventType = event.getBase().getEventType();
|
||||
log.debug("Event id '{}', type '{}' received for object '{}' with object_id '{}'.",
|
||||
eventId, eventType, objectType, objectId);
|
||||
|
||||
final String mergeStatememt = "MERGE INTO brutex.tbl_events " +
|
||||
"KEY (btx_event_type, btx_obj_type, btx_obj_id) " +
|
||||
"VALUES (?,?,?,?,?,?) " +
|
||||
"";
|
||||
"VALUES (?,?,?,?,?,?);";
|
||||
|
||||
|
||||
long rows = 0L;
|
||||
//System.out.println("Step 3: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
try {
|
||||
//System.out.println("Step 4: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
Marshaller m = JAXBContext.newInstance(ALFEventType.class).createMarshaller();
|
||||
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
||||
m.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
|
||||
|
@ -270,16 +264,16 @@ public class MiscServiceImpl
|
|||
StringWriter sw = new StringWriter();
|
||||
m.marshal(e, sw);
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append(" <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ns=\"http://www.eclipse.org/alf/schema/EventBase/1\">\n");
|
||||
sb.append(" <soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" " +
|
||||
"xmlns:ns=\"http://www.eclipse.org/alf/schema/EventBase/1\">\n");
|
||||
sb.append("<soapenv:Body>\n");
|
||||
sb.append("<ns:EventNotice>\n");
|
||||
sb.append(sw);
|
||||
sb.append("</ns:EventNotice>\n");
|
||||
sb.append("</soapenv:Body>");
|
||||
sb.append("</soapenv:Envelope>");
|
||||
//System.out.println("Step 5: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
|
||||
Connection con = pool.getConnection();
|
||||
//System.out.println("Step 6: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
PreparedStatement prep = con.prepareStatement(mergeStatememt);
|
||||
prep.setString(1, eventType);
|
||||
prep.setString(2, eventId);
|
||||
|
@ -287,40 +281,34 @@ public class MiscServiceImpl
|
|||
prep.setString(4, objectId);
|
||||
prep.setLong(5, ts);
|
||||
prep.setClob(6, new StringReader(sb.toString()));
|
||||
//prep.setLong(7, ts-20000);
|
||||
//System.out.println("Step 7 SQL START: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
prep.execute();
|
||||
con.commit();
|
||||
con.close();
|
||||
//System.out.println("Step 8 SQL END: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
//SimpleSoap ss = new SimpleSoap("http://localhost:8099/ALFEventManager/services/ALFEventManagerSOAP", sb.toString());
|
||||
//ss.sendSoap(false);
|
||||
|
||||
ingres_counter.incrementAndGet();
|
||||
|
||||
// and start it off
|
||||
|
||||
if (!scheduler.isStarted())
|
||||
scheduler.start();
|
||||
if (scheduler.isInStandbyMode())
|
||||
scheduler.resumeAll();
|
||||
//System.out.println("Step 9: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
synchronized (scheduler) {
|
||||
if (!scheduler.checkExists(JobKey.jobKey("ALFEmitter"))) {
|
||||
JobDetail job2 = JobBuilder.newJob(EventEmitter.class)
|
||||
.withIdentity("ALFEmitter").build();
|
||||
//job2.getJobDataMap().put("script", job.getScript());
|
||||
//job2.getJobDataMap().put("description", job.getDescription());
|
||||
//job2.getJobDataMap().put("date", job.getDate());
|
||||
.withIdentity("ALFEmitter")
|
||||
.build();
|
||||
job2.getJobDataMap().put("mdbConnection", pool);
|
||||
job2.getJobDataMap().put("fdbConnection", fpool);
|
||||
job2.getJobDataMap().put("run_key", ts);
|
||||
job2.getJobDataMap().put("egres_counter", egres_counter);
|
||||
job2.getJobDataMap().put("ingres_counter", ingres_counter);
|
||||
|
||||
job2.getJobDataMap().put(EventmanagerConfiguration.KEY, conf);
|
||||
|
||||
SimpleTrigger t = (SimpleTrigger) newTrigger()
|
||||
.withIdentity("ALFEmitter").startAt(Date.from(d.plusSeconds(20)))
|
||||
.withIdentity("ALFEmitter").startAt(Date.from(d.plusSeconds(conf.getInterval())))
|
||||
.build();
|
||||
|
||||
scheduler.scheduleJob(job2, t);
|
||||
}
|
||||
}
|
||||
//System.out.println("Step 10: " + ChronoUnit.MILLIS.between(Instant.now(), d));
|
||||
} catch (JAXBException | SQLException | SchedulerException e) {
|
||||
log.error(e.getMessage());
|
||||
throw new XServicesFault(e);
|
||||
}
|
||||
return of.createALFEventResponseType();
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
org.quartz.scheduler.instanceName = MiscServicesScheduler
|
||||
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
|
||||
org.quartz.threadPool.threadCount = 2
|
||||
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
|
|
@ -0,0 +1,42 @@
|
|||
-- Create Schema for Brutex
|
||||
CREATE SCHEMA IF NOT EXISTS brutex;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS brutex.tbl_events
|
||||
(
|
||||
btx_event_type VARCHAR(128) NOT NULL,
|
||||
btx_id VARCHAR(32) NOT NULL,
|
||||
btx_obj_type VARCHAR(32) NOT NULL,
|
||||
btx_obj_id VARCHAR(32) NOT NULL,
|
||||
btx_timestamp BIGINT NOT NULL,
|
||||
btx_event CLOB
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS brutex.btx_idx_key ON brutex.tbl_events (btx_obj_id, btx_obj_type, btx_event_type);
|
||||
CREATE INDEX IF NOT EXISTS brutex.btx_idx_ts ON brutex.tbl_events (btx_timestamp ASC);
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS brutex.tbl_events_snap
|
||||
(
|
||||
btx_event_type VARCHAR(128) NOT NULL,
|
||||
btx_id VARCHAR(32) NOT NULL,
|
||||
btx_obj_type VARCHAR(32) NOT NULL,
|
||||
btx_obj_id VARCHAR(32) NOT NULL,
|
||||
btx_timestamp BIGINT NOT NULL,
|
||||
btx_run BIGINT NOT NULL,
|
||||
btx_event CLOB
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS brutex.btx_idx_ts ON brutex.tbl_events_snap (btx_timestamp ASC);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS brutex.tbl_events_errors
|
||||
(
|
||||
btx_event_type VARCHAR(128) NOT NULL,
|
||||
btx_id VARCHAR(32) NOT NULL,
|
||||
btx_obj_type VARCHAR(32) NOT NULL,
|
||||
btx_obj_id VARCHAR(32) NOT NULL,
|
||||
btx_timestamp BIGINT NOT NULL,
|
||||
btx_retry BOOL,
|
||||
btx_response CLOB,
|
||||
btx_event CLOB
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS brutex.btx_idx_ts ON brutex.tbl_events_errors (btx_timestamp ASC);
|
||||
CREATE INDEX IF NOT EXISTS brutex.btx_idx_retry ON brutex.tbl_events_errors (btx_retry);
|
|
@ -0,0 +1,21 @@
|
|||
|
||||
# The target ALF Event Manager to forward processed events to
|
||||
target.url = http://localhost:8099/ALFEventManager/services/ALFEventManagerSOAP
|
||||
|
||||
# Merging interval in seconds
|
||||
# This specifies the minimum time the service will merge incoming events before starting
|
||||
# to move them into the outbound queue. Please note, that this is a minimum delay before
|
||||
# events are forwarded. In cases where the outbound queue processing takes longer than the
|
||||
# given interval, merging will continue until outbound queue has been processed completely.
|
||||
# default: interval = 10
|
||||
interval = 30
|
||||
|
||||
# In-Memory Database (H2 in this case) to use for event processing
|
||||
# This is the JDBC connection string.
|
||||
# default: memdb = jdbc:h2:mem:lockdb;DB_CLOSE_DELAY=-1;
|
||||
memdb = jdbc:h2:mem:lockdb;DB_CLOSE_DELAY=-1;
|
||||
|
||||
# Embedded file based database (H2 in this case) to use for event persistence
|
||||
# This is the JDBC connection string.
|
||||
# default: fdb = jdbc:h2:file:~/alf_event_db
|
||||
fdb = jdbc:h2:file:~/alf_event_db
|
|
@ -4,12 +4,12 @@
|
|||
# Default logging detail level for all instances of SimpleLogger.
|
||||
# Must be one of ("trace", "debug", "info", "warn", or "error").
|
||||
# If not specified, defaults to "info".
|
||||
org.slf4j.simpleLogger.defaultLogLevel=debug
|
||||
org.slf4j.simpleLogger.defaultLogLevel=warn
|
||||
|
||||
# Logging detail level for a SimpleLogger instance named "xxxxx".
|
||||
# Must be one of ("trace", "debug", "info", "warn", or "error").
|
||||
# If not specified, the default logging detail level is used.
|
||||
org.slf4j.simpleLogger.log.net.brutex.xservices=debug
|
||||
org.slf4j.simpleLogger.log.net.brutex.xservices=info
|
||||
|
||||
# Set to true if you want the current date and time to be included in output messages.
|
||||
# Default is false, and will output the number of milliseconds elapsed since startup.
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
</init-param>
|
||||
<load-on-startup>1</load-on-startup>
|
||||
</servlet>
|
||||
|
||||
<!--
|
||||
<servlet>
|
||||
<servlet-name>QuartzInitializer</servlet-name>
|
||||
<servlet-class>org.quartz.ee.servlet.QuartzInitializerServlet</servlet-class>
|
||||
|
@ -83,6 +83,7 @@
|
|||
</init-param>
|
||||
<load-on-startup>2</load-on-startup>
|
||||
</servlet>
|
||||
-->
|
||||
<servlet>
|
||||
<servlet-name>CacheServlet</servlet-name>
|
||||
<servlet-class>net.brutex.xservices.util.cache.CacheServlet</servlet-class>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<con:soapui-project name="DateService" resourceRoot="" soapui-version="5.4.0" abortOnError="false" runType="SEQUENTIAL" activeEnvironment="Default" id="85873bdb-55cc-4e35-a08b-47ca8e389beb" xmlns:con="http://eviware.com/soapui/config"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.actions.iface.tools.soapui.TestRunnerAction@values-local"><![CDATA[<xml-fragment xmlns:con="http://eviware.com/soapui/config">
|
||||
<con:soapui-project name="DateService" resourceRoot="" soapui-version="5.5.0" abortOnError="false" runType="SEQUENTIAL" activeEnvironment="Default" id="85873bdb-55cc-4e35-a08b-47ca8e389beb" xmlns:con="http://eviware.com/soapui/config"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.actions.iface.tools.soapui.TestRunnerAction@values-local"><![CDATA[<xml-fragment xmlns:con="http://eviware.com/soapui/config">
|
||||
<con:entry key="Global Properties" value=""/>
|
||||
<con:entry key="TestSuite" value="Basic Call Tests"/>
|
||||
<con:entry key="Report to Generate" value=""/>
|
||||
|
@ -659,7 +659,17 @@
|
|||
<unit>years</unit>
|
||||
</ws:dateTimeDiff2>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/DateService/dateTimeDiff2"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="dateAdd" bindingOperationName="dateAdd" type="Request-Response" outputName="dateAddResponse" inputName="dateAdd" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="f8cac27d-de6b-4c36-b3d6-0a3f9241c02f"><con:settings/><con:call name="Request 1" id="c7816de9-7828-46f9-8a63-a96f830dd40b"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/DateService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:credentials><con:selectedAuthProfile>Basic</con:selectedAuthProfile><con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/DateService/dateTimeDiff2"/><con:wsrmConfig version="1.2"/></con:call><con:call id="98924fa0-fe43-492f-8233-83da93d2d7d4" name="GetTimestampMs"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/DateService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:dateTimeDiff2>
|
||||
<fromDateTime>1970-01-01T00:00:00.000Z</fromDateTime>
|
||||
<toDateTime>${=java.time.Instant.now()}</toDateTime>
|
||||
<!--Optional:-->
|
||||
<unit>milliseconds</unit>
|
||||
</ws:dateTimeDiff2>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:credentials><con:selectedAuthProfile>Basic</con:selectedAuthProfile><con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/DateService/dateTimeDiff2"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="dateAdd" bindingOperationName="dateAdd" type="Request-Response" outputName="dateAddResponse" inputName="dateAdd" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="f8cac27d-de6b-4c36-b3d6-0a3f9241c02f"><con:settings/><con:call name="Request 1" id="c7816de9-7828-46f9-8a63-a96f830dd40b"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/DateService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:dateAdd>
|
||||
|
@ -879,4 +889,14 @@
|
|||
<unit>seconds</unit>
|
||||
</ws:dateAdd>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="652b3cd4-533e-465c-a319-3c48ff8327d2"/><con:assertion type="Schema Compliance" id="b23ae790-75a0-4b95-b5ab-294ca7a9f863"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="41ad8701-ec19-4ad1-8d3d-52a81693131b"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:loadTest name="Basic Load" id="4199b682-84fd-47af-9110-77461e427a76"><con:settings><con:setting id="HttpSettings@close-connections">false</con:setting></con:settings><con:threadCount>30</con:threadCount><con:startDelay>0</con:startDelay><con:sampleInterval>250</con:sampleInterval><con:calculateTPSOnTimePassed>true</con:calculateTPSOnTimePassed><con:resetStatisticsOnThreadCountChange>true</con:resetStatisticsOnThreadCountChange><con:historyLimit>-1</con:historyLimit><con:testLimit>180</con:testLimit><con:limitType>TIME</con:limitType><con:loadStrategy><con:type>Burst</con:type><con:config><burstDelay>60000</burstDelay><burstDuration>10000</burstDuration></con:config></con:loadStrategy><con:assertion type="Step Status" name="Step Status"/><con:maxAssertionErrors>100</con:maxAssertionErrors><con:cancelExcessiveThreads>true</con:cancelExcessiveThreads><con:strategyInterval>500</con:strategyInterval></con:loadTest><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/></con:soapui-project>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="652b3cd4-533e-465c-a319-3c48ff8327d2"/><con:assertion type="Schema Compliance" id="b23ae790-75a0-4b95-b5ab-294ca7a9f863"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="41ad8701-ec19-4ad1-8d3d-52a81693131b"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:loadTest name="Basic Load" id="4199b682-84fd-47af-9110-77461e427a76"><con:settings><con:setting id="HttpSettings@close-connections">false</con:setting></con:settings><con:threadCount>30</con:threadCount><con:startDelay>0</con:startDelay><con:sampleInterval>250</con:sampleInterval><con:calculateTPSOnTimePassed>true</con:calculateTPSOnTimePassed><con:resetStatisticsOnThreadCountChange>true</con:resetStatisticsOnThreadCountChange><con:historyLimit>-1</con:historyLimit><con:testLimit>180</con:testLimit><con:limitType>TIME</con:limitType><con:loadStrategy><con:type>Burst</con:type><con:config><burstDelay>60000</burstDelay><burstDuration>10000</burstDuration></con:config></con:loadStrategy><con:assertion type="Step Status" name="Step Status"/><con:maxAssertionErrors>100</con:maxAssertionErrors><con:cancelExcessiveThreads>true</con:cancelExcessiveThreads><con:strategyInterval>500</con:strategyInterval></con:loadTest><con:properties/></con:testCase><con:testCase id="02277689-a71b-40e8-93ee-9ad032c3c76a" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="DateDiff2-Tests" searchProperties="true"><con:settings/><con:testStep type="request" id="0e562180-b74d-44a2-aece-5058a42cacb4" name="dateTimeDiff2 - GetTimestampMs"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>DateServiceSoapBinding</con:interface><con:operation>dateTimeDiff2</con:operation><con:request name="dateTimeDiff2 - GetTimestampMs" outgoingWss="" incomingWss="" timeout="" sslKeystore="" useWsAddressing="false" useWsReliableMessaging="false" wssPasswordType="" id="1c062d16-206b-464f-a7cc-f8b9126c3445"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/DateService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:dateTimeDiff2>
|
||||
<fromDateTime>1970-01-01T00:00:00.000Z</fromDateTime>
|
||||
<toDateTime>${=java.time.Instant.now()}</toDateTime>
|
||||
<!--Optional:-->
|
||||
<unit>milliseconds</unit>
|
||||
</ws:dateTimeDiff2>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Fault Assertion" id="d4c38d46-f4d3-41c2-afad-1a57672fa9d6" name="Not SOAP Fault"/><con:assertion type="SOAP Response" id="79c3dfe5-214d-4fdd-b09d-25ad8eab44aa" name="SOAP Response"/><con:credentials><con:selectedAuthProfile>Basic</con:selectedAuthProfile><con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/DateService/dateTimeDiff2"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:loadTest id="f2b51873-b7fb-4705-adbb-dd1df24a9c76" name="DateDiff2 Load Test"><con:settings><con:setting id="HttpSettings@close-connections">false</con:setting></con:settings><con:threadCount>32</con:threadCount><con:startDelay>0</con:startDelay><con:sampleInterval>250</con:sampleInterval><con:calculateTPSOnTimePassed>true</con:calculateTPSOnTimePassed><con:resetStatisticsOnThreadCountChange>true</con:resetStatisticsOnThreadCountChange><con:historyLimit>-1</con:historyLimit><con:testLimit>120</con:testLimit><con:limitType>TIME</con:limitType><con:loadStrategy><con:type>Simple</con:type><con:config><testDelay>10</testDelay><randomFactor>0.5</randomFactor></con:config></con:loadStrategy><con:assertion type="Step Status" name="Step Status"/><con:maxAssertionErrors>100</con:maxAssertionErrors><con:cancelExcessiveThreads>true</con:cancelExcessiveThreads><con:strategyInterval>500</con:strategyInterval></con:loadTest><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/></con:soapui-project>
|
|
@ -1,7 +1,100 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<con:soapui-project name="MiscService" resourceRoot="" soapui-version="5.0.0" abortOnError="false" runType="SEQUENTIAL" activeEnvironment="Default" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="MiscServiceSoapBinding" type="wsdl" bindingName="{http://ws.xservices.brutex.net}MiscServiceSoapBinding" soapVersion="1_1" anonymous="optional" definition="http://localhost:8080/XServices/MiscService?WSDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhost:8080/XServices/MiscService?WSDL"><con:part><con:url>http://localhost:8080/XServices/MiscService?WSDL</con:url><con:content><![CDATA[<wsdl:definitions name="MiscService" targetNamespace="http://ws.xservices.brutex.net" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://ws.xservices.brutex.net" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
|
||||
<con:soapui-project name="MiscService" resourceRoot="" soapui-version="5.5.0" abortOnError="false" runType="SEQUENTIAL" activeEnvironment="Default" id="9befe4d3-50f1-42cf-a014-7b610d0a7c7f" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="MiscServiceSoapBinding" type="wsdl" bindingName="{http://ws.xservices.brutex.net}MiscServiceSoapBinding" soapVersion="1_1" anonymous="optional" definition="http://localhost:8080/XServices/MiscService?WSDL" id="ca00c2ff-8f34-4b91-bd61-3b6aae9f9fd3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhost:8080/XServices/MiscService?WSDL"><con:part><con:url>http://localhost:8080/XServices/MiscService?WSDL</con:url><con:content><![CDATA[<wsdl:definitions name="MiscService" targetNamespace="http://ws.xservices.brutex.net" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://ws.xservices.brutex.net" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http">
|
||||
<wsdl:types>
|
||||
<xs:schema elementFormDefault="unqualified" targetNamespace="http://ws.xservices.brutex.net" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:schema targetNamespace="http://www.eclipse.org/alf/schema/EventBase/1" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.eclipse.org/alf/schema/EventBase/1">
|
||||
<xs:element name="EventNotice" type="tns:ALFEventType"/>
|
||||
<xs:complexType name="ALFEventType">
|
||||
<xs:sequence>
|
||||
<xs:element form="qualified" name="Base" type="tns:EventBaseType"/>
|
||||
<xs:element form="qualified" minOccurs="0" name="Detail" type="tns:DetailExtensionType"/>
|
||||
<xs:element form="qualified" minOccurs="0" name="Extension" type="tns:CustomExtensionType"/>
|
||||
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="version" type="xs:string"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="EventBaseType">
|
||||
<xs:sequence>
|
||||
<xs:element form="qualified" name="EventId" type="xs:string"/>
|
||||
<xs:element form="qualified" name="Timestamp" type="xs:dateTime"/>
|
||||
<xs:element form="qualified" name="EventType" type="xs:string"/>
|
||||
<xs:element form="qualified" name="ObjectType" type="xs:string"/>
|
||||
<xs:element form="qualified" name="ObjectId" type="xs:string"/>
|
||||
<xs:element form="qualified" name="Source" type="tns:SourceType"/>
|
||||
<xs:element form="qualified" name="User" type="tns:CredentialsType"/>
|
||||
<xs:element form="qualified" minOccurs="0" name="EventControl" type="tns:EmBaseType"/>
|
||||
<xs:element form="qualified" minOccurs="0" name="BaseExtension" type="tns:BaseExtensionType"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute namespace="##other" processContents="skip"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="SourceType">
|
||||
<xs:sequence>
|
||||
<xs:element form="qualified" name="Product" type="xs:string"/>
|
||||
<xs:element form="qualified" name="ProductVersion" type="xs:string"/>
|
||||
<xs:element form="qualified" name="ProductInstance" type="xs:string"/>
|
||||
<xs:element form="qualified" minOccurs="0" name="ProductCallbackURI" type="xs:anyURI"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="CredentialsType">
|
||||
<xs:sequence>
|
||||
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute namespace="##other" processContents="skip"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="EmBaseType">
|
||||
<xs:sequence>
|
||||
<xs:element form="qualified" name="EmEventId" type="xs:string"/>
|
||||
<xs:element form="qualified" name="EmTimestamp" type="xs:dateTime"/>
|
||||
<xs:element form="qualified" name="PrecedingEmEventId" type="xs:string"/>
|
||||
<xs:element form="qualified" name="ApplicationName" type="xs:string"/>
|
||||
<xs:element form="qualified" name="EventMatchName" type="xs:string"/>
|
||||
<xs:element form="qualified" name="ServiceFlowName" type="xs:string"/>
|
||||
<xs:element form="qualified" name="ServiceFlowId" type="xs:string"/>
|
||||
<xs:element form="qualified" name="Callback" type="xs:boolean"/>
|
||||
<xs:element form="qualified" name="Environment" type="xs:string"/>
|
||||
<xs:element form="qualified" name="EmUser" type="tns:CredentialsType"/>
|
||||
<xs:element form="qualified" minOccurs="0" name="EmExtension" type="tns:EmExtensionType"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute namespace="##other" processContents="skip"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="EmExtensionType">
|
||||
<xs:sequence>
|
||||
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute namespace="##other" processContents="skip"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="ALFEventResponseType">
|
||||
<xs:sequence>
|
||||
<xs:any namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="DetailExtensionType">
|
||||
<xs:sequence>
|
||||
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute namespace="##other" processContents="skip"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="CustomExtensionType">
|
||||
<xs:sequence>
|
||||
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute namespace="##other" processContents="skip"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="BaseExtensionType">
|
||||
<xs:sequence>
|
||||
<xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
<xs:anyAttribute namespace="##other" processContents="skip"/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="ALFEventWithReplyResponseType">
|
||||
<xs:sequence>
|
||||
<xs:any namespace="##other" processContents="lax"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://ws.xservices.brutex.net" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.eclipse.org/alf/schema/EventBase/1">
|
||||
<xs:import namespace="http://www.eclipse.org/alf/schema/EventBase/1"/>
|
||||
<xs:element name="EventNotice" type="tns:EventNotice"/>
|
||||
<xs:element name="EventNoticeResponse" type="tns:EventNoticeResponse"/>
|
||||
<xs:element name="antProperty" type="tns:antProperty"/>
|
||||
<xs:element name="generateUUID" type="tns:generateUUID"/>
|
||||
<xs:element name="generateUUIDResponse" type="tns:generateUUIDResponse"/>
|
||||
|
@ -11,24 +104,16 @@
|
|||
<xs:element name="getInfoResponse" type="tns:getInfoResponse"/>
|
||||
<xs:element name="getMemory" type="tns:getMemory"/>
|
||||
<xs:element name="getMemoryResponse" type="tns:getMemoryResponse"/>
|
||||
<xs:element name="lock" type="tns:lock"/>
|
||||
<xs:element name="lockResponse" type="tns:lockResponse"/>
|
||||
<xs:element name="sleep" type="tns:sleep"/>
|
||||
<xs:element name="sleepResponse" type="tns:sleepResponse"/>
|
||||
<xs:complexType name="getHostinfo">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="hostname" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
<xs:complexType name="generateUUID">
|
||||
<xs:sequence/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="getHostinfoResponse">
|
||||
<xs:complexType name="generateUUIDResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" type="tns:hostinfoType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="hostinfoType">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="domain" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="ip4" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="ip6" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="name" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="return" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="getMemory">
|
||||
|
@ -40,15 +125,41 @@
|
|||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="runtimeInfoType">
|
||||
<xs:sequence/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="sleep">
|
||||
<xs:sequence>
|
||||
<xs:element name="minutes" type="xs:int"/>
|
||||
<xs:element name="seconds" type="xs:int"/>
|
||||
<xs:element name="availableProcessors" type="xs:int"/>
|
||||
<xs:element name="freeMemory" type="xs:long"/>
|
||||
<xs:element name="freeMemoryMB" type="xs:long"/>
|
||||
<xs:element name="maxMemory" type="xs:long"/>
|
||||
<xs:element name="maxMemoryMB" type="xs:long"/>
|
||||
<xs:element name="totalMemory" type="xs:long"/>
|
||||
<xs:element name="totalMemoryMB" type="xs:long"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="sleepResponse">
|
||||
<xs:complexType name="EventNotice">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" ref="ns1:EventNotice"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="EventNoticeResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" type="ns1:ALFEventResponseType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="lock">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="id" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="objectId" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="lockResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" type="xs:integer"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="getInfo">
|
||||
<xs:sequence/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="getInfoResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
|
||||
</xs:sequence>
|
||||
|
@ -67,90 +178,140 @@
|
|||
<xs:element name="value" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="generateUUID">
|
||||
<xs:sequence/>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="generateUUIDResponse">
|
||||
<xs:complexType name="getHostinfo">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="hostname" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="getInfo">
|
||||
<xs:sequence/>
|
||||
<xs:complexType name="getHostinfoResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" type="tns:hostinfo"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="getInfoResponse">
|
||||
<xs:complexType name="hostinfo">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="domain" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="ip4" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="ip6" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="name" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="sleep">
|
||||
<xs:sequence>
|
||||
<xs:element name="minutes" type="xs:int"/>
|
||||
<xs:element name="seconds" type="xs:int"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:complexType name="sleepResponse">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="return" type="tns:ReturnCodeType"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
<xs:element name="XServicesFault" type="tns:XServicesFault"/>
|
||||
<xs:complexType name="XServicesFault">
|
||||
<xs:sequence>
|
||||
<xs:element minOccurs="0" name="username" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="homedir" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="timstamp" type="xs:anySimpleType"/>
|
||||
<xs:element minOccurs="0" name="jvmversion" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="faultstring" type="xs:string"/>
|
||||
<xs:element minOccurs="0" name="message" type="xs:string"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
||||
</wsdl:types>
|
||||
<wsdl:message name="sleepResponse">
|
||||
<wsdl:part element="tns:sleepResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getMemory">
|
||||
<wsdl:part element="tns:getMemory" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getMemoryResponse">
|
||||
<wsdl:part element="tns:getMemoryResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getHostinfo">
|
||||
<wsdl:part element="tns:getHostinfo" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getInfoResponse">
|
||||
<wsdl:part element="tns:getInfoResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getInfo">
|
||||
<wsdl:part element="tns:getInfo" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="sleep">
|
||||
<wsdl:part element="tns:sleep" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getHostinfoResponse">
|
||||
<wsdl:part element="tns:getHostinfoResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="generateUUID">
|
||||
<wsdl:part element="tns:generateUUID" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="generateUUIDResponse">
|
||||
<wsdl:part element="tns:generateUUIDResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getMemoryResponse">
|
||||
<wsdl:part element="tns:getMemoryResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="sleepResponse">
|
||||
<wsdl:part element="tns:sleepResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="lock">
|
||||
<wsdl:part element="tns:lock" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getHostinfo">
|
||||
<wsdl:part element="tns:getHostinfo" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="sleep">
|
||||
<wsdl:part element="tns:sleep" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getInfoResponse">
|
||||
<wsdl:part element="tns:getInfoResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getMemory">
|
||||
<wsdl:part element="tns:getMemory" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="EventNotice">
|
||||
<wsdl:part element="tns:EventNotice" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="XServicesFault">
|
||||
<wsdl:part element="tns:XServicesFault" name="XServicesFault"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getHostinfoResponse">
|
||||
<wsdl:part element="tns:getHostinfoResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="getInfo">
|
||||
<wsdl:part element="tns:getInfo" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="EventNoticeResponse">
|
||||
<wsdl:part element="tns:EventNoticeResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:message name="lockResponse">
|
||||
<wsdl:part element="tns:lockResponse" name="parameters"></wsdl:part>
|
||||
</wsdl:message>
|
||||
<wsdl:portType name="MiscService">
|
||||
<wsdl:documentation>Various service operations.</wsdl:documentation>
|
||||
<wsdl:operation name="getHostinfo">
|
||||
<wsdl:documentation>Get information about a host.</wsdl:documentation>
|
||||
<wsdl:input message="tns:getHostinfo" name="getHostinfo"></wsdl:input>
|
||||
<wsdl:output message="tns:getHostinfoResponse" name="getHostinfoResponse"></wsdl:output>
|
||||
<wsdl:operation name="generateUUID">
|
||||
<wsdl:documentation>Generate a UUID.</wsdl:documentation>
|
||||
<wsdl:input message="tns:generateUUID" name="generateUUID"></wsdl:input>
|
||||
<wsdl:output message="tns:generateUUIDResponse" name="generateUUIDResponse"></wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="getMemory">
|
||||
<wsdl:documentation>Get memory and processor information</wsdl:documentation>
|
||||
<wsdl:input message="tns:getMemory" name="getMemory"></wsdl:input>
|
||||
<wsdl:output message="tns:getMemoryResponse" name="getMemoryResponse"></wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="sleep">
|
||||
<wsdl:documentation>Delay request response a specified duration.</wsdl:documentation>
|
||||
<wsdl:input message="tns:sleep" name="sleep"></wsdl:input>
|
||||
<wsdl:output message="tns:sleepResponse" name="sleepResponse"></wsdl:output>
|
||||
<wsdl:operation name="EventNotice">
|
||||
<wsdl:input message="tns:EventNotice" name="EventNotice"></wsdl:input>
|
||||
<wsdl:output message="tns:EventNoticeResponse" name="EventNoticeResponse"></wsdl:output>
|
||||
<wsdl:fault message="tns:XServicesFault" name="XServicesFault"></wsdl:fault>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="generateUUID">
|
||||
<wsdl:documentation>Generate a UUID.</wsdl:documentation>
|
||||
<wsdl:input message="tns:generateUUID" name="generateUUID"></wsdl:input>
|
||||
<wsdl:output message="tns:generateUUIDResponse" name="generateUUIDResponse"></wsdl:output>
|
||||
<wsdl:operation name="lock">
|
||||
<wsdl:documentation>Get a lock.</wsdl:documentation>
|
||||
<wsdl:input message="tns:lock" name="lock"></wsdl:input>
|
||||
<wsdl:output message="tns:lockResponse" name="lockResponse"></wsdl:output>
|
||||
<wsdl:fault message="tns:XServicesFault" name="XServicesFault"></wsdl:fault>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="getInfo">
|
||||
<wsdl:documentation>Get XService information.</wsdl:documentation>
|
||||
<wsdl:input message="tns:getInfo" name="getInfo"></wsdl:input>
|
||||
<wsdl:output message="tns:getInfoResponse" name="getInfoResponse"></wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="getHostinfo">
|
||||
<wsdl:documentation>Get information about a host.</wsdl:documentation>
|
||||
<wsdl:input message="tns:getHostinfo" name="getHostinfo"></wsdl:input>
|
||||
<wsdl:output message="tns:getHostinfoResponse" name="getHostinfoResponse"></wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="sleep">
|
||||
<wsdl:documentation>Delay request response a specified duration.</wsdl:documentation>
|
||||
<wsdl:input message="tns:sleep" name="sleep"></wsdl:input>
|
||||
<wsdl:output message="tns:sleepResponse" name="sleepResponse"></wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:portType>
|
||||
<wsdl:binding name="MiscServiceSoapBinding" type="tns:MiscService">
|
||||
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
|
||||
<wsdl:operation name="getHostinfo">
|
||||
<wsdl:operation name="generateUUID">
|
||||
<soap:operation soapAction="" style="document"/>
|
||||
<wsdl:input name="getHostinfo">
|
||||
<wsdl:input name="generateUUID">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getHostinfoResponse">
|
||||
<wsdl:output name="generateUUIDResponse">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
|
@ -163,23 +324,29 @@
|
|||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="sleep">
|
||||
<wsdl:operation name="EventNotice">
|
||||
<soap:operation soapAction="" style="document"/>
|
||||
<wsdl:input name="sleep">
|
||||
<wsdl:input name="EventNotice">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="sleepResponse">
|
||||
<wsdl:output name="EventNoticeResponse">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
<wsdl:fault name="XServicesFault">
|
||||
<soap:fault name="XServicesFault" use="literal"/>
|
||||
</wsdl:fault>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="generateUUID">
|
||||
<wsdl:operation name="lock">
|
||||
<soap:operation soapAction="" style="document"/>
|
||||
<wsdl:input name="generateUUID">
|
||||
<wsdl:input name="lock">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="generateUUIDResponse">
|
||||
<wsdl:output name="lockResponse">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
<wsdl:fault name="XServicesFault">
|
||||
<soap:fault name="XServicesFault" use="literal"/>
|
||||
</wsdl:fault>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="getInfo">
|
||||
<soap:operation soapAction="" style="document"/>
|
||||
|
@ -190,23 +357,92 @@
|
|||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="getHostinfo">
|
||||
<soap:operation soapAction="" style="document"/>
|
||||
<wsdl:input name="getHostinfo">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="getHostinfoResponse">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
<wsdl:operation name="sleep">
|
||||
<soap:operation soapAction="" style="document"/>
|
||||
<wsdl:input name="sleep">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:input>
|
||||
<wsdl:output name="sleepResponse">
|
||||
<soap:body use="literal"/>
|
||||
</wsdl:output>
|
||||
</wsdl:operation>
|
||||
</wsdl:binding>
|
||||
<wsdl:service name="MiscService">
|
||||
<wsdl:port binding="tns:MiscServiceSoapBinding" name="MiscServiceImplPort">
|
||||
<soap:address location="http://localhost:8080/XServices/MiscService"/>
|
||||
</wsdl:port>
|
||||
</wsdl:service>
|
||||
</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="getHostinfo" bindingOperationName="getHostinfo" type="Request-Response" outputName="getHostinfoResponse" inputName="getHostinfo" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="sleep" bindingOperationName="sleep" type="Request-Response" outputName="sleepResponse" inputName="sleep" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="getInfo" bindingOperationName="getInfo" type="Request-Response" outputName="getInfoResponse" inputName="getInfo" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="getHostinfo" bindingOperationName="getHostinfo" type="Request-Response" outputName="getHostinfoResponse" inputName="getHostinfo" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="18a61ce6-c134-4d7c-80dc-7089c1db41f3"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="sleep" bindingOperationName="sleep" type="Request-Response" outputName="sleepResponse" inputName="sleep" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="a55c21b4-831c-442f-8e5d-a0c665a2f077"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="getInfo" bindingOperationName="getInfo" type="Request-Response" outputName="getInfoResponse" inputName="getInfo" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="e971233b-230e-4e84-94cc-35614fbe971b"><con:settings/><con:call name="Request 1" id="99a60d8c-cef0-4a06-b9b1-aa9e1ef1ebd6"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getInfo/>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/getInfo"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="generateUUID" bindingOperationName="generateUUID" type="Request-Response" outputName="generateUUIDResponse" inputName="generateUUID" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/></con:operation><con:operation isOneWay="false" action="" name="getMemory" bindingOperationName="getMemory" type="Request-Response" outputName="getMemoryResponse" inputName="getMemory" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/getInfo"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="generateUUID" bindingOperationName="generateUUID" type="Request-Response" outputName="generateUUIDResponse" inputName="generateUUID" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="a9dcbc4a-d1dd-4453-bbcf-31859df33fc9"><con:settings/><con:call id="47a626b3-6c33-4f96-b487-cd67ea5b951a" name="Request 1"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">\r
|
||||
<soapenv:Header/>\r
|
||||
<soapenv:Body>\r
|
||||
<ws:generateUUID/>\r
|
||||
</soapenv:Body>\r
|
||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/generateUUID"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation isOneWay="false" action="" name="getMemory" bindingOperationName="getMemory" type="Request-Response" outputName="getMemoryResponse" inputName="getMemory" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="44cd98a5-0fe7-43fe-92ec-8347ba7c5ef3"><con:settings/><con:call name="Request 1" id="b766d6aa-6f27-42bc-9f5e-bd7cfb5e75c3"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getMemory/>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/getMemory"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:testSuite name="Basic Call Tests"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="true" maxResults="0" name="Pull WSDL" searchProperties="true" id="2048fa40-8ecb-484e-98ff-6c50df26f33b"><con:settings/><con:testStep type="httprequest" name="http://localhost:8080/XServices/MiscService?WSDL"><con:settings/><con:config method="GET" xsi:type="con:HttpRequest" name="http://localhost:8080/XServices/MiscService?WSDL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080/XServices/MiscService?WSDL</con:endpoint><con:request/><con:assertion type="HTTP Download all resources" name="HTTP Download all resources"/><con:assertion type="Response SLA Assertion" name="Response SLA"><con:configuration><SLA>200</SLA></con:configuration></con:assertion><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:config></con:testStep><con:properties/></con:testCase><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="getHostInfo" searchProperties="true" id="056daaec-9b00-4484-9326-f1f83de86500"><con:settings/><con:testStep type="request" name="getHostInfo-localhost"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-localhost"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/getMemory"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation id="f6769532-94ee-4e9f-9a5a-0736d03e060a" isOneWay="false" action="" name="lock" bindingOperationName="lock" type="Request-Response" outputName="lockResponse" inputName="lock" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call id="3f735599-666e-4dc8-b9ce-704333b12b73" name="lock-request"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:lock>
|
||||
<!--Optional:-->
|
||||
<id>${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)}</id>
|
||||
<!--Optional:-->
|
||||
<objectId>12345-${=org.apache.commons.lang.RandomStringUtils.randomNumeric(1)}</objectId>
|
||||
</ws:lock>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/lock"/><con:wsrmConfig version="1.2"/></con:call></con:operation><con:operation id="b0374c2b-4ebd-40fe-a161-22b3b70d2617" isOneWay="false" action="" name="EventNotice" bindingOperationName="EventNotice" type="Request-Response" outputName="EventNoticeResponse" inputName="EventNotice" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call id="b5dd6db6-6931-4abd-9fb9-5e49cef8dd58" name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net" xmlns:ns="http://www.eclipse.org/alf/schema/EventBase/1">\r
|
||||
<soapenv:Header/>\r
|
||||
<soapenv:Body>\r
|
||||
<ws:EventNotice>\r
|
||||
<!--Optional:-->\r
|
||||
<ns:EventNotice version="?">\r
|
||||
<ns:Base>\r
|
||||
<ns:EventId>${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)}</ns:EventId>\r
|
||||
<!-- ${=java.time.Instant.now().truncatedTo(java.time.temporal.ChronoUnit.SECONDS)} -->
|
||||
<ns:Timestamp>${=java.time.Instant.now()}</ns:Timestamp>\r
|
||||
<ns:EventType>sync</ns:EventType>\r
|
||||
<ns:ObjectType>User</ns:ObjectType>\r
|
||||
<ns:ObjectId>ABC${=org.apache.commons.lang.RandomStringUtils.randomNumeric(1)}</ns:ObjectId>\r
|
||||
<ns:Source>\r
|
||||
<ns:Product>IDM</ns:Product>\r
|
||||
<ns:ProductVersion>1.0</ns:ProductVersion>\r
|
||||
<ns:ProductInstance>Default</ns:ProductInstance>\r
|
||||
|
||||
</ns:Source>\r
|
||||
<ns:User>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:User>\r
|
||||
|
||||
</ns:Base>\r
|
||||
<!--Optional:-->\r
|
||||
<ns:Detail>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:Detail>\r
|
||||
<!--Optional:-->\r
|
||||
<ns:Extension>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:Extension>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:EventNotice>\r
|
||||
</ws:EventNotice>\r
|
||||
</soapenv:Body>\r
|
||||
</soapenv:Envelope>]]></con:request><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/EventNotice"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:testSuite name="Basic Call Tests" id="4f7bbdb7-7717-424b-b6d8-31bcb6834678"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="true" maxResults="0" name="Pull WSDL" searchProperties="true" id="2048fa40-8ecb-484e-98ff-6c50df26f33b"><con:settings/><con:testStep type="httprequest" name="http://localhost:8080/XServices/MiscService?WSDL" id="9352cf68-f189-4208-99a6-e0ce6707f0ba"><con:settings/><con:config method="GET" xsi:type="con:HttpRequest" name="http://localhost:8080/XServices/MiscService?WSDL" id="8f5f3123-56eb-4369-bc5d-fad6eb8b704f" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost:8080/XServices/MiscService?WSDL</con:endpoint><con:request/><con:assertion type="HTTP Download all resources" name="HTTP Download all resources" id="33c191fb-3b6f-40c1-ac69-466e87f3e592"/><con:assertion type="Response SLA Assertion" name="Response SLA" id="3fdfdeb5-6c77-44b7-ab0a-99c910314b0b"><con:configuration><SLA>200</SLA></con:configuration></con:assertion><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:config></con:testStep><con:properties/></con:testCase><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="getHostInfo" searchProperties="true" id="056daaec-9b00-4484-9326-f1f83de86500"><con:settings/><con:testStep type="request" name="getHostInfo-localhost" id="c8233bd0-de27-40c6-85f0-6e99b4510525"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-localhost" id="bc8e3c7b-c849-4344-aacf-275d6f49314b"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getHostinfo>
|
||||
|
@ -214,7 +450,7 @@
|
|||
<hostname>localhost</hostname>
|
||||
</ws:getHostinfo>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getHostInfo-google.de"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-google.de"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="a94c9581-aadc-4eed-b583-3c74cc3bf610"/><con:assertion type="Schema Compliance" id="b9d01e6a-2ffb-46f6-bd76-f01bef0b56d2"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="733dae60-f9b4-40dc-b06b-7739578b1afd"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getHostInfo-google.de" id="9733be0d-c3bb-4e65-955e-8e2706bf400d"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-google.de" id="d6e1bcbc-0d0e-405c-8dd1-9331c202255e"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getHostinfo>
|
||||
|
@ -222,7 +458,7 @@
|
|||
<hostname>google.de</hostname>
|
||||
</ws:getHostinfo>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:assertion type="Response SLA Assertion" name="Response SLA"><con:configuration><SLA>5000</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getHostInfo-heise.de"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-heise.de"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="c16aa312-79b6-422c-aa84-f073d3d1d696"/><con:assertion type="Schema Compliance" id="df9fe5d2-a27c-4ca5-bb94-14750f465eff"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="f0ef395f-de1c-4958-8a6d-0713746b6fc0"/><con:assertion type="Response SLA Assertion" name="Response SLA" id="c8b57337-9586-42b6-86e4-190d929b9b4b"><con:configuration><SLA>5000</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getHostInfo-heise.de" id="23c02bcb-26e7-448b-a090-74a501481ff1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-heise.de" id="882f67ef-3676-4897-bb01-9c3bbc88c635"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getHostinfo>
|
||||
|
@ -230,7 +466,7 @@
|
|||
<hostname>heise.de</hostname>
|
||||
</ws:getHostinfo>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:assertion type="Response SLA Assertion" name="Response SLA"><con:configuration><SLA>5000</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getHostInfo-173.194.69.94"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-173.194.69.94"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="6ad3d1b1-d9b5-4808-81ae-c83daef8689e"/><con:assertion type="Schema Compliance" id="c7d8e4ad-43c1-4a42-a7f5-da272d774683"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="e9ac4d8a-824d-43e1-83b1-e92196815e02"/><con:assertion type="Response SLA Assertion" name="Response SLA" id="f103512e-d0c6-4a02-8105-8df69d76730a"><con:configuration><SLA>5000</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getHostInfo-173.194.69.94" id="6ace2a41-92ab-4679-b655-218f09dd9df0"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getHostinfo</con:operation><con:request name="getHostInfo-173.194.69.94" id="5b9dc029-5d7d-42b4-8530-589ec255593c"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getHostinfo>
|
||||
|
@ -238,12 +474,12 @@
|
|||
<hostname>173.194.69.94</hostname>
|
||||
</ws:getHostinfo>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:assertion type="Response SLA Assertion" name="Response SLA"><con:configuration><SLA>5000</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:properties/></con:testCase><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Various" searchProperties="true" id="e27d7c3a-54eb-4709-a3a6-25383ddecc99"><con:settings/><con:testStep type="request" name="GetUUID"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>generateUUID</con:operation><con:request name="GetUUID"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="00a8c355-a0c8-44bf-91dd-a8c1004fa379"/><con:assertion type="Schema Compliance" id="a07fc569-4176-4d74-9fbd-e403b2b45436"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="7cb0ec91-1deb-429b-a00f-b51a23f896fd"/><con:assertion type="Response SLA Assertion" name="Response SLA" id="9d9eac12-3aa8-430c-ae1f-9dc89290ca20"><con:configuration><SLA>5000</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:properties/></con:testCase><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Various" searchProperties="true" id="e27d7c3a-54eb-4709-a3a6-25383ddecc99"><con:settings/><con:testStep type="request" name="GetUUID" id="f753598d-4d76-496e-8d98-42b8c533f066"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>generateUUID</con:operation><con:request name="GetUUID" id="db950e9e-eeac-41e7-929c-4579dda308d0"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:generateUUID/>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="sleep-short"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>sleep</con:operation><con:request name="sleep-short"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="870d17ba-e2db-4f00-86dd-3b8f583db490"/><con:assertion type="Schema Compliance" id="d725d869-769a-4812-b428-a0acb0db8d29"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="a1e0ed1e-bcfe-46e6-8a97-8437065cc878"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="sleep-short" id="44ad959e-d761-4853-9266-b8ce8a9ff538"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>sleep</con:operation><con:request name="sleep-short" id="9a1d437f-c3b6-403b-8da5-1a15e2068e20"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:sleep>
|
||||
|
@ -251,12 +487,12 @@
|
|||
<seconds>4</seconds>
|
||||
</ws:sleep>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:assertion type="Response SLA Assertion" name="Response SLA"><con:configuration><SLA>4100</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getInfo"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getInfo</con:operation><con:request name="getInfo"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="66fc15f1-152d-4c73-9784-877445e62a18"/><con:assertion type="Schema Compliance" id="0c10553b-b330-4c89-89e1-3f6aea5e2b00"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="c90acca2-b441-42ad-b571-e7b3260eb6f1"/><con:assertion type="Response SLA Assertion" name="Response SLA" id="d441e36a-2423-46e3-a3db-7eba615af0b0"><con:configuration><SLA>4100</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getInfo" id="808cde56-74ee-41f3-8d67-bca21873badc"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getInfo</con:operation><con:request name="getInfo" id="c0e02025-543c-40c2-97a2-88a25cc77933"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getInfo/>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="sleep-long"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>sleep</con:operation><con:request name="sleep-long"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="f7b7d34e-38c2-40c4-84a8-9dde80342974"/><con:assertion type="Schema Compliance" id="1c65d97f-345d-460e-8dd7-23df4caf500a"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="a2302626-77ec-4a4a-a5be-b7a1a174ef40"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="sleep-long" id="ac52018b-e79c-4e65-88c8-c7d473d8368d"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>sleep</con:operation><con:request name="sleep-long" id="9cfa89e0-7da0-4790-976d-0f2f2718e2de"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:sleep>
|
||||
|
@ -264,7 +500,7 @@
|
|||
<seconds>0</seconds>
|
||||
</ws:sleep>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:assertion type="Response SLA Assertion" name="Response SLA"><con:configuration><SLA>120200</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="sleep-verylong"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>sleep</con:operation><con:request name="sleep-verylong"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="39c23799-a7e1-4732-a5ac-6f2c81b41d65"/><con:assertion type="Schema Compliance" id="56153039-f327-4288-a175-0ed896b8b40a"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="8691aac4-de36-4ef7-a5ff-596d8cc33eae"/><con:assertion type="Response SLA Assertion" name="Response SLA" id="ba3c1c1d-6f5e-4a16-bd8f-12ae814abc94"><con:configuration><SLA>120200</SLA></con:configuration></con:assertion><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="sleep-verylong" id="234e0ca8-d4f1-4b51-932f-4c23965f8bce"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>sleep</con:operation><con:request name="sleep-verylong" id="4508e1b1-7f2b-4574-99a7-61eb61441b2e"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:sleep>
|
||||
|
@ -272,9 +508,60 @@
|
|||
<seconds>32</seconds>
|
||||
</ws:sleep>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getMemory"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getMemory</con:operation><con:request name="getMemory"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="1a56d0b5-36a9-452f-b7c1-7bed141c012c"/><con:assertion type="Schema Compliance" id="d1149cac-b93a-4c15-b2a0-3aee45a07294"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="2010861a-21e0-4f8a-b163-b23d77788d82"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:testStep type="request" name="getMemory" id="a03f0dae-eb1b-4342-a05c-85c064865dd7"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>getMemory</con:operation><con:request name="getMemory" id="cc75c6fa-b263-4f49-90b3-ecaa4367a57c"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">
|
||||
<soapenv:Header/>
|
||||
<soapenv:Body>
|
||||
<ws:getMemory/>
|
||||
</soapenv:Body>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:assertion type="Schema Compliance"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/></con:soapui-project>
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="1361d3de-7291-457c-9b34-26ee0d898572"/><con:assertion type="Schema Compliance" id="547c7db2-91bc-4e74-bfe4-427a4509d6dd"><con:configuration/></con:assertion><con:assertion type="SOAP Fault Assertion" id="03dfe8fa-5aea-4f51-990d-fdfccea3a7b1"/><con:credentials><con:authType>Global HTTP Settings</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:properties/></con:testCase><con:testCase id="76a9c490-e4a8-411b-947a-affb54669264" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="lock-testcase" searchProperties="true"><con:settings/><con:testStep type="request" id="3b6a1ff3-4280-4cba-9aea-643edf9d984d" name="lock - lock-request"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>lock</con:operation><con:request name="lock - lock-request" outgoingWss="" incomingWss="" timeout="" sslKeystore="" useWsAddressing="false" useWsReliableMessaging="false" wssPasswordType="" id="62162435-b052-4de4-b86e-8f2454e97f18"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">\r
|
||||
<soapenv:Header/>\r
|
||||
<soapenv:Body>\r
|
||||
<ws:lock>\r
|
||||
<!--Optional:-->\r
|
||||
<id>${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)}</id>\r
|
||||
<!--Optional:-->\r
|
||||
<objectId>12345-${=org.apache.commons.lang.RandomStringUtils.randomNumeric(1)}</objectId>\r
|
||||
</ws:lock>\r
|
||||
</soapenv:Body>\r
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response" id="62a06f54-9dd6-4acd-81ee-63b20bca9cc5" name="SOAP Response"/><con:assertion type="SOAP Fault Assertion" id="1165de94-a09d-4e7e-96ff-931c950e4208" name="Not SOAP Fault"/><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/lock"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:loadTest id="127f0187-0a39-4543-9417-a0dfcfd1b832" name="lock-loadTest"><con:settings><con:setting id="HttpSettings@close-connections">false</con:setting></con:settings><con:threadCount>2</con:threadCount><con:startDelay>0</con:startDelay><con:sampleInterval>250</con:sampleInterval><con:calculateTPSOnTimePassed>true</con:calculateTPSOnTimePassed><con:resetStatisticsOnThreadCountChange>true</con:resetStatisticsOnThreadCountChange><con:historyLimit>-1</con:historyLimit><con:testLimit>30</con:testLimit><con:limitType>TIME</con:limitType><con:loadStrategy><con:type>Simple</con:type><con:config><testDelay>300</testDelay><randomFactor>0.5</randomFactor></con:config></con:loadStrategy><con:assertion type="Step Status" name="Step Status"/><con:maxAssertionErrors>100</con:maxAssertionErrors><con:cancelExcessiveThreads>true</con:cancelExcessiveThreads><con:strategyInterval>500</con:strategyInterval></con:loadTest><con:properties/></con:testCase><con:testCase id="a2f60fdb-57bd-4270-8473-5d5f06cae0a4" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="SendALFEvent" searchProperties="true"><con:settings/><con:testStep type="request" id="775c1b45-941c-40e1-956b-0039b2b9d1b6" name="EventNotice - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>EventNotice</con:operation><con:request name="EventNotice - Request 1" outgoingWss="" incomingWss="" timeout="" sslKeystore="" useWsAddressing="false" useWsReliableMessaging="false" wssPasswordType="" id="9ab98bee-e2aa-4498-9dc0-6b393c965ece"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net" xmlns:ns="http://www.eclipse.org/alf/schema/EventBase/1">\r
|
||||
<soapenv:Header/>\r
|
||||
<soapenv:Body>\r
|
||||
<ws:EventNotice>\r
|
||||
<!--Optional:-->\r
|
||||
<ns:EventNotice version="?">\r
|
||||
<ns:Base>\r
|
||||
<ns:EventId>${=org.apache.commons.lang.RandomStringUtils.randomNumeric(12)}</ns:EventId>\r
|
||||
<!-- ${=java.time.Instant.now().truncatedTo(java.time.temporal.ChronoUnit.SECONDS)} -->
|
||||
<ns:Timestamp>${=java.time.Instant.now()}</ns:Timestamp>\r
|
||||
<ns:EventType>sync</ns:EventType>\r
|
||||
<ns:ObjectType>User</ns:ObjectType>\r
|
||||
<ns:ObjectId>ABC${=org.apache.commons.lang.RandomStringUtils.randomNumeric(5)}</ns:ObjectId>\r
|
||||
<ns:Source>\r
|
||||
<ns:Product>IDM</ns:Product>\r
|
||||
<ns:ProductVersion>1.0</ns:ProductVersion>\r
|
||||
<ns:ProductInstance>Default</ns:ProductInstance>\r
|
||||
|
||||
</ns:Source>\r
|
||||
<ns:User>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:User>\r
|
||||
|
||||
</ns:Base>\r
|
||||
<!--Optional:-->\r
|
||||
<ns:Detail>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:Detail>\r
|
||||
<!--Optional:-->\r
|
||||
<ns:Extension>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:Extension>\r
|
||||
<!--You may enter ANY elements at this point-->\r
|
||||
</ns:EventNotice>\r
|
||||
</ws:EventNotice>\r
|
||||
</soapenv:Body>\r
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Fault Assertion" id="bef57b04-a0a9-48dd-9b9b-6b719ffcbe37" name="Not SOAP Fault"/><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/EventNotice"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:loadTest id="2ba2dd71-6199-481e-b63b-f1c1aa0b8a88" name="ALFEvend-LoadTest"><con:settings><con:setting id="HttpSettings@close-connections">false</con:setting><con:setting id="HttpSettings@include_request_in_time_taken">true</con:setting><con:setting id="HttpSettings@include_response_in_time_taken">true</con:setting></con:settings><con:threadCount>1</con:threadCount><con:startDelay>0</con:startDelay><con:sampleInterval>250</con:sampleInterval><con:calculateTPSOnTimePassed>true</con:calculateTPSOnTimePassed><con:resetStatisticsOnThreadCountChange>true</con:resetStatisticsOnThreadCountChange><con:historyLimit>-1</con:historyLimit><con:testLimit>5000</con:testLimit><con:limitType>COUNT</con:limitType><con:loadStrategy><con:type>Simple</con:type><con:config><testDelay>20</testDelay><randomFactor>0.5</randomFactor></con:config></con:loadStrategy><con:assertion type="Step Status" name="Step Status"/><con:maxAssertionErrors>100</con:maxAssertionErrors><con:statisticsLogFolder/><con:statisticsLogInterval>0</con:statisticsLogInterval><con:logStatisticsOnThreadChange>false</con:logStatisticsOnThreadChange><con:cancelOnReachedLimit>false</con:cancelOnReachedLimit><con:cancelExcessiveThreads>true</con:cancelExcessiveThreads><con:strategyInterval>500</con:strategyInterval><con:updateStatisticsPerTestStep>false</con:updateStatisticsPerTestStep></con:loadTest><con:properties/></con:testCase><con:testCase id="009c4c6f-cb7f-4881-ada4-a07ef8273328" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Generate UUID" searchProperties="true"><con:settings/><con:testStep type="request" id="8f3b38a1-67c5-4fe9-a0f4-018e4dec186b" name="generateUUID - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>MiscServiceSoapBinding</con:interface><con:operation>generateUUID</con:operation><con:request name="generateUUID - Request 1" outgoingWss="" incomingWss="" timeout="" sslKeystore="" useWsAddressing="false" useWsReliableMessaging="false" wssPasswordType="" id="85939931-bd58-456e-861d-16ed0149b6c6"><con:settings/><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8080/XServices/MiscService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.xservices.brutex.net">\r
|
||||
<soapenv:Header/>\r
|
||||
<soapenv:Body>\r
|
||||
<ws:generateUUID/>\r
|
||||
</soapenv:Body>\r
|
||||
</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Fault Assertion" id="442d923f-5b98-45fb-a672-e1b9abe93c46" name="Not SOAP Fault"/><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="http://ws.xservices.brutex.net/MiscService/generateUUID"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:loadTest id="3e4a76e3-187b-43b1-99e7-3cc67f6e4bed" name="GenerateUUID LoadTest"><con:settings><con:setting id="HttpSettings@close-connections">false</con:setting></con:settings><con:threadCount>32</con:threadCount><con:startDelay>0</con:startDelay><con:sampleInterval>250</con:sampleInterval><con:calculateTPSOnTimePassed>true</con:calculateTPSOnTimePassed><con:resetStatisticsOnThreadCountChange>true</con:resetStatisticsOnThreadCountChange><con:historyLimit>-1</con:historyLimit><con:testLimit>60</con:testLimit><con:limitType>TIME</con:limitType><con:loadStrategy><con:type>Simple</con:type></con:loadStrategy><con:assertion type="Step Status" name="Step Status"/><con:maxAssertionErrors>100</con:maxAssertionErrors><con:cancelExcessiveThreads>true</con:cancelExcessiveThreads><con:strategyInterval>500</con:strategyInterval></con:loadTest><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/><con:sensitiveInformation/></con:soapui-project>
|
Loading…
Reference in New Issue