Author: objectiser
Date: 2010-11-05 10:31:37 -0400 (Fri, 05 Nov 2010)
New Revision: 1085
Added:
trunk/samples/esb/bpel_helloworld_saml/
trunk/samples/esb/bpel_helloworld_saml/bpelContent/
trunk/samples/esb/bpel_helloworld_saml/bpelContent/Hello.xsd
trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.bpel
trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.wsdl
trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldArtifacts.wsdl
trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldProxy.wsdl
trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldWS.wsdl
trunk/samples/esb/bpel_helloworld_saml/bpelContent/bpel-deploy.xml
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-secext-1.0.xsd
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-utility-1.0.xsd
trunk/samples/esb/bpel_helloworld_saml/bpelContent/xmldsig-core-schema.xsd
trunk/samples/esb/bpel_helloworld_saml/build.xml
trunk/samples/esb/bpel_helloworld_saml/esbcontent/
trunk/samples/esb/bpel_helloworld_saml/esbcontent/HelloWorldWS.wsdl
trunk/samples/esb/bpel_helloworld_saml/esbcontent/META-INF/
trunk/samples/esb/bpel_helloworld_saml/esbcontent/META-INF/jboss-esb.xml
trunk/samples/esb/bpel_helloworld_saml/esbcontent/hello.xsd
trunk/samples/esb/bpel_helloworld_saml/esbcontent/jboss-service.xml
trunk/samples/esb/bpel_helloworld_saml/esbcontent/lib/
trunk/samples/esb/bpel_helloworld_saml/esbcontent/login-config.xml
trunk/samples/esb/bpel_helloworld_saml/esbcontent/picketlink-sts.properties
trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/
trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-roles.properties
trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-users.properties
trunk/samples/esb/bpel_helloworld_saml/esbcontent/sts-client.properties
trunk/samples/esb/bpel_helloworld_saml/jboss-wsse-client.xml
trunk/samples/esb/bpel_helloworld_saml/jbossesb-properties.xml
trunk/samples/esb/bpel_helloworld_saml/jndi.properties
trunk/samples/esb/bpel_helloworld_saml/juddi.properties
trunk/samples/esb/bpel_helloworld_saml/log4j.xml
trunk/samples/esb/bpel_helloworld_saml/login-config-unfiltered.xml
trunk/samples/esb/bpel_helloworld_saml/messages/
trunk/samples/esb/bpel_helloworld_saml/messages/hello_request1.xml
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts.properties
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/MANIFEST.MF
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.properties
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.xml
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/picketlink-sts.xml
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/sts_keystore.jks
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-web.xml
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-wsse-server.xml
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/web.xml
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/wsdl/
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/wsdl/PicketLinkSTS.wsdl
trunk/samples/esb/bpel_helloworld_saml/props/
trunk/samples/esb/bpel_helloworld_saml/props/saml-roles.properties
trunk/samples/esb/bpel_helloworld_saml/props/saml-users.properties
trunk/samples/esb/bpel_helloworld_saml/props/sts-roles.properties
trunk/samples/esb/bpel_helloworld_saml/props/sts-users.properties
trunk/samples/esb/bpel_helloworld_saml/readme.txt
trunk/samples/esb/bpel_helloworld_saml/src/
trunk/samples/esb/bpel_helloworld_saml/src/org/
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/DisplaySubjectAction.java
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/HttpGatewayMessageComposer.java
trunk/samples/esb/bpel_helloworld_saml/sts-login-config.xml
trunk/samples/esb/bpel_helloworld_saml/war/
trunk/samples/esb/bpel_helloworld_saml/war/resources/
trunk/samples/esb/bpel_helloworld_saml/war/resources/WEB-INF/
trunk/samples/esb/bpel_helloworld_saml/war/resources/WEB-INF/classes/
trunk/samples/esb/bpel_helloworld_saml/war/resources/WEB-INF/lib/
trunk/samples/esb/bpel_helloworld_saml/war/resources/WEB-INF/web.xml
trunk/samples/esb/bpel_helloworld_saml/war/src/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/samples/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/samples/quickstart/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/samples/quickstart/simple_invoke/
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/samples/quickstart/simple_invoke/HelloWorldWS.java
trunk/samples/esb/bpel_helloworld_saml/war/view/
trunk/samples/esb/bpel_helloworld_saml/war/view/index.jsp
trunk/samples/quickstart/order_management/
trunk/samples/quickstart/order_management/.project
trunk/samples/quickstart/order_management/.settings/
trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.component
trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.project.facet.core.xml
trunk/samples/quickstart/order_management/Ordering-ejb/
trunk/samples/quickstart/order_management/Ordering-ejb/build.xml
trunk/samples/quickstart/order_management/Ordering-ejb/src/
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/MANIFEST.MF
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/bpel-ds.xml
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/jboss.xml
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.hsql
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.mysql51
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBean.java
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBeanLocal.java
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Item.java
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Order.java
trunk/samples/quickstart/order_management/Ordering-war/
trunk/samples/quickstart/order_management/Ordering-war/build.xml
trunk/samples/quickstart/order_management/Ordering-war/src/
trunk/samples/quickstart/order_management/Ordering-war/src/conf/
trunk/samples/quickstart/order_management/Ordering-war/src/conf/MANIFEST.MF
trunk/samples/quickstart/order_management/Ordering-war/src/java/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/quickstart/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/quickstart/ordering/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/quickstart/ordering/ws/
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/quickstart/ordering/ws/OrderingService.java
trunk/samples/quickstart/order_management/Ordering-war/web/
trunk/samples/quickstart/order_management/Ordering-war/web/WEB-INF/
trunk/samples/quickstart/order_management/Ordering-war/web/WEB-INF/web.xml
trunk/samples/quickstart/order_management/Ordering-war/web/index.jsp
trunk/samples/quickstart/order_management/bpelContent/
trunk/samples/quickstart/order_management/bpelContent/Ordering.bpel
trunk/samples/quickstart/order_management/bpelContent/OrderingArtifacts.wsdl
trunk/samples/quickstart/order_management/bpelContent/OrderingService.wsdl
trunk/samples/quickstart/order_management/bpelContent/bpel-deploy.xml
trunk/samples/quickstart/order_management/build.xml
trunk/samples/quickstart/order_management/messages/
trunk/samples/quickstart/order_management/messages/approve.xml
trunk/samples/quickstart/order_management/messages/order.xml
trunk/samples/quickstart/order_management/readme.txt
trunk/samples/quickstart/order_management/sql/
trunk/samples/quickstart/order_management/sql/items.sql
Modified:
trunk/distribution/src/main/assembly/bin.xml
Log:
RIFTSAW-314 and RIFTSAW-315 - add new examples.
Modified: trunk/distribution/src/main/assembly/bin.xml
===================================================================
--- trunk/distribution/src/main/assembly/bin.xml 2010-11-05 08:31:16 UTC (rev 1084)
+++ trunk/distribution/src/main/assembly/bin.xml 2010-11-05 14:31:37 UTC (rev 1085)
@@ -66,6 +66,7 @@
<includes>
<include>common/**</include>
<include>esb/bpel_helloworld/**</include>
+ <include>esb/bpel_helloworld_saml/**</include>
<include>esb/bpel_loan_fault/**</include>
<include>esb/invoke_esb_ebws/**</include>
<include>esb/simple_esb_proxy_invoke/**</include>
@@ -77,6 +78,7 @@
<include>quickstart/hello_world_header_wsdl/**</include>
<include>quickstart/loan_approval/**</include>
<include>quickstart/math/**</include>
+ <include>quickstart/order_management/**</include>
<include>quickstart/salutations/**</include>
<include>quickstart/say_hello/**</include>
<include>quickstart/secure_invoke/**</include>
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/Hello.xsd
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/Hello.xsd
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/Hello.xsd 2010-11-05 14:31:37 UTC
(rev 1085)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <xs:schema targetNamespace="http://simple_invoke/helloworld"
version="1.0" xmlns:tns="http://simple_invoke/helloworld"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="sayHello" type="tns:sayHello"/>
+ <xs:element name="sayHelloResponse"
type="tns:sayHelloResponse"/>
+ <xs:complexType name="sayHello">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="toWhom"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="sayHelloResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.bpel
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.bpel
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.bpel 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,96 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+<process name="HelloWorldSecurityHeaderCopy"
+
targetNamespace="http://www.jboss.org/bpel/examples"
+
xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+
xmlns:tns="http://www.jboss.org/bpel/examples"
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
xmlns:intf="http://www.jboss.org/bpel/examples/wsdl"
+ queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
+ expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
+
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
+
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-...
+ xmlns:si="http://simple_invoke/helloworld"
+
xmlns:ea="http://www.jboss.org/bpel/examplesArtifacts">
+
+ <bpel:import namespace="http://simple_invoke/helloworld"
location="HelloWorldProxy.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"></bpel:impo...
+ <bpel:import namespace="http://simple_invoke/helloworld"
location="HelloWorld.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"></bpel:impo...
+ <bpel:import
namespace="http://www.jboss.org/bpel/examplesArtifacts"
location="HelloWorldArtifacts.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"></bpel:impo...
+
+ <partnerLinks>
+
+ <bpel:partnerLink name="helloWorldPartnerLink"
partnerLinkType="ea:HelloWorldLT"
myRole="HelloWorldRole"></bpel:partnerLink>
+
+ <bpel:partnerLink name="externalPartnerLink"
partnerLinkType="si:externalPLT"
partnerRole="externalRole"></bpel:partnerLink>
+ </partnerLinks>
+
+ <variables>
+ <variable name="inputVar"
messageType="si:HelloWorld_sayHi">
+ </variable>
+ <variable name="outputVar"
messageType="si:HelloWorld_sayHiResponse"/>
+
+
+
+
+ <bpel:variable name="externalVar"
messageType="si:HelloWorld_sayHello">
+ </bpel:variable>
+ <bpel:variable name="externalRespVar"
messageType="si:HelloWorld_sayHelloResponse"></bpel:variable>
+ </variables>
+
+ <sequence>
+ <receive
+ name="start"
+ createInstance="yes" partnerLink="helloWorldPartnerLink"
operation="sayHi" portType="si:HelloHeaderWSPortType"
variable="inputVar"/>
+
+
+ <bpel:assign validate="no" name="AssignForInvoke">
+
+
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal><sayHello><toWhom></toWhom></sayHello></bpel:literal>
+ </bpel:from>
+ <bpel:to variable="externalVar"
part="sayHello"></bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from part="Security"
variable="inputVar"></bpel:from>
+ <bpel:to part="Security"
variable="externalVar"></bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from part="sayHello"
variable="inputVar"></bpel:from>
+ <bpel:to part="sayHello"
variable="externalVar"></bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:invoke name="InvokeWithSecurityHeader"
partnerLink="externalPartnerLink" operation="sayHello"
portType="si:HelloWorld" inputVariable="externalVar"
outputVariable="externalRespVar"></bpel:invoke>
+ <bpel:assign validate="no" name="AssignForReply">
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal><sayHelloResponse><return></return></sayHelloResponse></bpel:literal>
+ </bpel:from>
+ <bpel:to variable="outputVar"
part="sayHelloResponse"></bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from>concat($externalRespVar.sayHelloResponse/return,'
and BPEL')</bpel:from>
+ <bpel:to part="sayHelloResponse"
variable="outputVar"></bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <reply name="end"
+ partnerLink="helloWorldPartnerLink" operation="sayHi"
portType="si:HelloHeaderWSPortType" variable="outputVar"/>
+ </sequence>
+</process>
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.wsdl
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.wsdl
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorld.wsdl 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+<wsdl:definitions
+ targetNamespace="http://simple_invoke/helloworld"
+
xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://simple_invoke/helloworld"
+
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-...
+
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
+
xmlns:wsaws="http://www.w3.org/2005/08/addressing"
+
xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"...
+
+
+ <wsdl:types>
+ <xs:schema targetNamespace="http://simple_invoke/helloworld"
version="1.0" xmlns:tns="http://simple_invoke/helloworld"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="sayHello" type="tns:sayHello"/>
+ <xs:element name="sayHelloResponse"
type="tns:sayHelloResponse"/>
+ <xs:complexType name="sayHello">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="toWhom"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="sayHelloResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+ <xsd:schema
xmlns="http://www.w3.org/2001/XMLSchema">
+ <import
namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
schemaLocation="oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
+ </xsd:schema>
+</wsdl:types>
+
+ <message name="HelloWorld_sayHi">
+ <part name="sayHello" element="tns:sayHello" />
+ <part name="Security" element="wsse:Security" />
+<!-- <part name="Assertion" element="saml:Assertion"
xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"/> -->
+ </message>
+ <message name="HelloWorld_sayHiResponse">
+ <part name="sayHelloResponse" element="tns:sayHelloResponse"
/>
+ </message>
+ <portType name="HelloHeaderWSPortType">
+ <operation name="sayHi">
+ <input message="tns:HelloWorld_sayHi"></input>
+ <output message="tns:HelloWorld_sayHiResponse"></output>
+ </operation>
+ </portType>
+ <wsdl:binding name="HelloHeaderWSSoapBinding"
type="tns:HelloHeaderWSPortType">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="sayHi">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input>
+ <soap:body use="literal" parts="sayHello" />
+ <soap:header message="tns:HelloWorld_sayHi"
+ part="Security" use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal" parts="sayHelloResponse"
/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="HelloHeaderWSService">
+ <wsdl:port name="HelloHeaderWSPort"
binding="tns:HelloHeaderWSSoapBinding">
+ <soap:address
location="http://localhost:8080/Quickstart_bpel_security_header_copyWS"/>
+ </wsdl:port>
+ </wsdl:service>
+
+ <plnk:partnerLinkType name="HelloPartnerLinkType">
+ <plnk:role name="me"
portType="tns:HelloHeaderWSPortType"/>
+ <plnk:role name="you"
portType="tns:HelloHeaderWSPortType"/>
+ </plnk:partnerLinkType>
+
+ <!-- <wsp:Policy
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
wsu:Id="UsernameTokenSecurityPolicyPasswordOptional">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <wsse:SecurityToken
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-...
wsp:Usage="wsp:Required">
+ <wsse:TokenType>wsse:UserNameToken</wsse:TokenType>
+ <Claims>
+ <SubjectName MatchType="wsse:Exact"/>
+ <UsePassword wsp:Usage="wsp:Optional"/>
+ </Claims>
+ </wsse:SecurityToken>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+ -->
+
+</wsdl:definitions>
+
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldArtifacts.wsdl
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldArtifacts.wsdl
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldArtifacts.wsdl 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
+<definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:tns="http://www.jboss.org/bpel/examplesArtifacts"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:wsdl="http://simple_invoke/helloworld"
name="HelloWorldArtifacts"
targetNamespace="http://www.jboss.org/bpel/examplesArtifacts">
+ <plnk:partnerLinkType name="HelloWorldLT">
+ <plnk:role name="HelloWorldRole"
portType="wsdl:HelloHeaderWSPortType"/>
+ </plnk:partnerLinkType>
+ <import location="HelloWorld.wsdl"
namespace="http://simple_invoke/helloworld"/>
+</definitions>
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldProxy.wsdl
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldProxy.wsdl
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldProxy.wsdl 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
+<definitions name="HelloWorldWSService"
+targetNamespace="http://simple_invoke/helloworld"
+xmlns="http://schemas.xmlsoap.org/wsdl/"
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+xmlns:tns="http://simple_invoke/helloworld"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
+xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+xmlns:wsaws="http://www.w3.org/2005/08/addressing"
+xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+
+ <types>
+ <xs:schema targetNamespace="http://simple_invoke/helloworld"
version="1.0" xmlns:tns="http://simple_invoke/helloworld"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="sayHello" type="tns:sayHello"/>
+ <xs:element name="sayHelloResponse"
type="tns:sayHelloResponse"/>
+ <xs:complexType name="sayHello">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="toWhom"
type="xs:string"/>
+ </xs:sequence>
+
+ </xs:complexType>
+ <xs:complexType name="sayHelloResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+ <xsd:schema
xmlns="http://www.w3.org/2001/XMLSchema">
+ <import
namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
schemaLocation="oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
+ </xsd:schema>
+ </types>
+ <message name="HelloWorld_sayHelloResponse">
+ <part element="tns:sayHelloResponse"
name="sayHelloResponse">
+ </part>
+ </message>
+ <message name="HelloWorld_sayHello">
+ <part element="tns:sayHello" name="sayHello">
+ </part>
+ <part name="Security" element="wsse:Security" />
+ </message>
+ <portType name="HelloWorld">
+ <operation name="sayHello" parameterOrder="sayHello">
+
+ <input message="tns:HelloWorld_sayHello">
+ </input>
+ <output message="tns:HelloWorld_sayHelloResponse">
+ </output>
+ </operation>
+ </portType>
+ <binding name="HelloWorldBinding" type="tns:HelloWorld">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="sayHello">
+
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal" parts="sayHello"/>
+ <soap:header message="tns:HelloWorld_sayHello" part="Security"
use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="HelloWorldWSService">
+ <port binding="tns:HelloWorldBinding"
name="HelloWorldPort">
+ <soap:address
location="http://127.0.0.1:8080/Quickstart_bpel_hello_world_saml/http/BPELESBSecurity/HelloWorldSecurityProxyService"/>
+ </port>
+ </service>
+
+ <plnk:partnerLinkType name="externalPLT">
+ <plnk:role name="externalRole" portType="tns:HelloWorld"/>
+ </plnk:partnerLinkType>
+
+</definitions>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldWS.wsdl
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldWS.wsdl
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/HelloWorldWS.wsdl 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<definitions name="HelloWorldWSService"
+targetNamespace="http://simple_invoke/helloworld"
+xmlns="http://schemas.xmlsoap.org/wsdl/"
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+xmlns:tns="http://simple_invoke/helloworld"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
+xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+xmlns:wsaws="http://www.w3.org/2005/08/addressing"
+xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+
+ <types>
+ <xs:schema targetNamespace="http://simple_invoke/helloworld"
version="1.0" xmlns:tns="http://simple_invoke/helloworld"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="sayHello" type="tns:sayHello"/>
+ <xs:element name="sayHelloResponse"
type="tns:sayHelloResponse"/>
+ <xs:complexType name="sayHello">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="toWhom"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="sayHelloResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+ <xsd:schema
xmlns="http://www.w3.org/2001/XMLSchema">
+ <import
namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
schemaLocation="oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
+ </xsd:schema>
+</types>
+
+ <message name="HelloWorld_sayHello">
+ <part element="tns:sayHello" name="sayHello"></part>
+ <part name="Security" element="wsse:Security" />
+ </message>
+ <message name="HelloWorld_sayHelloResponse">
+ <part element="tns:sayHelloResponse"
name="sayHelloResponse"></part>
+ </message>
+ <portType name="HelloWorld">
+ <operation name="sayHello" parameterOrder="sayHello">
+ <input message="tns:HelloWorld_sayHello"></input>
+ <output message="tns:HelloWorld_sayHelloResponse"></output>
+ </operation>
+ </portType>
+ <binding name="HelloWorldBinding" type="tns:HelloWorld">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="sayHello">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal" parts="sayHello"/>
+ <soap:header message="tns:HelloWorld_sayHello" part="Security"
use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldWSService">
+ <port binding="tns:HelloWorldBinding" name="HelloWorldPort">
+ <soap:address
location="http://127.0.0.1:8080/Quickstart_bpel_security_header_copy/HelloWorldWS"/>
+ </port>
+ </service>
+ <plnk:partnerLinkType name="theExternalService_PartnerLinkType">
+ <plnk:role name="callingTheExternalService"
portType="tns:HelloWorld"/>
+ </plnk:partnerLinkType>
+</definitions>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/bpel-deploy.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/bpel-deploy.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/bpel-deploy.xml 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deploy
xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:examples="http://www.jboss.org/bpel/examples"
xmlns:helloworld="http://simple_invoke/helloworld">
+ <process name="examples:HelloWorldSecurityHeaderCopy">
+ <active>true</active>
+ <retired>false</retired>
+ <process-events generate="all"/>
+ <provide partnerLink="helloWorldPartnerLink">
+ <service name="helloworld:HelloHeaderWSService"
port="HelloHeaderWSPort"/>
+ </provide>
+ <invoke partnerLink="externalPartnerLink">
+ <service name="helloworld:HelloWorldWSService"
port="HelloWorldPort"/>
+ </invoke>
+ </process>
+</deploy>
\ No newline at end of file
Added:
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-secext-1.0.xsd
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-secext-1.0.xsd
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-secext-1.0.xsd 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+OASIS takes no position regarding the validity or scope of any intellectual property or
other rights that might be claimed to pertain to the implementation or use of the
technology described in this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it has made any effort to
identify any such rights. Information on OASIS's procedures with respect to rights in
OASIS specifications can be found at the OASIS website. Copies of claims of rights made
available for publication and any assurances of licenses to be made available, or the
result of an attempt made to obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification, can be obtained from
the OASIS Executive Director.
+OASIS invites any interested party to bring to its attention any copyrights, patents or
patent applications, or other proprietary rights which may cover technology that may be
required to implement this specification. Please address the information to the OASIS
Executive Director.
+Copyright © OASIS Open 2002-2004. All Rights Reserved.
+This document and translations of it may be copied and furnished to others, and
derivative works that comment on or otherwise explain it or assist in its implementation
may be prepared, copied, published and distributed, in whole or in part, without
restriction of any kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this document itself does not
be modified in any way, such as by removing the copyright notice or references to OASIS,
except as needed for the purpose of developing OASIS specifications, in which case the
procedures for copyrights defined in the OASIS Intellectual Property Rights document must
be followed, or as required to translate it into languages other than English.
+The limited permissions granted above are perpetual and will not be revoked by OASIS or
its successors or assigns.
+This document and the information contained herein is provided on an “AS IS” basis and
OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+-->
+<xsd:schema
targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401...
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssec...
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-...
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
elementFormDefault="qualified" attributeFormDefault="unqualified"
blockDefault="#all" version="0.2">
+ <xsd:import
namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
schemaLocation="oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
+<!--
+ <xsd:import
namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+-->
+ <xsd:import
namespace="http://www.w3.org/2000/09/xmldsig#"
schemaLocation="xmldsig-core-schema.xsd"/>
+ <xsd:complexType name="AttributedString">
+ <xsd:annotation>
+ <xsd:documentation>This type represents an element with arbitrary
attributes.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attribute ref="wsu:Id"/>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="PasswordString">
+ <xsd:annotation>
+ <xsd:documentation>This type is used for password elements per Section
4.1.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:AttributedString">
+ <xsd:attribute name="Type" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="EncodedString">
+ <xsd:annotation>
+ <xsd:documentation>This type is used for elements containing stringified binary
data.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:AttributedString">
+ <xsd:attribute name="EncodingType" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="UsernameTokenType">
+ <xsd:annotation>
+ <xsd:documentation>This type represents a username token per Section
4.1</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element name="Username" type="wsse:AttributedString"/>
+ <xsd:any processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute ref="wsu:Id"/>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="BinarySecurityTokenType">
+ <xsd:annotation>
+ <xsd:documentation>A security token that is encoded in
binary</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:EncodedString">
+ <xsd:attribute name="ValueType" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="KeyIdentifierType">
+ <xsd:annotation>
+ <xsd:documentation>A security token key identifier</xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="wsse:EncodedString">
+ <xsd:attribute name="ValueType" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:simpleType name="tUsage">
+ <xsd:annotation>
+ <xsd:documentation>Typedef to allow a list of usages (as
URIs).</xsd:documentation>
+ </xsd:annotation>
+ <xsd:list itemType="xsd:anyURI"/>
+ </xsd:simpleType>
+ <xsd:attribute name="Usage" type="tUsage">
+ <xsd:annotation>
+ <xsd:documentation>This global attribute is used to indicate the usage of a
referenced or indicated token within the containing context</xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:complexType name="ReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This type represents a reference to an external security
token.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute name="URI" type="xsd:anyURI"/>
+ <xsd:attribute name="ValueType" type="xsd:anyURI"/>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="EmbeddedType">
+ <xsd:annotation>
+ <xsd:documentation>This type represents a reference to an embedded security
token.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:any processContents="lax"/>
+ </xsd:choice>
+ <xsd:attribute name="ValueType" type="xsd:anyURI"/>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="SecurityTokenReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This type is used reference a security
token.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:any processContents="lax"/>
+ </xsd:choice>
+ <xsd:attribute ref="wsu:Id"/>
+ <xsd:attribute ref="wsse:Usage"/>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="SecurityHeaderType">
+ <xsd:annotation>
+ <xsd:documentation>This complexType defines header block to use for
security-relevant data directed at a specific SOAP actor.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:any processContents="lax" minOccurs="0"
maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The use of "any" is to allow extensibility and
different forms of security data.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:sequence>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:complexType>
+ <xsd:complexType name="TransformationParametersType">
+ <xsd:annotation>
+ <xsd:documentation>This complexType defines a container for elements to be
specified from any namespace as properties/parameters of a DSIG
transformation.</xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:any processContents="lax" minOccurs="0"
maxOccurs="unbounded">
+ <xsd:annotation>
+ <xsd:documentation>The use of "any" is to allow extensibility from
any namespace.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:any>
+ </xsd:sequence>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:complexType>
+ <xsd:element name="UsernameToken"
type="wsse:UsernameTokenType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:UsernameToken element per
Section 4.1.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="BinarySecurityToken"
type="wsse:BinarySecurityTokenType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:BinarySecurityToken element per
Section 4.2.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Reference" type="wsse:ReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines a security token
reference</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Embedded" type="wsse:EmbeddedType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines a security token embedded
reference</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="KeyIdentifier"
type="wsse:KeyIdentifierType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines a key identifier
reference</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="SecurityTokenReference"
type="wsse:SecurityTokenReferenceType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:SecurityTokenReference per
Section 4.3.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Security" type="wsse:SecurityHeaderType">
+ <xsd:annotation>
+ <xsd:documentation>This element defines the wsse:Security SOAP header element
per Section 4.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="TransformationParameters"
type="wsse:TransformationParametersType">
+ <xsd:annotation>
+ <xsd:documentation>This element contains properties for transformations from any
namespace, including DSIG.</xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Password" type="wsse:PasswordString"/>
+ <xsd:element name="Nonce" type="wsse:EncodedString"/>
+ <xsd:simpleType name="FaultcodeEnum">
+ <xsd:restriction base="xsd:QName">
+ <xsd:enumeration value="wsse:UnsupportedSecurityToken"/>
+ <xsd:enumeration value="wsse:UnsupportedAlgorithm"/>
+ <xsd:enumeration value="wsse:InvalidSecurity"/>
+ <xsd:enumeration value="wsse:InvalidSecurityToken"/>
+ <xsd:enumeration value="wsse:FailedAuthentication"/>
+ <xsd:enumeration value="wsse:FailedCheck"/>
+ <xsd:enumeration value="wsse:SecurityTokenUnavailable"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+</xsd:schema>
Added:
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-utility-1.0.xsd
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-utility-1.0.xsd
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/bpelContent/oasis-200401-wss-wssecurity-utility-1.0.xsd 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+OASIS takes no position regarding the validity or scope of any intellectual property or
other rights that might be claimed to pertain to the implementation or use of the
technology described in this document or the extent to which any license under such rights
might or might not be available; neither does it represent that it has made any effort to
identify any such rights. Information on OASIS's procedures with respect to rights in
OASIS specifications can be found at the OASIS website. Copies of claims of rights made
available for publication and any assurances of licenses to be made available, or the
result of an attempt made to obtain a general license or permission for the use of such
proprietary rights by implementors or users of this specification, can be obtained from
the OASIS Executive Director.
+OASIS invites any interested party to bring to its attention any copyrights, patents or
patent applications, or other proprietary rights which may cover technology that may be
required to implement this specification. Please address the information to the OASIS
Executive Director.
+Copyright © OASIS Open 2002-2004. All Rights Reserved.
+This document and translations of it may be copied and furnished to others, and
derivative works that comment on or otherwise explain it or assist in its implementation
may be prepared, copied, published and distributed, in whole or in part, without
restriction of any kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this document itself does not
be modified in any way, such as by removing the copyright notice or references to OASIS,
except as needed for the purpose of developing OASIS specifications, in which case the
procedures for copyrights defined in the OASIS Intellectual Property Rights document must
be followed, or as required to translate it into languages other than English.
+The limited permissions granted above are perpetual and will not be revoked by OASIS or
its successors or assigns.
+This document and the information contained herein is provided on an “AS IS” basis and
OASIS DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY
WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY
IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+-->
+<xsd:schema
targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401...
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssec...
elementFormDefault="qualified" attributeFormDefault="unqualified"
version="0.1">
+ <!-- // Fault Codes /////////////////////////////////////////// -->
+ <xsd:simpleType name="tTimestampFault">
+ <xsd:annotation>
+ <xsd:documentation>
+This type defines the fault code value for Timestamp message expiration.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:restriction base="xsd:QName">
+ <xsd:enumeration value="wsu:MessageExpired"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ <!-- // Global attributes //////////////////////////////////// -->
+ <xsd:attribute name="Id" type="xsd:ID">
+ <xsd:annotation>
+ <xsd:documentation>
+This global attribute supports annotating arbitrary elements with an ID.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:attribute>
+ <xsd:attributeGroup name="commonAtts">
+ <xsd:annotation>
+ <xsd:documentation>
+Convenience attribute group used to simplify this schema.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:attribute ref="wsu:Id" use="optional"/>
+ <xsd:anyAttribute namespace="##other"
processContents="lax"/>
+ </xsd:attributeGroup>
+ <!-- // Utility types //////////////////////////////////////// -->
+ <xsd:complexType name="AttributedDateTime">
+ <xsd:annotation>
+ <xsd:documentation>
+This type is for elements whose [children] is a psuedo-dateTime and can have arbitrary
attributes.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string">
+ <xsd:attributeGroup ref="wsu:commonAtts"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <xsd:complexType name="AttributedURI">
+ <xsd:annotation>
+ <xsd:documentation>
+This type is for elements whose [children] is an anyURI and can have arbitrary
attributes.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:anyURI">
+ <xsd:attributeGroup ref="wsu:commonAtts"/>
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ <!-- // Timestamp header components /////////////////////////// -->
+ <xsd:complexType name="TimestampType">
+ <xsd:annotation>
+ <xsd:documentation>
+This complex type ties together the timestamp related elements into a composite type.
+ </xsd:documentation>
+ </xsd:annotation>
+ <xsd:sequence>
+ <xsd:element ref="wsu:Created" minOccurs="0"/>
+ <xsd:element ref="wsu:Expires" minOccurs="0"/>
+ <xsd:choice minOccurs="0" maxOccurs="unbounded">
+ <xsd:any namespace="##other" processContents="lax"/>
+ </xsd:choice>
+ </xsd:sequence>
+ <xsd:attributeGroup ref="wsu:commonAtts"/>
+ </xsd:complexType>
+ <xsd:element name="Timestamp" type="wsu:TimestampType">
+ <xsd:annotation>
+ <xsd:documentation>
+This element allows Timestamps to be applied anywhere element wildcards are present,
+including as a SOAP header.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <!-- global element decls to allow individual elements to appear anywhere -->
+ <xsd:element name="Expires" type="wsu:AttributedDateTime">
+ <xsd:annotation>
+ <xsd:documentation>
+This element allows an expiration time to be applied anywhere element wildcards are
present.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+ <xsd:element name="Created" type="wsu:AttributedDateTime">
+ <xsd:annotation>
+ <xsd:documentation>
+This element allows a creation time to be applied anywhere element wildcards are
present.
+ </xsd:documentation>
+ </xsd:annotation>
+ </xsd:element>
+</xsd:schema>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/bpelContent/xmldsig-core-schema.xsd
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/bpelContent/xmldsig-core-schema.xsd
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/bpelContent/xmldsig-core-schema.xsd 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,301 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Schema for XML Signatures
+
http://www.w3.org/2000/09/xmldsig#
+ $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $
+
+ Copyright 2001 The Internet Society and W3C (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved.
+
http://www.w3.org/Consortium/Legal/
+
+ This document is governed by the W3C Software License [1] as described
+ in the FAQ [2].
+
+ [1]
http://www.w3.org/Consortium/Legal/copyright-software-19980720
+ [2]
http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
+-->
+<schema
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
targetNamespace="http://www.w3.org/2000/09/xmldsig#" version="0.1"
elementFormDefault="qualified">
+
+<!-- Basic Types Defined for Signatures -->
+
+<simpleType name="CryptoBinary">
+ <restriction base="base64Binary">
+ </restriction>
+</simpleType>
+
+<!-- Start Signature -->
+
+<element name="Signature" type="ds:SignatureType"/>
+<complexType name="SignatureType">
+ <sequence>
+ <element ref="ds:SignedInfo"/>
+ <element ref="ds:SignatureValue"/>
+ <element ref="ds:KeyInfo" minOccurs="0"/>
+ <element ref="ds:Object" minOccurs="0"
maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="SignatureValue" type="ds:SignatureValueType"/>
+ <complexType name="SignatureValueType">
+ <simpleContent>
+ <extension base="base64Binary">
+ <attribute name="Id" type="ID"
use="optional"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+
+<!-- Start SignedInfo -->
+
+<element name="SignedInfo" type="ds:SignedInfoType"/>
+<complexType name="SignedInfoType">
+ <sequence>
+ <element ref="ds:CanonicalizationMethod"/>
+ <element ref="ds:SignatureMethod"/>
+ <element ref="ds:Reference" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="CanonicalizationMethod"
type="ds:CanonicalizationMethodType"/>
+ <complexType name="CanonicalizationMethodType" mixed="true">
+ <sequence>
+ <any namespace="##any" minOccurs="0"
maxOccurs="unbounded"/>
+ <!-- (0,unbounded) elements from (1,1) namespace -->
+ </sequence>
+ <attribute name="Algorithm" type="anyURI"
use="required"/>
+ </complexType>
+
+ <element name="SignatureMethod"
type="ds:SignatureMethodType"/>
+ <complexType name="SignatureMethodType" mixed="true">
+ <sequence>
+ <element name="HMACOutputLength" minOccurs="0"
type="ds:HMACOutputLengthType"/>
+ <any namespace="##other" minOccurs="0"
maxOccurs="unbounded"/>
+ <!-- (0,unbounded) elements from (1,1) external namespace -->
+ </sequence>
+ <attribute name="Algorithm" type="anyURI"
use="required"/>
+ </complexType>
+
+<!-- Start Reference -->
+
+<element name="Reference" type="ds:ReferenceType"/>
+<complexType name="ReferenceType">
+ <sequence>
+ <element ref="ds:Transforms" minOccurs="0"/>
+ <element ref="ds:DigestMethod"/>
+ <element ref="ds:DigestValue"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+ <attribute name="URI" type="anyURI"
use="optional"/>
+ <attribute name="Type" type="anyURI"
use="optional"/>
+</complexType>
+
+ <element name="Transforms" type="ds:TransformsType"/>
+ <complexType name="TransformsType">
+ <sequence>
+ <element ref="ds:Transform" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <element name="Transform" type="ds:TransformType"/>
+ <complexType name="TransformType" mixed="true">
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax"/>
+ <!-- (1,1) elements from (0,unbounded) namespaces -->
+ <element name="XPath" type="string"/>
+ </choice>
+ <attribute name="Algorithm" type="anyURI"
use="required"/>
+ </complexType>
+
+<!-- End Reference -->
+
+<element name="DigestMethod" type="ds:DigestMethodType"/>
+<complexType name="DigestMethodType" mixed="true">
+ <sequence>
+ <any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Algorithm" type="anyURI"
use="required"/>
+</complexType>
+
+<element name="DigestValue" type="ds:DigestValueType"/>
+<simpleType name="DigestValueType">
+ <restriction base="base64Binary"/>
+</simpleType>
+
+<!-- End SignedInfo -->
+
+<!-- Start KeyInfo -->
+
+<element name="KeyInfo" type="ds:KeyInfoType"/>
+<complexType name="KeyInfoType" mixed="true">
+ <choice maxOccurs="unbounded">
+ <element ref="ds:KeyName"/>
+ <element ref="ds:KeyValue"/>
+ <element ref="ds:RetrievalMethod"/>
+ <element ref="ds:X509Data"/>
+ <element ref="ds:PGPData"/>
+ <element ref="ds:SPKIData"/>
+ <element ref="ds:MgmtData"/>
+ <any processContents="lax" namespace="##other"/>
+ <!-- (1,1) elements from (0,unbounded) namespaces -->
+ </choice>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="KeyName" type="string"/>
+ <element name="MgmtData" type="string"/>
+
+ <element name="KeyValue" type="ds:KeyValueType"/>
+ <complexType name="KeyValueType" mixed="true">
+ <choice>
+ <element ref="ds:DSAKeyValue"/>
+ <element ref="ds:RSAKeyValue"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ </complexType>
+
+ <element name="RetrievalMethod"
type="ds:RetrievalMethodType"/>
+ <complexType name="RetrievalMethodType">
+ <sequence>
+ <element ref="ds:Transforms" minOccurs="0"/>
+ </sequence>
+ <attribute name="URI" type="anyURI"/>
+ <attribute name="Type" type="anyURI"
use="optional"/>
+ </complexType>
+
+<!-- Start X509Data -->
+
+<element name="X509Data" type="ds:X509DataType"/>
+<complexType name="X509DataType">
+ <sequence maxOccurs="unbounded">
+ <choice>
+ <element name="X509IssuerSerial"
type="ds:X509IssuerSerialType"/>
+ <element name="X509SKI" type="base64Binary"/>
+ <element name="X509SubjectName" type="string"/>
+ <element name="X509Certificate" type="base64Binary"/>
+ <element name="X509CRL" type="base64Binary"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ </sequence>
+</complexType>
+
+<complexType name="X509IssuerSerialType">
+ <sequence>
+ <element name="X509IssuerName" type="string"/>
+ <element name="X509SerialNumber" type="integer"/>
+ </sequence>
+</complexType>
+
+<!-- End X509Data -->
+
+<!-- Begin PGPData -->
+
+<element name="PGPData" type="ds:PGPDataType"/>
+<complexType name="PGPDataType">
+ <choice>
+ <sequence>
+ <element name="PGPKeyID" type="base64Binary"/>
+ <element name="PGPKeyPacket" type="base64Binary"
minOccurs="0"/>
+ <any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <sequence>
+ <element name="PGPKeyPacket" type="base64Binary"/>
+ <any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </choice>
+</complexType>
+
+<!-- End PGPData -->
+
+<!-- Begin SPKIData -->
+
+<element name="SPKIData" type="ds:SPKIDataType"/>
+<complexType name="SPKIDataType">
+ <sequence maxOccurs="unbounded">
+ <element name="SPKISexp" type="base64Binary"/>
+ <any namespace="##other" processContents="lax"
minOccurs="0"/>
+ </sequence>
+</complexType>
+
+<!-- End SPKIData -->
+
+<!-- End KeyInfo -->
+
+<!-- Start Object (Manifest, SignatureProperty) -->
+
+<element name="Object" type="ds:ObjectType"/>
+<complexType name="ObjectType" mixed="true">
+ <sequence minOccurs="0" maxOccurs="unbounded">
+ <any namespace="##any" processContents="lax"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+ <attribute name="MimeType" type="string"
use="optional"/> <!-- add a grep facet -->
+ <attribute name="Encoding" type="anyURI"
use="optional"/>
+</complexType>
+
+<element name="Manifest" type="ds:ManifestType"/>
+<complexType name="ManifestType">
+ <sequence>
+ <element ref="ds:Reference" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+<element name="SignatureProperties"
type="ds:SignaturePropertiesType"/>
+<complexType name="SignaturePropertiesType">
+ <sequence>
+ <element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="Id" type="ID" use="optional"/>
+</complexType>
+
+ <element name="SignatureProperty"
type="ds:SignaturePropertyType"/>
+ <complexType name="SignaturePropertyType" mixed="true">
+ <choice maxOccurs="unbounded">
+ <any namespace="##other" processContents="lax"/>
+ <!-- (1,1) elements from (1,unbounded) namespaces -->
+ </choice>
+ <attribute name="Target" type="anyURI"
use="required"/>
+ <attribute name="Id" type="ID" use="optional"/>
+ </complexType>
+
+<!-- End Object (Manifest, SignatureProperty) -->
+
+<!-- Start Algorithm Parameters -->
+
+<simpleType name="HMACOutputLengthType">
+ <restriction base="integer"/>
+</simpleType>
+
+<!-- Start KeyValue Element-types -->
+
+<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
+<complexType name="DSAKeyValueType">
+ <sequence>
+ <sequence minOccurs="0">
+ <element name="P" type="ds:CryptoBinary"/>
+ <element name="Q" type="ds:CryptoBinary"/>
+ </sequence>
+ <element name="G" type="ds:CryptoBinary"
minOccurs="0"/>
+ <element name="Y" type="ds:CryptoBinary"/>
+ <element name="J" type="ds:CryptoBinary"
minOccurs="0"/>
+ <sequence minOccurs="0">
+ <element name="Seed" type="ds:CryptoBinary"/>
+ <element name="PgenCounter" type="ds:CryptoBinary"/>
+ </sequence>
+ </sequence>
+</complexType>
+
+<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
+<complexType name="RSAKeyValueType">
+ <sequence>
+ <element name="Modulus" type="ds:CryptoBinary"/>
+ <element name="Exponent" type="ds:CryptoBinary"/>
+ </sequence>
+</complexType>
+
+<!-- End KeyValue Element-types -->
+
+<!-- End Signature -->
+
+</schema>
Added: trunk/samples/esb/bpel_helloworld_saml/build.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/build.xml (rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/build.xml 2010-11-05 14:31:37 UTC (rev 1085)
@@ -0,0 +1,159 @@
+<project name="Quickstart_bpel_hello_world_saml" default="deploy"
basedir=".">
+
+ <description>
+ ${ant.project.name}
+ ${line.separator}
+ </description>
+
+
+ <property name="deployers.dir"
value="${deploy.dir}/../deployers"/>
+
+
+ <!-- additional deploys -->
+
+ <property name="additional.deploys"
value="jboss-wsse-client.xml sts-client.properties, jboss-service.xml,
login-config.xml, HelloWorldWS.wsdl"/>
+
+ <property name="stswar.build.dir"
location="build/war/classes"/>
+
+ <target name="build-picklink-sts" description="make picklink-sts
war">
+
+ <!-- War... -->
+ <jar destfile="build/picketlink-sts.war"
+ basedir="${basedir}/picketlink-sts" />
+
+<!--
+ <war warfile="build/picketlink-sts.war"
+ webxml="${basedir}/picketlink-sts/WEB-INF/web.xml">
+ <webinf dir="${basedir}/picketlink-sts/WEB-INF">
+ <include name="jboss-web.xml"/>
+ <include name="jboss-wsse-server.xml"/>
+ </webinf>
+ <fileset dir="${basedir}/war/view">
+ <include name="**/*"/>
+ </fileset>
+ <classes dir="${basedir}">
+ <include name="juddi.properties"/>
+ </classes>
+ </war>
+-->
+ </target>
+
+ <target name="quickstart-specific-predeploys"
depends="build-picklink-sts" >
+ <!-- <copy todir="${deploy.dir}/../conf"
+ file="${basedir}/sts-login-config.xml"/> -->
+ <copy todir="${deploy.dir}/../conf/props"
+ file="${basedir}/props/sts-users.properties"/>
+ <copy todir="${deploy.dir}/../conf/props"
+ file="${basedir}/props/sts-roles.properties"/>
+ <copy file="${basedir}/build/picketlink-sts.war"
todir="${deploy.dir}"/>
+ </target>
+
+ <target name="quickstart-specific-undeploys">
+ <delete file="${deploy.dir}/picketlink-sts.war"/>
+ <delete file="${deploy.dir}/../conf/sts-login-config.xml"/>
+ <delete
file="${deploy.dir}/../conf/props/saml-users.properties"/>
+ <delete
file="${deploy.dir}/../conf/props/saml-roles.properties"/>
+ </target>
+
+
+ <target name="quickstart-specific-clean">
+ <delete file="${basedir}/login-config.xml"/>
+ </target>
+
+
+ <property name="version" value="1" />
+
+ <property file="../../../install/deployment.properties" />
+ <import file="../../common/base-build.xml"/>
+
+ <property name="sample.jar.name"
value="${ant.project.name}-${version}.jar" />
+ <property name="sample.esb.name" value="${ant.project.name}.esb"
/>
+
+ <property name="war.build.dir"
location="build/war/classes"/>
+
+ <path id="compile-classpath">
+ <fileset dir="${org_jboss_as_home}/client" includes="*.jar"
/>
+ <fileset dir="${org_jboss_esb_home}/lib" includes="*.jar" />
+ </path>
+ <property name="compile-classpath"
refid="compile-classpath"/>
+
+
+ <target name="makewar" description="make war">
+ <!-- Compile... -->
+ <mkdir dir="${war.build.dir}" />
+ <javac srcdir="war/src" destdir="${war.build.dir}"
debug="true">
+ <classpath>
+ <path refid="compile-classpath" />
+ <fileset dir="war/resources/WEB-INF/lib"
includes="*.jar" />
+ </classpath>
+ </javac>
+
+ <!-- War... -->
+ <war warfile="build/${ant.project.name}WS.war"
+ webxml="${basedir}/war/resources/WEB-INF/web.xml">
+ <webinf dir="${basedir}/war/resources/WEB-INF">
+ <include name="jboss-web.xml"/>
+ </webinf>
+ <classes dir="${war.build.dir}"
includes="**/*.class"/>
+ <fileset dir="${basedir}/war/view">
+ <include name="**/*"/>
+ </fileset>
+ <classes dir="${basedir}">
+ <include name="juddi.properties"/>
+ </classes>
+ </war>
+ </target>
+
+ <target name="deploywar" depends="makewar" >
+ <copy todir="${deploy.dir}"
+ file="build/${ant.project.name}WS.war"/>
+ </target>
+
+ <target name="undeploywar">
+ <delete file="${deploy.dir}/${ant.project.name}WS.war"/>
+ </target>
+
+ <target name="compileesbsrc" description="compiles src for
esb">
+ <!-- Compile... -->
+ <javac srcdir="${basedir}/src"
destdir="${basedir}/esbcontent" debug="true">
+ <classpath>
+ <path refid="compile-classpath" />
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="deployesb" depends="compileesbsrc">
+ <copy file="${basedir}/login-config-unfiltered.xml"
tofile="${basedir}/esbcontent/login-config.xml" filtering="true"
overwrite="true">
+ <filterset>
+ <filter token="STS_CONFIG_FILE_PATH"
value="${basedir}/esbcontent/sts-client.properties"/>
+ </filterset>
+ </copy>
+ <jar basedir="esbcontent"
destfile="${deploy.dir}/${sample.esb.name}" >
+ </jar>
+ </target>
+
+ <target name="undeployesb">
+ <delete file="${deploy.dir}/${sample.esb.name}"/>
+ </target>
+
+ <target name="deploy"
depends="deploywar,quickstart-specific-predeploys,deployesb" >
+ <echo>Deploy ${ant.project.name}</echo>
+ <jar basedir="bpelContent"
destfile="${deploy.dir}/${sample.jar.name}" />
+ </target>
+
+ <target name="undeploy"
depends="undeploywar,undeployesb,quickstart-specific-undeploys" >
+ <echo>Undeploy ${ant.project.name}</echo>
+ <delete file="${deploy.dir}/${sample.jar.name}" />
+ </target>
+
+
+ <target name="sendhello">
+ <echo>Send test message to: ${ant.project.name}</echo>
+ <java
classname="org.apache.ode.tools.sendsoap.cline.HttpSoapSender">
+ <arg
value="http://localhost:8080/${ant.project.name}/ebws/BPELESBSecurity/SayHelloWithSecurity"/>
+ <arg value="messages/hello_request1.xml"/>
+<classpath refid="rs-exec-classpath"/>
+ </java>
+ </target>
+
+</project>
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/HelloWorldWS.wsdl
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/HelloWorldWS.wsdl
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/esbcontent/HelloWorldWS.wsdl 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<definitions name="HelloWorldWSService"
+targetNamespace="http://simple_invoke/helloworld"
+xmlns="http://schemas.xmlsoap.org/wsdl/"
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+xmlns:tns="http://simple_invoke/helloworld"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
+xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+xmlns:wsaws="http://www.w3.org/2005/08/addressing"
+xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+
+ <types>
+ <xs:schema targetNamespace="http://simple_invoke/helloworld"
version="1.0" xmlns:tns="http://simple_invoke/helloworld"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="sayHello" type="tns:sayHello"/>
+ <xs:element name="sayHelloResponse"
type="tns:sayHelloResponse"/>
+ <xs:complexType name="sayHello">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="toWhom"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="sayHelloResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+ <xsd:schema
xmlns="http://www.w3.org/2001/XMLSchema">
+ <import
namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
schemaLocation="oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
+ </xsd:schema>
+</types>
+
+ <message name="HelloWorld_sayHello">
+ <part element="tns:sayHello" name="sayHello"></part>
+ <part name="Security" element="wsse:Security" />
+ </message>
+ <message name="HelloWorld_sayHelloResponse">
+ <part element="tns:sayHelloResponse"
name="sayHelloResponse"></part>
+ </message>
+ <portType name="HelloWorld">
+ <operation name="sayHello" parameterOrder="sayHello">
+ <input message="tns:HelloWorld_sayHello"></input>
+ <output message="tns:HelloWorld_sayHelloResponse"></output>
+ </operation>
+ </portType>
+ <binding name="HelloWorldBinding" type="tns:HelloWorld">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="sayHello">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal" parts="sayHello"/>
+ <soap:header message="tns:HelloWorld_sayHello" part="Security"
use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloWorldWSService">
+ <port binding="tns:HelloWorldBinding" name="HelloWorldPort">
+ <soap:address
location="http://127.0.0.1:8080/Quickstart_bpel_hello_world_samlWS/HelloWorldWS"/>
+ </port>
+ </service>
+ <plnk:partnerLinkType name="theExternalService_PartnerLinkType">
+ <plnk:role name="callingTheExternalService"
portType="tns:HelloWorld"/>
+ </plnk:partnerLinkType>
+</definitions>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/META-INF/jboss-esb.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/META-INF/jboss-esb.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/esbcontent/META-INF/jboss-esb.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,66 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc...
parameterReloadSecs="5">
+
+ <providers>
+ </providers>
+
+ <services>
+ <service
+ category="BPELESBSecurity"
+ name="SayHelloWithSecurity"
+ description="Hello World service configured to issue a security token and
start a BPEL process with it"
+ invmScope="GLOBAL">
+ <security moduleName="saml-issue-token"
callbackHandler="org.jboss.soa.esb.services.security.auth.login.JBossSTSIssueCallbackHandler"/>
+
+ <listeners>
+ </listeners>
+ <actions faultXsd="hello.xsd" inXsd="hello.xsd"
outXsd="hello.xsd">
+ <action name="action1"
class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="printfull"
value="true"/>
+ </action>
+
+ <action name="printSubject"
class="org.jboss.soa.esb.samples.quickstart.securitysaml.DisplaySubjectAction"/>
+
+
+ <action name="action2"
class="org.jboss.soa.esb.actions.bpel.BPELInvoke">
+ <property name="service"
value="{http://simple_invoke/helloworld}HelloHeaderWSService"/>
+ <property name="operation" value="sayHi"
/>
+ <property name="requestPartName" value="sayHello" />
+ <property name="responsePartName"
value="sayHelloResponse" />
+ <property name="requestSAMLPartName" value="Security" />
+ </action>
+ <!-- The next action is for Continuous Integration testing -->
+ <action name="testStore"
class="org.jboss.soa.esb.actions.TestMessageStore"/>
+ </actions>
+ </service>
+
+ <service category="BPELESBSecurity"
name="HelloWorldSecurityProxyService" description="WebService proxy with
security"
+ invmScope="GLOBAL">
+ <security moduleName="saml-validate-token"
callbackHandler="org.jboss.soa.esb.services.security.auth.login.JBossSTSTokenCallbackHandler">
+ <property name="org.jboss.soa.esb.services.security.contextTimeout"
value="0"/>
+ </security>
+ <listeners>
+ <http-gateway name="Proxy_Basic-GwListener1">
+ <property name="composer-class"
value="org.jboss.soa.esb.samples.quickstart.securitysaml.HttpGatewayMessageComposer"/>
+ </http-gateway>
+ </listeners>
+ <actions mep="RequestResponse">
+ <action name="echo-request"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="message" value="Message before SOAPProxy"
/>
+ </action>
+ <action name="proxy"
+ class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy">
+ <!-- <property name="wsdl"
value="classpath:///HelloWorldWS.wsdl" /> -->
+ <!-- <property name="wsdl"
value="http://127.0.0.1:8080/Quickstart_bpel_hello_world_samlWS/HelloWorldWS?wsdl"/>
-->
+<property name="wsdl"
value="internal://jboss.ws:context=Quickstart_bpel_hello_world_samlWS,endpoint=HelloWorldWS"/>
+
+ </action>
+ <action name="echo-response"
+ class="org.jboss.soa.esb.actions.SystemPrintln">
+ <property name="message" value="Message after SOAPProxy"
/>
+ </action>
+ </actions>
+ </service>
+ </services>
+</jbossesb>
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/hello.xsd
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/hello.xsd
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/esbcontent/hello.xsd 2010-11-05 14:31:37 UTC
(rev 1085)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+ <xs:schema targetNamespace="http://simple_invoke/helloworld"
version="1.0" xmlns:tns="http://simple_invoke/helloworld"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
+ <xs:element name="sayHello" type="tns:sayHello"/>
+ <xs:element name="sayHelloResponse"
type="tns:sayHelloResponse"/>
+ <xs:complexType name="sayHello">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="toWhom"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name="sayHelloResponse">
+ <xs:sequence>
+ <xs:element minOccurs="0" name="return"
type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/jboss-service.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/jboss-service.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/esbcontent/jboss-service.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,8 @@
+<server>
+ <mbean code="org.jboss.security.auth.login.DynamicLoginConfig"
name="org.jboss.esb.samples.quickstarts.security_saml:service=LoginModule">
+ <attribute name="AuthConfig">login-config.xml</attribute>
+ <depends
optional-attribute-name="LoginConfigService">jboss.security:service=XMLLoginConfig</depends>
+ <depends
optional-attribute-name="SecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
+ </mbean>
+</server>
+
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/login-config.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/login-config.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/esbcontent/login-config.xml 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,35 @@
+<policy>
+ <application-policy name="saml-issue-token">
+ <authentication>
+ <login-module
code="org.picketlink.identity.federation.core.wstrust.auth.STSIssuingLoginModule"
flag="required">
+ <module-option
name="configFile">/Users/jdelong/Riftsaw22/riftsaw-2.2.0-SNAPSHOT/samples/esb/bpel_helloworld_saml/esbcontent/sts-client.properties</module-option>
+ <module-option
name="endpointURI">http://security_saml/goodbyeworld</module-option>
+ <module-option
name="password-stacking">true</module-option>
+ </login-module>
+ <login-module
code="org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule"
flag="required">
+ <module-option
name="configFile">/Users/jdelong/Riftsaw22/riftsaw-2.2.0-SNAPSHOT/samples/esb/bpel_helloworld_saml/esbcontent/sts-client.properties</module-option>
+ <module-option
name="password-stacking">useFirstPass</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+
+ <application-policy name="saml-validate-token">
+ <authentication>
+ <login-module
code="org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule"
flag="required">
+ <module-option
name="configFile">/Users/jdelong/Riftsaw22/riftsaw-2.2.0-SNAPSHOT/samples/esb/bpel_helloworld_saml/esbcontent/sts-client.properties</module-option>
+ <module-option
name="useOptionsCredentials">true</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+
+ <application-policy name="sts">
+ <authentication>
+ <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
+ flag="required">
+ <module-option
name="usersProperties">props/sts-users.properties</module-option>
+ <module-option
name="rolesProperties">props/sts-roles.properties</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+
+</policy>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/picketlink-sts.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/picketlink-sts.properties
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/esbcontent/picketlink-sts.properties 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,5 @@
+serviceName=PicketLinkSTS
+portName=PicketLinkSTSPort
+endpointAddress=http://localhost:8080/picketlink-sts/JBossSTS
+username=admin
+password=admin
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-roles.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-roles.properties
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-roles.properties 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,3 @@
+# A sample roles.properties file for use with the UsersRolesLoginModule
+admin=JBossAdmin,processAdmin
+bob=customer
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-users.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-users.properties
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/esbcontent/props/saml-users.properties 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,3 @@
+# A sample users.properties file for use with the UsersRolesLoginModule
+admin=admin
+bob=bob
Added: trunk/samples/esb/bpel_helloworld_saml/esbcontent/sts-client.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/esbcontent/sts-client.properties
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/esbcontent/sts-client.properties 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,5 @@
+serviceName=PicketLinkSTS
+portName=PicketLinkSTSPort
+endpointAddress=http://localhost:8080/picketlink-sts/PicketLinkSTS
+username=admin
+password=admin
Added: trunk/samples/esb/bpel_helloworld_saml/jboss-wsse-client.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/jboss-wsse-client.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/jboss-wsse-client.xml 2010-11-05 14:31:37 UTC
(rev 1085)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jboss-ws-security
xmlns="http://www.jboss.com/ws-security/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://www.jboss.com/ws-security/config
http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
+ <config>
+ <username/>
+ </config>
+</jboss-ws-security>
+
Added: trunk/samples/esb/bpel_helloworld_saml/jbossesb-properties.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/jbossesb-properties.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/jbossesb-properties.xml 2010-11-05 14:31:37 UTC
(rev 1085)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ JBoss, Home of Professional Open Source
+ Copyright 2006, JBoss Inc., and others contributors as indicated
+ by the @authors tag. All rights reserved.
+ See the copyright.txt in the distribution for a
+ full listing of individual contributors.
+ This copyrighted material is made available to anyone wishing to use,
+ modify, copy, or redistribute it subject to the terms and conditions
+ of the GNU Lesser General Public License, v. 2.1.
+ This program is distributed in the hope that it will be useful, but WITHOUT A
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ You should have received a copy of the GNU Lesser General Public License,
+ v.2.1 along with this distribution; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ MA 02110-1301, USA.
+
+ (C) 2005-2006,
+ @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+ These options are described in the JBossESB manual.
+ Defaults are provided here for convenience only.
+
+ Please read through this file prior to using the system, and consider
+ updating the specified entries.
+-->
+<esb
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+ <properties name="core">
+ <property name="org.jboss.soa.esb.jndi.server.type"
value="jboss"/>
+ <property name="org.jboss.soa.esb.jndi.server.url"
value="localhost"/>
+ <property name="org.jboss.soa.esb.persistence.connection.factory"
value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+ <property name="jboss.esb.invm.scope.default"
value="NONE"/>
+ </properties>
+ <properties name="registry">
+ <property name="org.jboss.soa.esb.registry.queryManagerURI"
value="org.apache.juddi.v3.client.transport.wrapper.UDDIInquiryService#inquire"/>
+ <property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"
value="org.apache.juddi.v3.client.transport.wrapper.UDDIPublicationService#publish"/>
+ <property name="org.jboss.soa.esb.registry.securityManagerURI"
value="org.apache.juddi.v3.client.transport.wrapper.UDDISecurityService#secure"/>
+ <property name="org.jboss.soa.esb.registry.implementationClass"
value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+ <property name="org.jboss.soa.esb.registry.factoryClass"
value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+ <property name="org.jboss.soa.esb.registry.user"
value="root"/>
+ <property name="org.jboss.soa.esb.registry.password"
value="root"/>
+ <!-- the following parameter is scout specific to set the type of communication
between scout and the UDDI (embedded, rmi, soap) -->
+ <property name="org.jboss.soa.esb.scout.proxy.transportClass"
value="org.apache.ws.scout.transport.LocalTransport"/>
+ <property name="org.jboss.soa.esb.scout.proxy.uddiVersion"
value="3.0"/>
+ <property name="org.jboss.soa.esb.scout.proxy.uddiNameSpace"
value="urn:uddi-org:api_v3"/>
+ <!-- Organization Category to be used by this deployment. -->
+ <property name="org.jboss.soa.esb.registry.orgCategory"
value="org.jboss.soa.esb.:category"/>
+ </properties>
+ <properties name="transports" depends="core">
+ <property name="org.jboss.soa.esb.mail.smtp.host"
value="localhost"/>
+ <property name="org.jboss.soa.esb.mail.smtp.user"
value="jbossesb"/>
+ <property name="org.jboss.soa.esb.mail.smtp.password"
value=""/>
+ <property name="org.jboss.soa.esb.mail.smtp.port"
value="25"/>
+ </properties>
+ <properties name="connection">
+ <property name="min-pool-size" value="5"/>
+ <property name="max-pool-size" value="10"/>
+ <property name="blocking-timeout-millis" value="5000"/>
+ <property name="abandoned-connection-timeout"
value="10000"/>
+ <property name="abandoned-connection-time-interval"
value="30000"/>
+ </properties>
+ <properties name="dbstore">
+ <property name="org.jboss.soa.esb.persistence.db.connection.url"
value="jdbc:hsqldb:hsql://localhost:9001/"/>
+ <property name="org.jboss.soa.esb.persistence.db.jdbc.driver"
value="org.hsqldb.jdbcDriver"/>
+ <property name="org.jboss.soa.esb.persistence.db.user"
value="sa"/>
+ <property name="org.jboss.soa.esb.persistence.db.pwd"
value=""/>
+ <property
name="org.jboss.soa.esb.persistence.db.pool.initial.size" value="2"/>
+ <property
name="org.jboss.soa.esb.persistence.db.pool.min.size" value="2"/>
+ <property
name="org.jboss.soa.esb.persistence.db.pool.max.size" value="5"/>
+ <!--table managed by pool to test for valid connections - created by pool
automatically -->
+ <property
name="org.jboss.soa.esb.persistence.db.pool.test.table" value="pooltest"/>
+ <!-- # of milliseconds to timeout waiting for a connection from pool -->
+ <property
name="org.jboss.soa.esb.persistence.db.pool.timeout.millis" value="5000"/>
+ <property
name="org.jboss.soa.esb.persistence.db.conn.manager"
value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+ </properties>
+ <properties name="messagerouting">
+ <property name="org.jboss.soa.esb.routing.cbrClass"
value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+ </properties>
+</esb>
Added: trunk/samples/esb/bpel_helloworld_saml/jndi.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/jndi.properties (rev
0)
+++ trunk/samples/esb/bpel_helloworld_saml/jndi.properties 2010-11-05 14:31:37 UTC (rev
1085)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+
Added: trunk/samples/esb/bpel_helloworld_saml/juddi.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/juddi.properties (rev
0)
+++ trunk/samples/esb/bpel_helloworld_saml/juddi.properties 2010-11-05 14:31:37 UTC (rev
1085)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see
http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName =
jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL =
http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin(a)juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL =
http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL =
http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL =
http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+
Added: trunk/samples/esb/bpel_helloworld_saml/log4j.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/log4j.xml (rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/log4j.xml 2010-11-05 14:31:37 UTC (rev 1085)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite:
http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration
xmlns:log4j="http://jakarta.apache.org/log4j/"
debug="false">
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE"
class="org.apache.log4j.ConsoleAppender">
+ <errorHandler
class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="Target" value="System.out"/>
+ <param name="Threshold" value="INFO"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p
[%t][%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A size based file rolling appender -->
+ <appender name="FILE"
class="org.jboss.logging.appender.RollingFileAppender">
+ <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+ <param name="File" value="./listener.log"/>
+ <param name="Append" value="false"/>
+ <param name="MaxFileSize" value="500KB"/>
+ <param name="MaxBackupIndex" value="1"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <param name="ConversionPattern" value="%d %-5p [%t][%c]
%m%n"/>
+ </layout>
+ </appender>
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="org.jboss">
+ <priority value="WARN"/>
+ </category>
+ <category name="org.jboss.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.jboss.internal.soa.esb">
+ <priority value="ERROR"/>
+ </category>
+ <category name="org.apache">
+ <priority value="ERROR"/>
+ </category>
+ <category name="quickstart">
+ <priority value="DEBUG"/>
+ </category>
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ <appender-ref ref="FILE"/>
+ </root>
+
+</log4j:configuration>
Added: trunk/samples/esb/bpel_helloworld_saml/login-config-unfiltered.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/login-config-unfiltered.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/login-config-unfiltered.xml 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,35 @@
+<policy>
+ <application-policy name="saml-issue-token">
+ <authentication>
+ <login-module
code="org.picketlink.identity.federation.core.wstrust.auth.STSIssuingLoginModule"
flag="required">
+ <module-option
name="configFile">@STS_CONFIG_FILE_PATH@</module-option>
+ <module-option
name="endpointURI">http://security_saml/goodbyeworld</module-option>
+ <module-option
name="password-stacking">true</module-option>
+ </login-module>
+ <login-module
code="org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule"
flag="required">
+ <module-option
name="configFile">@STS_CONFIG_FILE_PATH@</module-option>
+ <module-option
name="password-stacking">useFirstPass</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+
+ <application-policy name="saml-validate-token">
+ <authentication>
+ <login-module
code="org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule"
flag="required">
+ <module-option
name="configFile">@STS_CONFIG_FILE_PATH@</module-option>
+ <module-option
name="useOptionsCredentials">true</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+
+ <application-policy name="sts">
+ <authentication>
+ <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
+ flag="required">
+ <module-option
name="usersProperties">props/sts-users.properties</module-option>
+ <module-option
name="rolesProperties">props/sts-roles.properties</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+
+</policy>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/messages/hello_request1.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/messages/hello_request1.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/messages/hello_request1.xml 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,15 @@
+<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-...
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-w...
xmlns:wsdl="http://www.jboss.org/bpel/examples/wsdl"
xmlns:tns="http://simple_invoke/helloworld" >
+ <soapenv:Header>
+ <wsse:Security>
+ <wsse:UsernameToken>
+ <wsse:Username>admin</wsse:Username>
+ <wsse:Password>admin</wsse:Password>
+ </wsse:UsernameToken>
+ </wsse:Security>
+ </soapenv:Header>
+ <soapenv:Body>
+ <tns:sayHello>
+ <toWhom>Bob</toWhom>
+ </tns:sayHello>
+ </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/MANIFEST.MF
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/MANIFEST.MF
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/MANIFEST.MF 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Created-By: 1.5.0_15 (Sun Microsystems Inc.)
+
Added:
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.properties
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.properties
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.properties 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,5 @@
+#Generated by Maven
+#Mon Nov 23 08:11:55 CET 2009
+version=1.0.0.CR1-SNAPSHOT
+groupId=org.picketlink
+artifactId=picketlink-sts
Added:
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.xml
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.xml
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/META-INF/maven/org.picketlink/picketlink-sts/pom.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,39 @@
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.picketlink</groupId>
+ <artifactId>picketlink-federation-webapps</artifactId>
+ <version>1.0.0.CR1-SNAPSHOT</version>
+ <relativePath>../</relativePath>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>picketlink-sts</artifactId>
+ <packaging>war</packaging>
+ <name>PicketLink Federation Security Token Service</name>
+ <
url>http://labs.jboss.org/portal/picketlink/</url>
+ <description>PicketLink Samples contains the samples for Federated Identity
Needs.</description>
+ <licenses>
+ <license>
+ <name>lgpl</name>
+ <
url>http://repository.jboss.com/licenses/lgpl.txt</url>
+ </license>
+ </licenses>
+ <organization>
+ <name>JBoss Inc.</name>
+ <url>http://www.jboss.org</url>
+ </organization>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.0.2</version>
+ <configuration>
+ <warName>picketlink-sts</warName>
+ <!--webappDirectory>${basedir}/resources/</webappDirectory>
+ <warSourceExcludes>WEB-INF/lib/*.jar</warSourceExcludes-->
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added:
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/picketlink-sts.xml
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/picketlink-sts.xml
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/picketlink-sts.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,24 @@
+<PicketLinkSTS xmlns="urn:picketlink:identity-federation:config:1.0"
+ STSName="PicketLinkSTS" TokenTimeout="7200"
EncryptToken="false">
+ <KeyProvider
ClassName="org.picketlink.identity.federation.core.impl.KeyStoreKeyManager">
+ <Auth Key="KeyStoreURL" Value="sts_keystore.jks"/>
+ <Auth Key="KeyStorePass" Value="testpass"/>
+ <Auth Key="SigningKeyAlias" Value="sts"/>
+ <Auth Key="SigningKeyPass" Value="keypass"/>
+ <ValidatingAlias
Key="http://services.testcorp.org/provider1"
Value="service1"/>
+ </KeyProvider>
+ <TokenProviders>
+ <TokenProvider
ProviderClass="org.picketlink.identity.federation.core.wstrust.plugins.saml.SAML20TokenProvider"
+
TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profi...
+ TokenElement="Assertion"
+ TokenElementNS="urn:oasis:names:tc:SAML:2.0:assertion">
+ <!-- <Property Key="AttributeProvider"
Value="org.picketlink.identity.federation.bindings.jboss.auth.SAML20TokenRoleAttributeProvider"/>
-->
+ </TokenProvider>
+ </TokenProviders>
+ <ServiceProviders>
+ <ServiceProvider
Endpoint="http://services.testcorp.org/provider1"
TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profi...
+ TruststoreAlias="service1"/>
+ <ServiceProvider Endpoint="http://security_saml/goodbyeworld"
TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profi...
+ TruststoreAlias="service1"/>
+ </ServiceProviders>
+</PicketLinkSTS>
Added:
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/sts_keystore.jks
===================================================================
(Binary files differ)
Property changes on:
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/classes/sts_keystore.jks
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-web.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-web.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-web.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss-web>
+ <security-domain>java:/jaas/sts</security-domain>
+</jboss-web>
Added:
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-wsse-server.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-wsse-server.xml
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/jboss-wsse-server.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<jboss-ws-security
xmlns="http://www.jboss.com/ws-security/config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://www.jboss.com/ws-security/config
http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">
+ <config>
+ <requires/>
+ </config>
+</jboss-ws-security>
Added: trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/web.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/web.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/web.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,35 @@
+<?xml version="1.0"?>
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+ <servlet>
+ <servlet-name>PicketLinkSTS</servlet-name>
+
<servlet-class>org.picketlink.identity.federation.core.wstrust.PicketLinkSTS</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>PicketLinkSTS</servlet-name>
+ <url-pattern>/*</url-pattern>
+ </servlet-mapping>
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>UsernameService</web-resource-name>
+ <url-pattern>/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>JBossAdmin</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ <realm-name>PicketLinkSTSRealm</realm-name>
+ </login-config>
+
+ <security-role>
+ <role-name>*</role-name>
+ </security-role>
+
+</web-app>
Added:
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/wsdl/PicketLinkSTS.wsdl
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/wsdl/PicketLinkSTS.wsdl
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/picketlink-sts/WEB-INF/wsdl/PicketLinkSTS.wsdl 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<wsdl:definitions name="PicketLinkSTS"
targetNamespace="urn:picketlink:identity-federation:sts"
+ xmlns:tns="urn:picketlink:identity-federation:sts"
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+
xmlns:wsap10="http://www.w3.org/2006/05/addressing/wsdl"
+
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/">
+ <wsdl:types>
+ <xs:schema targetNamespace="urn:picketlink:identity-federation:sts"
+ xmlns:tns="urn:picketlink:identity-federation:sts"
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ version="1.0">
+ <xs:element name="MessageBody">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:any minOccurs="0" maxOccurs="unbounded"
namespace="##any"/>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="RequestSecurityToken">
+ <wsdl:part name="rstMessage" element="tns:MessageBody"/>
+ </wsdl:message>
+ <wsdl:message name="RequestSecurityTokenResponse">
+ <wsdl:part name="rstrMessage" element="tns:MessageBody"/>
+ </wsdl:message>
+ <wsdl:portType name="SecureTokenService">
+ <wsdl:operation name="IssueToken">
+ <wsdl:input
wsap10:Action="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue...
message="tns:RequestSecurityToken"/>
+ <wsdl:output
wsap10:Action="http://schemas.xmlsoap.org/ws/2005/02/trust/RSTR/Issu...
message="tns:RequestSecurityTokenResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="STSBinding"
type="tns:SecureTokenService">
+ <soap12:binding
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="IssueToken">
+ <soap12:operation
soapAction="http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue"
style="document"/>
+ <wsdl:input>
+ <soap12:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap12:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="PicketLinkSTS">
+ <wsdl:port name="PicketLinkSTSPort"
binding="tns:STSBinding">
+ <soap12:address location="http://localhost:8080/picketlink-sts"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
Added: trunk/samples/esb/bpel_helloworld_saml/picketlink-sts.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/picketlink-sts.properties
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/picketlink-sts.properties 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,5 @@
+serviceName=PicketLinkSTS
+portName=PicketLinkSTSPort
+endpointAddress=http://localhost:8080/picketlink-sts/JBossSTS
+username=admin
+password=admin
Added: trunk/samples/esb/bpel_helloworld_saml/props/saml-roles.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/props/saml-roles.properties
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/props/saml-roles.properties 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,3 @@
+# A sample roles.properties file for use with the UsersRolesLoginModule
+admin=JBossAdmin,processAdmin
+bob=customer,JBossAdmin
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/props/saml-users.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/props/saml-users.properties
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/props/saml-users.properties 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,3 @@
+# A sample users.properties file for use with the UsersRolesLoginModule
+admin=admin
+bob=bob
Added: trunk/samples/esb/bpel_helloworld_saml/props/sts-roles.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/props/sts-roles.properties
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/props/sts-roles.properties 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,3 @@
+# A sample roles.properties file for use with the UsersRolesLoginModule
+admin=JBossAdmin,processAdmin
+bob=customer,JBossAdmin
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/props/sts-users.properties
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/props/sts-users.properties
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/props/sts-users.properties 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,3 @@
+# A sample users.properties file for use with the UsersRolesLoginModule
+admin=admin
+bob=bob
Added: trunk/samples/esb/bpel_helloworld_saml/readme.txt
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/readme.txt (rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/readme.txt 2010-11-05 14:31:37 UTC (rev 1085)
@@ -0,0 +1,42 @@
+ESB Examples - Using BPELInvoke to call a BPEL process using SAML to authenticate process
participants
+======================================================================================================
+
+This is a somewhat complex example. Its goal is to show how SAML, WS-Trust, and WS-BPEL
can be used to help a composite service allow access to an authenticated user from trusted
party. The business requirement is fairly simple: A service provided by one party (call
them PartyB) that is consumed by another party (call them PartyA) requires the invoking
party first authenticate the user and send a claim with the message that asserts the
authenticity of the user. PartyB requires the use of SAML Assertions for making this
claim.
+
+Riftsaw, JBossESB, PicketLink, and JBossAS JAAS can together meet this requirement in the
context of a business process performed by PartyA. The PicketLink project provides a
component, PicketLinkSTS, that provides a WS-Trust SecureTokenService. This quickstart
uses PicketLinkSTS to issue a SAML Token with an Authentication assertion (as PartyA).
PicketLinkSTS is also used by the invoked service (PartyB) to validated the SAML Token.
Riftsaw is responsible for passing the SAML token to the linked service.
+
+The quickstart is executed using ant sendhello, which invokes a Web service which is
really an ESB service exposed as a Web service using EBWS. The client request includes a
WS-Security header element with a UsernameToken. The EBWS generated Web service extracts
the UsernameToken making it available to the ESB Service. The ESB Service is configured
with a security element that specifies a JBoss JASS application policy that uses the
PicketLinkSTS TokenIssuing login module. This login module authenticates the user using
the UsernameToken and requests PicketLinkSTS to issue a SAMLToken for this user. Once the
user is authenticated and the SAMLToken issues, the ESB Service action processing pipeline
is entered, where a BPELInvoke action is called that starts a Riftsaw
+BPEL process and copies the SAML Token wrapped in a Security element into the process
receive variable. The BPEL process then copies the Security element along with the data
into another variable (this is specified in the BPEL process design), which is then used
to populate the message sent to the invoke activity (PartyB's Web service). The invoke
activity consumes a JaxWS Web service, which is proxied by another ESB service using the
SOAPProxy action. SOAPProxy uses an HTTP Gateway, which does not process WS-Security
elements. Therefore a custom message composer was added to the listener configuration of
this second service. This second ESB service also uses PicketLinkSTS to validate the SAML
Token.
+
+To deploy the example, open a command line window in the example's folder, and simply
type 'ant deploy'. To undeploy, use the command 'ant undeploy'.
+
+To test the example, for example using the SOAPUI client, an example message can be found
in the messages sub-folder, with the relevant WSDL being located in the
server/default/data/wsdl/Quickstart_bpel_hello_world_saml/BPELESBSecurity folder.
+
+Alternatively, use the 'ant sendhello' command (from a command line window) to
send the example message directly to the Web service.
+
+NOTE: The "ant deploy" command will by default deploy version 1 of the example
to the server. If you wish to change the example, and redeploy, then you should either
undeploy, or else you will need to update the version number in the build.xml, or override
the version property, e.g. "ant -Dversion=2 deploy" (and similarly when
undeploying "ant -Dversion=2 undeploy").
+
+Some handy URLs:
+http://localhost:8080/bpel-console is the BPEL console
+
+The quickstart bpel_helloworld_saml folder has several files and folders in it.
+
+
+/bpelcontent contains the bpel process definition, bpel-deploy.xml, and associated WSDL
files for the services
+
+/esbcontent contains the definitions and sample code for the two ESB services. the
hello.xsd is used to expose the ESB Service as a Web service, and HelloWorldWS.wsdl is
used to define the service being proxied by the second ESBService. login-config.xml
defines the PicketLink application policies / login modules, as well as an application
policy to perform the initial authentication of the user (this uses the
UsersRolesLoginModule). login-config.xml is generated from the login-config-unfiltered.xml
at the root of the quickstart. Make any changes to this file. The jboss-service.xml is
used to define an MBean to add these application policies dynamically.
sts-client.properties is used by the STS login module to describe how to connect to the
PicketLinkSTS service (this could be on another server) and to provide the TokenValidating
login module with some credentials (since when it is invoked it has a SAML Token but no
user credentials).
+
+/picketlink-sts contains files to create a Web application, picketlink-sts.war, which is
also provided. Should changes be required to this Web application, run jar cvf
../picketlink-sts.war ** from a command line to re-create the war.
+
+/props contains an sts-users.properties and an sts-roles.properties. These are copied to
the server/default/conf directory and referenced by the sts application policy. Additional
users can be added to sts users.
+
+/src contains source code for DisplaySubjectAction, which is used in the first ESB
Service to display the SAML token after it is issued, as well as
HttpGatewayMessageComposer, which extracts the SAML Assertion from the SOAPHeader for
processing by the ESB security component.
+
+/war contains the files for the Web service that is invoked by the BPEL process.
+
+
+
+Future work: Currently this quickstart only uses Authentication. Future versions hope to
add authorization information to the SAML Token (in the form of AttributeStatements and /
or AuthorizationDecisionStatements).
+
+
+
Added:
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/DisplaySubjectAction.java
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/DisplaySubjectAction.java
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/DisplaySubjectAction.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.securitysaml;
+
+import java.net.URL;
+import java.io.File;
+import java.io.FilePermission;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.CodeSource;
+import java.security.Permissions;
+import java.security.PermissionCollection;
+import java.security.Policy;
+
+import javax.security.auth.Subject;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+public class DisplaySubjectAction extends AbstractActionLifecycle
+{
+ public DisplaySubjectAction(final ConfigTree config) {}
+
+ public Message process(final Message message) throws Exception
+ {
+ Subject subject = Subject.getSubject(AccessController.getContext());
+ System.out.println("Subject in MyListenerAction : " + subject);
+ return message;
+ }
+}
Added:
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/HttpGatewayMessageComposer.java
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/HttpGatewayMessageComposer.java
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/src/org/jboss/soa/esb/samples/quickstart/securitysaml/HttpGatewayMessageComposer.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,44 @@
+package org.jboss.soa.esb.samples.quickstart.securitysaml;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jboss.soa.esb.listeners.gateway.http.HttpMessageComposer;
+import org.jboss.soa.esb.listeners.gateway.http.HttpRequestWrapper;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.ExtractionException;
+import org.jboss.soa.esb.services.security.auth.ExtractorUtil;
+import org.jboss.soa.esb.services.security.auth.SecurityInfoExtractor;
+import org.jboss.soa.esb.services.security.auth.ws.SamlAssertionExtractor;
+
+
+public class HttpGatewayMessageComposer<T extends HttpRequestWrapper> extends
HttpMessageComposer<T>
+{
+ protected void populateMessage(Message message, T requestWrapper) throws
org.jboss.soa.esb.listeners.message.MessageDeliverException
+ {
+ super.populateMessage(message, requestWrapper);
+ if( message.getContext().getContext(SecurityService.AUTH_REQUEST) == null )
+ {
+ //No auth request, maybe it was a SAML v2 Assertion in the security header. Let's
try to add it
+ try
+ {
+ Set<SecurityInfoExtractor<String>> extractors = new
HashSet<SecurityInfoExtractor<String>>();
+ extractors.add( new SamlAssertionExtractor() );
+ AuthenticationRequest authRequest =
ExtractorUtil.extract(message.getBody().get().toString(), extractors);
+ ExtractorUtil.addAuthRequestToMessage(authRequest, message);
+ }
+ catch( ExtractionException e )
+ {
+ throw new MessageDeliverException( e.getMessage(), e );
+ }
+ catch( SecurityServiceException e )
+ {
+ throw new MessageDeliverException( e.getMessage(), e );
+ }
+ }
+ }
+}
Added: trunk/samples/esb/bpel_helloworld_saml/sts-login-config.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/sts-login-config.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/sts-login-config.xml 2010-11-05 14:31:37 UTC
(rev 1085)
@@ -0,0 +1,11 @@
+<policy>
+ <application-policy name="sts">
+ <authentication>
+ <login-module code="org.jboss.security.auth.spi.UsersRolesLoginModule"
+ flag="required">
+ <module-option
name="usersProperties">props/saml-users.properties</module-option>
+ <module-option
name="rolesProperties">props/saml-roles.properties</module-option>
+ </login-module>
+ </authentication>
+ </application-policy>
+</policy>
\ No newline at end of file
Added: trunk/samples/esb/bpel_helloworld_saml/war/resources/WEB-INF/web.xml
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/war/resources/WEB-INF/web.xml
(rev 0)
+++ trunk/samples/esb/bpel_helloworld_saml/war/resources/WEB-INF/web.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<web-app
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+ version="2.4">
+
+ <servlet>
+ <servlet-name>HelloWorldWS</servlet-name>
+
<servlet-class>org.jboss.soa.bpel.samples.quickstart.simple_invoke.HelloWorldWS</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>HelloWorldWS</servlet-name>
+ <url-pattern>/HelloWorldWS</url-pattern>
+ </servlet-mapping>
+
+</web-app>
Added:
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/samples/quickstart/simple_invoke/HelloWorldWS.java
===================================================================
---
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/samples/quickstart/simple_invoke/HelloWorldWS.java
(rev 0)
+++
trunk/samples/esb/bpel_helloworld_saml/war/src/org/jboss/soa/bpel/samples/quickstart/simple_invoke/HelloWorldWS.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
+ * You should have received a copy of the GNU Lesser General Public License,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+
+package org.jboss.soa.bpel.samples.quickstart.simple_invoke;
+
+import javax.jws.WebMethod;
+import javax.jws.WebService;
+import javax.jws.soap.SOAPBinding;
+import javax.jws.WebParam;
+
+@WebService(name = "HelloWorld", targetNamespace =
"http://simple_invoke/helloworld")
+public class HelloWorldWS
+{
+ @WebMethod
+ public String sayHello(@WebParam(name = "toWhom")
+ String toWhom)
+ {
+ System.out.println("\n");
+ System.out.println("*************************************************");
+ System.out.println("toWhom Parameter: " + toWhom );
+ System.out.println("*************************************************");
+ System.out.println("\n");
+ String greeting = "Hello " + toWhom + ". Sincerely, JBossWS";
+ return greeting;
+
+ }
+
+}
Added: trunk/samples/esb/bpel_helloworld_saml/war/view/index.jsp
===================================================================
--- trunk/samples/esb/bpel_helloworld_saml/war/view/index.jsp (rev
0)
+++ trunk/samples/esb/bpel_helloworld_saml/war/view/index.jsp 2010-11-05 14:31:37 UTC (rev
1085)
@@ -0,0 +1,9 @@
+<html>
+ <body>
+ This is just a place holder.<br>
+ Verify the that the WS has been deployed by hitting
+ <a href="http://localhost:8080/jbossws">
+
http://localhost:8080/jbossws
+ </a>
+ </body>
+</html>
\ No newline at end of file
Added: trunk/samples/quickstart/order_management/.project
===================================================================
--- trunk/samples/quickstart/order_management/.project (rev 0)
+++ trunk/samples/quickstart/order_management/.project 2010-11-05 14:31:37 UTC (rev 1085)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>order_management</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.bpel.validator.builder</name>
+ <arguments>
+ <dictionary>
+ <key>debug</key>
+ <value>false</value>
+ </dictionary>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ </natures>
+</projectDescription>
Added:
trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.component
===================================================================
--- trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.component
(rev 0)
+++
trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.component 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-modules id="moduleCoreId" project-version="1.5.0">
+ <wb-module deploy-name="bpel_ordering">
+ <wb-resource deploy-path="/"
source-path="/bpelContent"/>
+ </wb-module>
+</project-modules>
Added:
trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.project.facet.core.xml
===================================================================
---
trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.project.facet.core.xml
(rev 0)
+++
trunk/samples/quickstart/order_management/.settings/org.eclipse.wst.common.project.facet.core.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <fixed facet="jbt.bpel.facet.core"/>
+ <installed facet="jbt.bpel.facet.core" version="2.0"/>
+</faceted-project>
Added: trunk/samples/quickstart/order_management/Ordering-ejb/build.xml
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-ejb/build.xml
(rev 0)
+++ trunk/samples/quickstart/order_management/Ordering-ejb/build.xml 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,35 @@
+<project name="Ordering-ejb" default="package"
basedir=".">
+
+ <property file="../../../../install/deployment.properties"/>
+
+ <property name="build.dir" value="build"/>
+ <property name="dist.dir" value="dist"/>
+ <property name="classes.dir" value="${build.dir}/classes"/>
+
+ <path id="compile-classpath">
+ <fileset dir="${org_jboss_as_home}/client"
includes="ejb3-persistence.jar"/>
+ <fileset dir="${org_jboss_as_home}/client"
includes="jboss-javaee.jar"/>
+ </path>
+
+ <property name="compile-classpath"
refid="compile-classpath"/>
+
+ <target name="compile">
+ <mkdir dir="${classes.dir}" />
+ <javac srcdir="src/java" destdir="${classes.dir}"
debug="true">
+ <classpath refid="compile-classpath"/>
+ </javac>
+ </target>
+
+ <target name="package" depends="compile">
+ <mkdir dir="${dist.dir}"/>
+ <jar basedir="${classes.dir}"
destfile="${dist.dir}/${ant.project.name}.jar">
+ <metainf dir="src/conf/META-INF"/>
+ </jar>
+ </target>
+
+ <target name="clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.dir}"/>
+ </target>
+
+</project>
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/MANIFEST.MF
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/MANIFEST.MF
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/MANIFEST.MF 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/bpel-ds.xml
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/bpel-ds.xml
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/bpel-ds.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<datasources>
+ <local-tx-datasource>
+
+ <jndi-name>BPELQuickstartsDS</jndi-name>
+
<connection-url>jdbc:hsqldb:hsql://${jboss.bind.address}:54123</connection-url>
+ <driver-class>org.hsqldb.jdbcDriver</driver-class>
+
+ <user-name>sa</user-name>
+ <password></password>
+
+ <min-pool-size>5</min-pool-size>
+ <max-pool-size>20</max-pool-size>
+ <idle-timeout-minutes>0</idle-timeout-minutes>
+ <prepared-statement-cache-size>32</prepared-statement-cache-size>
+
+ <metadata>
+ <type-mapping>Hypersonic SQL</type-mapping>
+ </metadata>
+
+ <depends>jboss:service=Hypersonic</depends>
+ </local-tx-datasource>
+
+ <mbean code="org.jboss.jdbc.HypersonicDatabase"
+ name="jboss:service=Hypersonic">
+ <attribute name="Port">54123</attribute>
+ <attribute name="BindAddress">localhost</attribute>
+ <attribute name="Silent">true</attribute>
+ <attribute name="Database">default</attribute>
+ <attribute name="Trace">false</attribute>
+ <attribute name="No_system_exit">true</attribute>
+ </mbean>
+
+</datasources>
Added: trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/jboss.xml
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/jboss.xml
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/jboss.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jboss/>
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+
+ <persistence-unit name="OrderingPU"
transaction-type="JTA">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <jta-data-source>java:/BPELQuickstartsDS</jta-data-source>
+ <exclude-unlisted-classes>false</exclude-unlisted-classes>
+ <properties>
+ <property name="hibernate.dialect"
value="org.hibernate.dialect.HSQLDialect"/>
+ <property name="hibernate.hbm2ddl.auto"
value="create-drop"/>
+ </properties>
+ </persistence-unit>
+
+</persistence>
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.hsql
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.hsql
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.hsql 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+
+ <persistence-unit name="OrderingPU"
transaction-type="JTA">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <jta-data-source>java:/BPELQuickstartsDS</jta-data-source>
+ <exclude-unlisted-classes>false</exclude-unlisted-classes>
+ <properties>
+ <property name="hibernate.dialect"
value="org.hibernate.dialect.HSQLDialect"/>
+ <property name="hibernate.hbm2ddl.auto"
value="create-drop"/>
+ </properties>
+ </persistence-unit>
+
+</persistence>
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.mysql51
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.mysql51
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/conf/META-INF/persistence.xml.mysql51 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
+
+ <persistence-unit name="OrderingPU"
transaction-type="JTA">
+ <provider>org.hibernate.ejb.HibernatePersistence</provider>
+ <jta-data-source>java:/DefaultDS</jta-data-source>
+ <exclude-unlisted-classes>false</exclude-unlisted-classes>
+ <properties>
+ <property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver"/>
+ <property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/soa_schema1"/>
+ <property name="hibernate.connection.username"
value="soauser"/>
+ <property name="hibernate.connection.password"
value="soapasswd"/>
+ <property name="hibernate.connection.pool_size"
value="10"/>
+ <property name="hibernate.dialect"
value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
+ <property name="hibernate.hbm2ddl.auto"
value="create-drop"/>
+ <property name="current_session_context_class"
value="thread"/>
+ <property name="hibernate.session_factory_name"
value="SessionFactory"/>
+ </properties>
+ </persistence-unit>
+
+</persistence>
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBean.java
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBean.java
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBean.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,63 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.jboss.soa.bpel.sample.quickstart.ordering.ejb;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.FlushModeType;
+import javax.persistence.PersistenceContext;
+import org.jboss.soa.bpel.sample.quickstart.ordering.model.Item;
+
+import org.jboss.soa.bpel.sample.quickstart.ordering.model.Order;
+
+/**
+ *
+ * @author mbaluch
+ */
+@Stateless(name="OrderingEJB")
+public class OrderingBean implements OrderingBeanLocal {
+
+ @PersistenceContext
+ private EntityManager em;
+
+ public Long createOrder(Long itemId, int quantity) {
+ Order order = new Order();
+ order.setItemId(itemId);
+ order.setQuantity(quantity);
+ order.setStatus("NEW");
+
+ return createOrder(order);
+ }
+
+ public void updateOrder(Order order) {
+ System.out.println("[OrderingBean] Updating Order: " + order);
+ em.merge(order);
+ //em.flush();
+ }
+
+ public Long createOrder(Order order) {
+ System.out.println("[OrderingBean] Creating new Order: " + order);
+ em.persist(order);
+ //em.flush();
+ return order.getId();
+ }
+
+ public int getItemInfo(Long id) {
+ return em.find(Item.class, id).getPrice();
+ }
+
+ public void setState(Long id, String state) {
+ Order order = em.find(Order.class, id);
+ order.setStatus(state);
+ updateOrder(order);
+ }
+
+ public String getState(Long id) {
+ Order order = em.find(Order.class, id);
+ return order.getStatus();
+ }
+
+}
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBeanLocal.java
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBeanLocal.java
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/ejb/OrderingBeanLocal.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,30 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.jboss.soa.bpel.sample.quickstart.ordering.ejb;
+
+import javax.ejb.Local;
+import org.jboss.soa.bpel.sample.quickstart.ordering.model.Order;
+
+/**
+ *
+ * @author mbaluch
+ */
+@Local
+public interface OrderingBeanLocal {
+
+ Long createOrder(Long itemId, int quantity);
+
+ Long createOrder(Order order);
+
+ void updateOrder(Order order);
+
+ int getItemInfo(Long id);
+
+ void setState(Long id, String state);
+
+ String getState(Long id);
+
+}
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Item.java
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Item.java
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Item.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,82 @@
+package org.jboss.soa.bpel.sample.quickstart.ordering.model;
+
+import java.io.Serializable;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ *
+ * @author mbaluch
+ */
+@Entity
+@Table(name="bpel_ordering_item")
+public class Item implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ private Long id;
+
+ private String name;
+
+ private int price;
+
+ public Item() {
+ }
+
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getPrice() {
+ return price;
+ }
+
+ public void setPrice(int price) {
+ this.price = price;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final Item other = (Item) obj;
+ if (this.id != other.id && (this.id == null ||
!this.id.equals(other.id))) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 3;
+ hash = 41 * hash + (this.id != null ? this.id.hashCode() : 0);
+ hash = 41 * hash + (this.name != null ? this.name.hashCode() : 0);
+ return hash;
+ }
+
+ @Override
+ public String toString() {
+ return "Item{" + "id=" + id + ", name=" + name +
", price=" + price + '}';
+ }
+
+}
Added:
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Order.java
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Order.java
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-ejb/src/java/org/jboss/soa/bpel/sample/quickstart/ordering/model/Order.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,105 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.jboss.soa.bpel.sample.quickstart.ordering.model;
+
+import java.io.Serializable;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+/**
+ *
+ * @author mbaluch
+ */
+@Entity()
+@Table(name="bpel_ordering_order")
+public class Order implements Serializable {
+
+ private static final Long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue(strategy = GenerationType.SEQUENCE) // for HSQLDB
+ //@GeneratedValue(strategy = GenerationType.AUTO) // for MySQL51
+ private Long id;
+
+ private Long itemId;
+
+ private int quantity;
+
+ @Column(name = "stte")
+ private String status;
+
+
+ public Order() {
+ }
+
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+
+ public Long getItemId() {
+ return itemId;
+ }
+
+ public void setItemId(Long itemId) {
+ this.itemId = itemId;
+ }
+
+ public int getQuantity() {
+ return quantity;
+ }
+
+ public void setQuantity(int quantity) {
+ this.quantity = quantity;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ final Order other = (Order) obj;
+ if (this.id != other.id && (this.id == null ||
!this.id.equals(other.id))) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public int hashCode() {
+ int hash = 5;
+ hash = 23 * hash + (this.id != null ? this.id.hashCode() : 0);
+ hash = 23 * hash + (this.itemId != null ? this.itemId.hashCode() : 0);
+ hash = 23 * hash + this.quantity;
+ hash = 23 * hash + (this.status != null ? this.status.hashCode() : 0);
+ return hash;
+ }
+
+ @Override
+ public String toString() {
+ return "Order{" + "id=" + id + ", itemId=" + itemId
+ ", quantity=" + quantity + ", status=" + status + '}';
+ }
+
+}
Added: trunk/samples/quickstart/order_management/Ordering-war/build.xml
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-war/build.xml
(rev 0)
+++ trunk/samples/quickstart/order_management/Ordering-war/build.xml 2010-11-05 14:31:37
UTC (rev 1085)
@@ -0,0 +1,44 @@
+<project name="Ordering-war" default="package"
basedir=".">
+
+ <property file="../../../../install/deployment.properties"/>
+
+ <property name="build.dir" value="build"/>
+ <property name="dist.dir" value="dist"/>
+ <property name="classes.dir" value="${build.dir}/classes"/>
+
+ <path id="compile-classpath">
+ <fileset dir="${org_jboss_as_home}/client"
includes="*.jar"/>
+ <pathelement path="../Ordering-ejb/build/classes"/>
+ </path>
+
+ <property name="compile-classpath"
refid="compile-classpath"/>
+
+ <target name="compile">
+ <mkdir dir="${classes.dir}" />
+ <javac srcdir="src/java" destdir="${classes.dir}"
debug="true">
+ <classpath>
+ <path refid="compile-classpath" />
+ </classpath>
+ </javac>
+ </target>
+
+ <target name="package" depends="compile">
+ <mkdir dir="${dist.dir}"/>
+ <war warfile="${dist.dir}/${ant.project.name}.war"
+ webxml="web/WEB-INF/web.xml">
+ <webinf dir="web/WEB-INF">
+ <include name="web.xml"/>
+ </webinf>
+ <classes dir="${classes.dir}" includes="**/*.class"/>
+ <fileset dir="web">
+ <include name="**/*"/>
+ </fileset>
+ </war>
+ </target>
+
+ <target name="clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${dist.dir}"/>
+ </target>
+
+</project>
Added: trunk/samples/quickstart/order_management/Ordering-war/src/conf/MANIFEST.MF
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-war/src/conf/MANIFEST.MF
(rev 0)
+++ trunk/samples/quickstart/order_management/Ordering-war/src/conf/MANIFEST.MF 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,2 @@
+Manifest-Version: 1.0
+
Added:
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/quickstart/ordering/ws/OrderingService.java
===================================================================
---
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/quickstart/ordering/ws/OrderingService.java
(rev 0)
+++
trunk/samples/quickstart/order_management/Ordering-war/src/java/org/jboss/soa/bpel/samples/quickstart/ordering/ws/OrderingService.java 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,64 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.jboss.soa.bpel.samples.quickstart.ordering.ws;
+
+import javax.ejb.EJB;
+import javax.ejb.Stateless;
+
+//import javax.jws.Oneway;
+import javax.jws.WebMethod;
+import javax.jws.WebParam;
+import javax.jws.WebService;
+
+import org.jboss.soa.bpel.sample.quickstart.ordering.ejb.OrderingBeanLocal;
+
+/**
+ *
+ * @author mbaluch
+ */
+@Stateless
+@WebService(name="OrderingWS",
targetNamespace="http://jboss.org/bpel/ordering")
+public class OrderingService {
+
+ @EJB(beanName="OrderingEJB")
+ private OrderingBeanLocal ejbRef;
+
+ /**
+ * Web service operation
+ */
+ @WebMethod(operationName = "createOrder")
+ public Long createOrder(@WebParam(name = "itemId") Long itemId,
@WebParam(name = "quantity") int quantity) {
+ long l = ejbRef.createOrder(itemId, quantity);
+ return l;
+ }
+
+ /**
+ * Web service operation
+ */
+ @WebMethod(operationName = "setState")
+// @Oneway
+ public String setState(@WebParam(name = "orderId") Long orderId,
@WebParam(name = "state") String state) {
+ ejbRef.setState(orderId, state);
+ return getState(orderId);
+ }
+
+ /**
+ * Web service operation
+ */
+ @WebMethod(operationName = "getState")
+ public String getState(@WebParam(name = "orderId") Long orderId) {
+ return ejbRef.getState(orderId);
+ }
+
+ /**
+ * Web service operation
+ */
+ @WebMethod(operationName = "getItemInfo")
+ public int getItemInfo(@WebParam(name = "id") Long id) {
+ return ejbRef.getItemInfo(id);
+ }
+
+}
Added: trunk/samples/quickstart/order_management/Ordering-war/web/WEB-INF/web.xml
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-war/web/WEB-INF/web.xml
(rev 0)
+++ trunk/samples/quickstart/order_management/Ordering-war/web/WEB-INF/web.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <servlet>
+ <servlet-name>OrderingService</servlet-name>
+
<servlet-class>org.jboss.soa.bpel.samples.quickstart.ordering.ws.OrderingService</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>OrderingService</servlet-name>
+ <url-pattern>/OrderingService</url-pattern>
+ </servlet-mapping>
+ <session-config>
+ <session-timeout>
+ 30
+ </session-timeout>
+ </session-config>
+ <welcome-file-list>
+ <welcome-file>index.jsp</welcome-file>
+ </welcome-file-list>
+</web-app>
Added: trunk/samples/quickstart/order_management/Ordering-war/web/index.jsp
===================================================================
--- trunk/samples/quickstart/order_management/Ordering-war/web/index.jsp
(rev 0)
+++ trunk/samples/quickstart/order_management/Ordering-war/web/index.jsp 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,19 @@
+<%--
+ Document : index
+ Created on : Oct 25, 2010, 12:19:55 PM
+ Author : mbaluch
+--%>
+
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+ "http://www.w3.org/TR/html4/loose.dtd">
+
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
+ <title>JSP Page</title>
+ </head>
+ <body>
+ <h1>Hello World!</h1>
+ </body>
+</html>
Added: trunk/samples/quickstart/order_management/bpelContent/Ordering.bpel
===================================================================
--- trunk/samples/quickstart/order_management/bpelContent/Ordering.bpel
(rev 0)
+++ trunk/samples/quickstart/order_management/bpelContent/Ordering.bpel 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,344 @@
+<bpel:process name="Ordering"
+
targetNamespace="http://www.jboss.org/bpel/samples"
+
xmlns:tns="http://www.jboss.org/bpel/samples"
+
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
+
xmlns:ns1="http://jboss.org/bpel/ordering"
+
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <bpel:import location="OrderingService.wsdl"
+
namespace="http://jboss.org/bpel/ordering"
+
importType="http://schemas.xmlsoap.org/wsdl/"/>
+
+ <bpel:import location="OrderingArtifacts.wsdl"
+
namespace="http://www.jboss.org/bpel/samples"
+
importType="http://schemas.xmlsoap.org/wsdl/" />
+
+ <bpel:partnerLinks>
+ <bpel:partnerLink name="client"
+ partnerLinkType="tns:Ordering"
+ myRole="OrderingProvider"/>
+
+ <bpel:partnerLink name="ordering"
+ partnerLinkType="ns1:OrderingService_PartnerLink"
+ partnerRole="OrderingService_Provider"/>
+
+ </bpel:partnerLinks>
+
+ <bpel:variables>
+ <bpel:variable name="id" type="xsd:long"/>
+
+ <bpel:variable name="newOrder"
messageType="tns:NewOrderRequest"/>
+ <bpel:variable name="newOrderResponse"
messageType="tns:NewOrderResponse"/>
+ <bpel:variable name="approveRequest"
messageType="tns:ApproveOrderRequest"/>
+
+ <bpel:variable name="createOrderRequest"
messageType="ns1:CreateOrderRequest"/>
+ <bpel:variable name="createOrderResponse"
messageType="ns1:CreateOrderResponse"/>
+ <bpel:variable name="setStateRequest"
messageType="ns1:SetOrderStateRequest"/>
+
+ <bpel:variable name="itemInfoRequest"
messageType="ns1:GetItemInfoRequest"/>
+ <bpel:variable name="itemInfoResponse"
messageType="ns1:GetItemInfoResponse"/>
+
+ <bpel:variable name="setStateResponse"
messageType="ns1:SetOrderStateResponse"></bpel:variable>
+ </bpel:variables>
+
+ <bpel:correlationSets>
+ <bpel:correlationSet name="correlator"
properties="tns:sessionId"/>
+ </bpel:correlationSets>
+ <bpel:sequence name="main">
+
+ <bpel:receive name="receiveOrder"
+ partnerLink="client"
+ portType="tns:OrderingPortType"
+ operation="order"
+ variable="newOrder"
+ createInstance="yes"/>
+
+ <bpel:assign validate="no" name="initalizeVariables">
+ <!-- initialize createOrderRequest variable -->
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>
+ <ns1:createOrder>
+ <itemId/>
+ <quantity/>
+ </ns1:createOrder>
+ </bpel:literal>
+ </bpel:from>
+ <bpel:to variable="createOrderRequest"
part="createOrder"/>
+ </bpel:copy>
+ <!-- initialize createOrderResponse variable -->
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>
+ <tns:orderResponse>
+ <orderId/>
+ </tns:orderResponse>
+ </bpel:literal>
+ </bpel:from>
+ <bpel:to variable="newOrderResponse"
part="orderResponse"/>
+ </bpel:copy>
+ <!-- initialize setStateRequest variable -->
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>
+ <ns1:setState>
+ <orderId/>
+ <state/>
+ </ns1:setState>
+ </bpel:literal>
+ </bpel:from>
+ <bpel:to variable="setStateRequest"
part="setState"/>
+ </bpel:copy>
+ <!-- initialize itemInfoRequest variable -->
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>
+ <ns1:getItemInfo>
+ <id/>
+ </ns1:getItemInfo>
+ </bpel:literal>
+ </bpel:from>
+ <bpel:to part="getItemInfo"
variable="itemInfoRequest"/>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:assign validate="no" name="assignOrder">
+ <bpel:copy>
+ <bpel:from part="order" variable="newOrder">
+ <bpel:query>itemId</bpel:query>
+ </bpel:from>
+ <bpel:to part="createOrder"
variable="createOrderRequest">
+ <bpel:query>itemId</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from part="order" variable="newOrder">
+ <bpel:query>quantity</bpel:query>
+ </bpel:from>
+ <bpel:to part="createOrder"
variable="createOrderRequest">
+ <bpel:query>quantity</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:invoke name="createNewOrder"
+ partnerLink="ordering"
+ operation="createOrder"
+ inputVariable="createOrderRequest"
+ outputVariable="createOrderResponse"/>
+
+ <bpel:assign validate="no" name="assignId">
+ <bpel:copy>
+ <bpel:from part="createOrderResponse"
variable="createOrderResponse">
+ <bpel:query>return</bpel:query>
+ </bpel:from>
+ <bpel:to variable="id"/>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from variable="id"></bpel:from>
+ <bpel:to part="orderResponse"
variable="newOrderResponse">
+ <bpel:query>orderId</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:reply name="replyId"
+ partnerLink="client"
+ operation="order"
+ portType="tns:OrderingPortType"
+ variable="newOrderResponse">
+ <bpel:correlations>
+ <bpel:correlation set="correlator"
initiate="yes"/>
+ </bpel:correlations>
+ </bpel:reply>
+
+ <bpel:receive name="receiveTechApprove"
+ partnerLink="client"
+ operation="approve"
+ portType="tns:OrderingPortType"
+ variable="approveRequest">
+ <bpel:correlations>
+ <bpel:correlation set="correlator"
initiate="no"/>
+ </bpel:correlations>
+ </bpel:receive>
+
+ <bpel:if name="isApproved">
+ <!-- BOOLEAN is handled as STRING - is this a BUG or what ??? -->
+ <bpel:condition>$approveRequest.orderApproval/approved =
'true'</bpel:condition>
+ <bpel:sequence>
+
+ <bpel:assign validate="no" name="assingState">
+ <bpel:copy>
+ <bpel:from variable="id"/>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>orderId</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>APPROVED</bpel:literal>
+ </bpel:from>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>state</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:invoke name="setState"
+ partnerLink="ordering"
+ operation="setState"
+ portType="ns1:OrderingWS"
+ inputVariable="setStateRequest"
+ outputVariable="setStateResponse"/>
+
+ <bpel:assign validate="no"
name="assignItemId">
+ <bpel:copy>
+ <bpel:from part="order"
variable="newOrder">
+ <bpel:query>itemId</bpel:query>
+ </bpel:from>
+ <bpel:to part="getItemInfo"
variable="itemInfoRequest">
+ <bpel:query>id</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:invoke name="getItemInfo"
+ partnerLink="ordering"
+ operation="getItemInfo"
+ portType="ns1:OrderingWS"
+ inputVariable="itemInfoRequest"
+ outputVariable="itemInfoResponse"/>
+
+ <bpel:if name="checkPrice">
+ <bpel:condition>$itemInfoResponse.getItemInfoResponse *
$newOrder.order/quantity > 10000</bpel:condition>
+ <bpel:sequence>
+ <bpel:receive name="receiveFinanceApprove"
+ partnerLink="client"
+ operation="approve"
+ portType="tns:OrderingPortType"
+ variable="approveRequest" >
+ <bpel:correlations>
+ <bpel:correlation set="correlator"
initiate="no"></bpel:correlation>
+ </bpel:correlations>
+ </bpel:receive>
+ <bpel:if name="If">
+ <bpel:condition>$approveRequest.orderApproval/approved
= 'true'</bpel:condition>
+ <bpel:sequence name="Sequence">
+ <bpel:assign validate="no"
name="assignState">
+ <bpel:copy>
+ <bpel:from variable="id"/>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>orderId</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>FINISHED</bpel:literal>
+ </bpel:from>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>state</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:invoke name="setState"
+ partnerLink="ordering"
+ operation="setState"
+ portType="ns1:OrderingWS"
+ inputVariable="setStateRequest"
outputVariable="setStateResponse"/>
+
+ </bpel:sequence>
+ <bpel:else>
+ <bpel:sequence>
+ <bpel:assign validate="no"
name="assignState">
+ <bpel:copy>
+ <bpel:from variable="id"/>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>orderId</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>REJECTED</bpel:literal>
+ </bpel:from>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>state</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:invoke name="setState"
+ partnerLink="ordering"
+ operation="setState"
+ portType="ns1:OrderingWS"
+ inputVariable="setStateRequest"
outputVariable="setStateResponse"/>
+
+ </bpel:sequence>
+ </bpel:else>
+ </bpel:if>
+ </bpel:sequence>
+ <bpel:else>
+ <bpel:sequence>
+ <bpel:assign validate="no"
name="assingState">
+ <bpel:copy>
+ <bpel:from variable="id"/>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>orderId</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>FINISHED</bpel:literal>
+ </bpel:from>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>state</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+
+ </bpel:assign>
+
+ <bpel:invoke name="setState"
+ partnerLink="ordering"
+ operation="setState"
+ portType="ns1:OrderingWS"
+ inputVariable="setStateRequest"
outputVariable="setStateResponse"/>
+
+ </bpel:sequence>
+ </bpel:else>
+ </bpel:if>
+ </bpel:sequence>
+ <bpel:else>
+ <bpel:sequence>
+
+ <bpel:assign validate="no"
name="assignState">
+ <bpel:copy>
+ <bpel:from variable="id"/>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>orderId</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ <bpel:copy>
+ <bpel:from>
+ <bpel:literal>REJECTED</bpel:literal>
+ </bpel:from>
+ <bpel:to part="setState"
variable="setStateRequest">
+ <bpel:query>state</bpel:query>
+ </bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+
+ <bpel:invoke name="setState"
+ partnerLink="ordering"
+ operation="setState"
+ portType="ns1:OrderingWS"
+ inputVariable="setStateRequest"
outputVariable="setStateResponse"/>
+
+ </bpel:sequence>
+ </bpel:else>
+ </bpel:if>
+
+ <bpel:exit name="Quit" />
+
+ </bpel:sequence>
+</bpel:process>
+
Added: trunk/samples/quickstart/order_management/bpelContent/OrderingArtifacts.wsdl
===================================================================
--- trunk/samples/quickstart/order_management/bpelContent/OrderingArtifacts.wsdl
(rev 0)
+++
trunk/samples/quickstart/order_management/bpelContent/OrderingArtifacts.wsdl 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="no"?>
+<definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.jboss.org/bpel/samples"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:wsdl="http://jboss.org/bpel/ordering"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Ordering"
targetNamespace="http://www.jboss.org/bpel/samples">
+
+ <plnk:partnerLinkType name="Ordering">
+ <plnk:role name="OrderingProvider"
portType="tns:OrderingPortType"/>
+ </plnk:partnerLinkType>
+
+ <vprop:property name="sessionId" type="xsd:long"/>
+
+ <vprop:propertyAlias messageType="tns:ApproveOrderRequest"
part="orderApproval" propertyName="tns:sessionId">
+ <vprop:query>orderId</vprop:query>
+ </vprop:propertyAlias>
+
+ <vprop:propertyAlias messageType="tns:NewOrderResponse"
part="orderResponse" propertyName="tns:sessionId">
+ <vprop:query>orderId</vprop:query>
+ </vprop:propertyAlias>
+
+ <types>
+ <xsd:schema attributeFormDefault="unqualified"
elementFormDefault="unqualified"
targetNamespace="http://www.jboss.org/bpel/samples">
+
+ <xsd:element name="id">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:long"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+
+ <xsd:element name="order">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="itemId" type="xsd:long"/>
+ <xsd:element name="quantity" type="xsd:int"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="orderResponse">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="orderId" type="xsd:long"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="orderApproval">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="orderId" type="xsd:long"/>
+ <xsd:element name="approved" type="xsd:boolean"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ </types>
+
+ <message name="NewOrderRequest">
+ <part element="tns:order" name="order"/>
+ </message>
+ <message name="NewOrderResponse">
+ <part element="tns:orderResponse" name="orderResponse"/>
+ </message>
+ <message name="ApproveOrderRequest">
+ <part element="tns:orderApproval" name="orderApproval"/>
+ </message>
+
+ <portType name="OrderingPortType">
+ <operation name="order">
+ <input message="tns:NewOrderRequest"/>
+ <output message="tns:NewOrderResponse"/>
+ </operation>
+ <operation name="approve">
+ <input message="tns:ApproveOrderRequest"/>
+ </operation>
+ </portType>
+
+ <binding name="OrderingBinding"
type="tns:OrderingPortType">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="order">
+ <soap:operation
soapAction="http://www.jboss.org/bpel/samples/order"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="approve">
+ <soap:operation
soapAction="http://www.jboss.org/bpel/samples/approve"/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ </operation>
+ </binding>
+
+ <service name="OrderingService">
+ <port binding="tns:OrderingBinding" name="OrderingPort">
+ <soap:address location="http://localhost:8080/orderingWS"/>
+ </port>
+ </service>
+
+</definitions>
Added: trunk/samples/quickstart/order_management/bpelContent/OrderingService.wsdl
===================================================================
--- trunk/samples/quickstart/order_management/bpelContent/OrderingService.wsdl
(rev 0)
+++ trunk/samples/quickstart/order_management/bpelContent/OrderingService.wsdl 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
+
+<definitions name='OrderingService'
+
targetNamespace='http://jboss.org/bpel/ordering'
+
xmlns='http://schemas.xmlsoap.org/wsdl/'
+
xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/'
+
xmlns:tns='http://jboss.org/bpel/ordering'
+
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
+
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
+
+ <types>
+ <xs:schema version='1.0'
+
targetNamespace='http://jboss.org/bpel/ordering'
+
xmlns:tns='http://jboss.org/bpel/ordering'
+
xmlns:xs='http://www.w3.org/2001/XMLSchema'>
+
+ <xs:element name='createOrder' type='tns:createOrder' />
+ <xs:element name='createOrderResponse'
type='tns:createOrderResponse' />
+ <xs:element name='getItemInfo' type='tns:getItemInfo' />
+ <xs:element name='getItemInfoResponse'
type='tns:getItemInfoResponse' />
+ <xs:element name='setState' type='tns:setState' />
+ <xs:element name='setStateResponse' type='tns:setStateResponse'
/>
+
+ <xs:complexType name='getState'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='orderId' type='xs:long'
/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name='getStateResponse'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='return' type='xs:string'
/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name='setState'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='orderId' type='xs:long'
/>
+ <xs:element minOccurs='0' name='state' type='xs:string'
/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name='setStateResponse'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='state' type='xs:string'
/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name='createOrder'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='itemId' type='xs:long'
/>
+ <xs:element name='quantity' type='xs:int' />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name='createOrderResponse'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='return' type='xs:long'
/>
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name='getItemInfo'>
+ <xs:sequence>
+ <xs:element minOccurs='0' name='id' type='xs:long' />
+ </xs:sequence>
+ </xs:complexType>
+ <xs:complexType name='getItemInfoResponse'>
+ <xs:sequence>
+ <xs:element name='return' type='xs:int' />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:schema>
+ </types>
+
+ <message name='GetItemInfoRequest'>
+ <part element='tns:getItemInfo' name='getItemInfo'/>
+ </message>
+ <message name='GetItemInfoResponse'>
+ <part element='tns:getItemInfoResponse'
name='getItemInfoResponse'/>
+ </message>
+ <message name='CreateOrderRequest'>
+ <part element='tns:createOrder' name='createOrder'/>
+ </message>
+ <message name='CreateOrderResponse'>
+ <part element='tns:createOrderResponse'
name='createOrderResponse'/>
+ </message>
+ <message name='SetOrderStateRequest'>
+ <part element='tns:setState' name='setState'/>
+ </message>
+ <message name='SetOrderStateResponse'>
+ <part element='tns:setStateResponse' name='setStateResponse'/>
+ </message>
+
+ <portType name='OrderingWS'>
+ <operation name='createOrder' parameterOrder='createOrder'>
+ <input message='tns:CreateOrderRequest'/>
+ <output message='tns:CreateOrderResponse'/>
+ </operation>
+ <operation name='getItemInfo' parameterOrder='getItemInfo'>
+ <input message='tns:GetItemInfoRequest'/>
+ <output message='tns:GetItemInfoResponse'/>
+ </operation>
+ <operation name='setState'>
+ <input message='tns:SetOrderStateRequest'/>
+ <output message='tns:SetOrderStateResponse'/>
+ </operation>
+ </portType>
+
+ <binding name='OrderingWSBinding' type='tns:OrderingWS'>
+ <soap:binding style='document'
transport='http://schemas.xmlsoap.org/soap/http' />
+ <operation name='createOrder'>
+ <soap:operation soapAction='' />
+ <input>
+ <soap:body use='literal' />
+ </input>
+ <output>
+ <soap:body use='literal' />
+ </output>
+ </operation>
+ <operation name='getItemInfo'>
+ <soap:operation soapAction='' />
+ <input>
+ <soap:body use='literal' />
+ </input>
+ <output>
+ <soap:body use='literal' />
+ </output>
+ </operation>
+ <operation name='setState'>
+ <soap:operation soapAction='' />
+ <input>
+ <soap:body use='literal' />
+ </input>
+ <output>
+ <soap:body use='literal' />
+ </output>
+ </operation>
+ </binding>
+
+ <service name='OrderingService'>
+ <port binding='tns:OrderingWSBinding' name='OrderingWSPort'>
+ <soap:address
location='http://127.0.0.1:8080/Ordering-Ordering-war/OrderingService' />
+ </port>
+ </service>
+
+ <plnk:partnerLinkType name="OrderingService_PartnerLink">
+ <plnk:role name="OrderingService_Provider"
portType="tns:OrderingWS" />
+ <plnk:role name="OrderingService_Receiver"
portType="tns:OrderingWS" />
+ </plnk:partnerLinkType>
+
+</definitions>
+
Added: trunk/samples/quickstart/order_management/bpelContent/bpel-deploy.xml
===================================================================
--- trunk/samples/quickstart/order_management/bpelContent/bpel-deploy.xml
(rev 0)
+++ trunk/samples/quickstart/order_management/bpelContent/bpel-deploy.xml 2010-11-05
14:31:37 UTC (rev 1085)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deploy
xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:ordering="http://jboss.org/bpel/ordering"
xmlns:samples="http://www.jboss.org/bpel/samples">
+ <process name="samples:Ordering">
+ <active>true</active>
+ <retired>false</retired>
+ <process-events generate="all"/>
+ <provide partnerLink="client">
+ <service name="samples:OrderingService"
port="OrderingPort"/>
+ </provide>
+ <invoke partnerLink="ordering">
+ <service name="ordering:OrderingService"
port="OrderingWSPort"/>
+ </invoke>
+ </process>
+</deploy>
\ No newline at end of file
Added: trunk/samples/quickstart/order_management/build.xml
===================================================================
--- trunk/samples/quickstart/order_management/build.xml (rev 0)
+++ trunk/samples/quickstart/order_management/build.xml 2010-11-05 14:31:37 UTC (rev
1085)
@@ -0,0 +1,122 @@
+<project name="Quickstart_bpel_ordering" default="deploy"
basedir=".">
+
+ <description>
+ ${ant.project.name}
+ ${line.separator}
+ </description>
+
+ <!-- Import the base Ant build script... -->
+ <property file="../../../install/deployment.properties" />
+ <import file="../../common/base-build.xml"/>
+
+ <property name="version" value="1" />
+
+ <property name="server.dir"
value="${org_jboss_as_home}/server/${org_jboss_as_config}"/>
+ <property name="conf.dir" value="${server.dir}/conf"/>
+ <property name="deploy.dir" value="${server.dir}/deploy"/>
+ <property name="server.lib.dir" value="${server.dir}/lib"/>
+
+ <property name="sample.jar.name"
value="${ant.project.name}-${version}.jar" />
+ <property name="sample.ear.name" value="Ordering.ear"/>
+
+ <filterset id="messageData">
+ <filter token="ID" value="${id}"/>
+ <filter token="APPROVED" value="${approved}"/>
+ </filterset>
+
+ <target name="deployear">
+ <ant dir="Ordering-ejb" target="package"/>
+ <ant dir="Ordering-war" target="package"/>
+ <jar destfile="${deploy.dir}/${sample.ear.name}">
+ <fileset dir="Ordering-ejb/dist"/>
+ <fileset dir="Ordering-war/dist"/>
+ </jar>
+ </target>
+
+ <target name="deploy" depends="deployear">
+ <echo>Deploy ${ant.project.name}</echo>
+ <jar basedir="bpelContent"
destfile="${deploy.dir}/${sample.jar.name}" />
+ </target>
+
+ <target name="undeployear">
+ <delete file="${deploy.dir}/${sample.ear.name}"/>
+ </target>
+
+ <target name="undeploy" depends="undeployear">
+ <echo>Undeploy ${ant.project.name}</echo>
+ <delete file="${deploy.dir}/${sample.jar.name}"/>
+ </target>
+
+ <target name="clean">
+ <delete dir="messages-filtered"/>
+ <ant dir="Ordering-ejb" target="clean"/>
+ <ant dir="Ordering-war" target="clean"/>
+ </target>
+
+ <target name="preparedb">
+ <sql url="jdbc:hsqldb:hsql://localhost:54123"
driver="org.hsqldb.jdbcDriver" userid="sa" password=""
src="sql/items.sql">
+ <classpath>
+ <pathelement location="${org_jboss_as_home}/common/lib/hsqldb.jar"/>
+ </classpath>
+ </sql>
+ </target>
+
+ <target name="getOrderState">
+ <sql url="jdbc:hsqldb:hsql://localhost:54123"
driver="org.hsqldb.jdbcDriver" userid="sa" password=""
print="true">
+ <![CDATA[
+ SELECT stte FROM bpel_ordering_order WHERE ${orderId} = id;
+ ]]>
+ <classpath>
+ <pathelement location="${org_jboss_as_home}/common/lib/hsqldb.jar"/>
+ </classpath>
+ </sql>
+ </target>
+
+ <target name="getOrders">
+ <sql url="jdbc:hsqldb:hsql://localhost:54123"
driver="org.hsqldb.jdbcDriver" userid="sa" password=""
print="true">
+ <![CDATA[
+ SELECT * FROM bpel_ordering_order;
+ ]]>
+ <classpath>
+ <pathelement location="${org_jboss_as_home}/common/lib/hsqldb.jar"/>
+ </classpath>
+ </sql>
+ </target>
+
+ <target name="getItems">
+ <sql url="jdbc:hsqldb:hsql://localhost:54123"
driver="org.hsqldb.jdbcDriver" userid="sa" password=""
print="true">
+ <![CDATA[
+ SELECT * FROM bpel_ordering_item;
+ ]]>
+ <classpath>
+ <pathelement location="${org_jboss_as_home}/common/lib/hsqldb.jar"/>
+ </classpath>
+ </sql>
+ </target>
+
+ <!-- -Did=${id} and -Dapproved=${approved} -->
+ <target name="sendapprove">
+ <mkdir dir="messages-filtered"/>
+
+ <copy file="messages/approve.xml"
tofile="messages-filtered/approve.xml" overwrite="true"
filtering="true">
+ <filterset refid="messageData" />
+ </copy>
+
+ <echo>Send test message to: ${ant.project.name}</echo>
+ <java classname="org.apache.ode.tools.sendsoap.cline.HttpSoapSender">
+ <arg value="http://localhost:8080/orderingWS"/>
+ <arg value="messages-filtered/approve.xml"/>
+ <classpath refid="rs-exec-classpath"/>
+ </java>
+ </target>
+
+ <target name="sendorder">
+ <echo>Send test message to: ${ant.project.name}</echo>
+ <java classname="org.apache.ode.tools.sendsoap.cline.HttpSoapSender">
+ <arg value="http://localhost:8080/orderingWS"/>
+ <arg value="messages/order.xml"/>
+ <classpath refid="rs-exec-classpath"/>
+ </java>
+ </target>
+
+</project>
Added: trunk/samples/quickstart/order_management/messages/approve.xml
===================================================================
--- trunk/samples/quickstart/order_management/messages/approve.xml
(rev 0)
+++ trunk/samples/quickstart/order_management/messages/approve.xml 2010-11-05 14:31:37 UTC
(rev 1085)
@@ -0,0 +1,9 @@
+<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:sam="http://www.jboss.org/bpel/samples">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <sam:orderApproval>
+ <orderId>@ID@</orderId>
+ <approved>@APPROVED@</approved>
+ </sam:orderApproval>
+ </soapenv:Body>
+</soapenv:Envelope>
Added: trunk/samples/quickstart/order_management/messages/order.xml
===================================================================
--- trunk/samples/quickstart/order_management/messages/order.xml
(rev 0)
+++ trunk/samples/quickstart/order_management/messages/order.xml 2010-11-05 14:31:37 UTC
(rev 1085)
@@ -0,0 +1,9 @@
+<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:sam="http://www.jboss.org/bpel/samples">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <sam:order>
+ <itemId>20</itemId>
+ <quantity>3</quantity>
+ </sam:order>
+ </soapenv:Body>
+</soapenv:Envelope>
Added: trunk/samples/quickstart/order_management/readme.txt
===================================================================
--- trunk/samples/quickstart/order_management/readme.txt (rev 0)
+++ trunk/samples/quickstart/order_management/readme.txt 2010-11-05 14:31:37 UTC (rev
1085)
@@ -0,0 +1,49 @@
+Quickstart Examples - Level 3 - Order Management
+================================================
+
+This example demonstrates the use of a BPEL to coordinate an order management
+process. Each order has a particular stateful workflow, requiring the use
+of correlation to direct relevant invocations to the appropriate BPEL process
+instance that is managing the order.
+
+To deploy the example, open a command line window in the example's folder,
+and simply type 'ant deploy'. To undeploy, use the command 'ant
undeploy'.
+
+This example uses a database to manage the orders. Therefore before being able
+to create and manage individual orders, we first need to prepare the database.
+This is achieved using the following command:
+
+ ant preparedb
+
+At any point you will be able to view the current list of orders, and their
+status, using the following command:
+
+ ant getOrders
+
+To create a new order, use the following command:
+
+ ant sendorder
+
+which will create an order in the database and return the id in the command
+response. Then the final step is to approve or reject the order using the
+following command:
+
+ ant sendapprove -Did=<order id> -Dapproved=true|false
+
+So if the order id in the response was 23, and you want to reject the order,
+you would perform the command:
+
+ ant sendapprove -Did=23 -Dapproved=false
+
+Don't forget to use the 'ant getOrders' command to review the orders in the
+database at different times.
+
+NOTE: The "ant deploy" command will by default deploy version 1 of the
+example to the server. If you wish to change the example, and redeploy,
+then you will need to update the version number in the build.xml, or
+override the version property, e.g. "ant -Dversion=2 deploy" (and similarly
+when undeploying "ant -Dversion=2 undeploy").
+
+Some handy URLs:
+http://localhost:8080/bpel-console is the BPEL console
+http://localhost:8080/orderingWS?wsdl is the URL to the BPEL process' WSDL
Added: trunk/samples/quickstart/order_management/sql/items.sql
===================================================================
--- trunk/samples/quickstart/order_management/sql/items.sql (rev
0)
+++ trunk/samples/quickstart/order_management/sql/items.sql 2010-11-05 14:31:37 UTC (rev
1085)
@@ -0,0 +1,4 @@
+INSERT INTO bpel_ordering_item VALUES (10, 'netbook', 1000);
+INSERT INTO bpel_ordering_item VALUES (20, 'car', 5000);
+INSERT INTO bpel_ordering_item VALUES (30, 'bag', 50);
+INSERT INTO bpel_ordering_item VALUES (40, 't-shirt', 8);
\ No newline at end of file