h5. Generating the consumer domain certificate
The consumer domain certificate can be generated through specific keystore 'Consumer Domain' containing the private/public key pair of the consumer domain, as following command line:
{code}
keytool -genkey -alias consumer-domain-key -keyalg RSA -keysize 2048 \
-dname "CN=Consumer Domain, OU=Petals, O=Linagora, L=Grasse, ST=AM, C=FR" \
-storetype PKCS12 -storepass consumerdomainpwd -keystore /tmp/consumer-domain.pfx
keytool -exportcert -rfc -alias consumer-domain-key \
-keystore /tmp/consumer-domain.pfx -storepass consumerdomainpwd \
-file /tmp/consumer-domain-cert.pem
{code}
h4. Starting the consumer domain
With a first fresh installation of the Petals ESB ZIP archive exploded in directory '{{consumer-domain}}', launch the default standalone topology:
{code}
~/consumer-domain/petals-esb-default-zip-5.2.0/bin$ ./petals-esb.sh
___ ____ __ ___ __ ____ ____ ____ ___
/ _ \ / __// /_ / _ | / / / __/ / __// __// _ )
/ ___// _/ / __// __ | / /__ _\ \ / _/ _\ \ / _ |
/_/ /___/ \__//_/ |_|/____//___/ /___//___//____/
Initializing logging subsystem
2024/02/19 11:12:26,005 GMT+0100 INFO [Petals.Launcher] : Logging system initialised
2024/02/19 11:12:26,016 GMT+0100 INFO [Petals.Launcher] : Initializing container's classloader...
2024/02/19 11:12:26,040 GMT+0100 INFO [Petals.Launcher] : Initializing server...
2024/02/19 11:12:26,529 GMT+0100 INFO [Petals.Launcher] : Starting server...
sample-0 2024/02/19 11:12:26,538 GMT+0100 INFO [Petals.System.Extensions.PreExtensionsManager] : Pre-extension found but not activated: Petals Embedded Registry Overlay
sample-0 2024/02/19 11:12:26,669 GMT+0100 INFO [Petals.Communication.RMIConnector] : JMX RMI server started at : service:jmx:rmi:///jndi/rmi://localhost:7700/PetalsJMX
sample-0 2024/02/19 11:12:26,684 GMT+0100 INFO [Petals.Communication.TopologyService] : Using standalone shared area implementation for static one-container domain: org.ow2.petals.microkernel.communication.sharedarea.StandaloneSharedAreaImpl
sample-0 2024/02/19 11:12:26,709 GMT+0100 INFO [Petals.Communication.TopologyService] : Shared area loaded
sample-0 2024/02/19 11:12:26,722 GMT+0100 INFO [Petals.Extensions.AutoLoaderService] : Petals extension "Autoloader" started.
sample-0 2024/02/19 11:12:26,723 GMT+0100 INFO [Petals.System.Extensions.PostExtensionsManager] : Post-extension loaded: Petals ESB Autoloader
sample-0 2024/02/19 11:12:26,740 GMT+0100 INFO [Petals.Transporter.NioTransportProtocol.NioServerAgent] : The NIO transporter server is ready to process requests on /0.0.0.0:7800.
sample-0 2024/02/19 11:12:26,753 GMT+0100 INFO [Petals.Server] : Server STARTED
{code}
h4. Starting the provider domain
With a first fresh installation of the Petals ESB ZIP archive exploded in directory '{{provider-domain}}':
* configure ports to avoid conflicts with the ones of the consumer domain. Edit the file '{{topology.xml}}' and update values for '{{rmi-port}}' and '{{tcp-port}}', for example to '{{7710}}' and '{{7810}}',
* and, launch the default standalone topology:
{code}
~/provider-domain/petals-esb-default-zip-5.2.0/bin$ ./petals-esb.sh
___ ____ __ ___ __ ____ ____ ____ ___
/ _ \ / __// /_ / _ | / / / __/ / __// __// _ )
/ ___// _/ / __// __ | / /__ _\ \ / _/ _\ \ / _ |
/_/ /___/ \__//_/ |_|/____//___/ /___//___//____/
Initializing logging subsystem
2024/02/19 11:12:26,005 GMT+0100 INFO [Petals.Launcher] : Logging system initialised
2024/02/19 11:12:26,016 GMT+0100 INFO [Petals.Launcher] : Initializing container's classloader...
2024/02/19 11:12:26,040 GMT+0100 INFO [Petals.Launcher] : Initializing server...
2024/02/19 11:12:26,529 GMT+0100 INFO [Petals.Launcher] : Starting server...
sample-0 2024/02/19 11:12:26,538 GMT+0100 INFO [Petals.System.Extensions.PreExtensionsManager] : Pre-extension found but not activated: Petals Embedded Registry Overlay
sample-0 2024/02/19 11:12:26,669 GMT+0100 INFO [Petals.Communication.RMIConnector] : JMX RMI server started at : service:jmx:rmi:///jndi/rmi://localhost:7710/PetalsJMX
sample-0 2024/02/19 11:12:26,684 GMT+0100 INFO [Petals.Communication.TopologyService] : Using standalone shared area implementation for static one-container domain: org.ow2.petals.microkernel.communication.sharedarea.StandaloneSharedAreaImpl
sample-0 2024/02/19 11:12:26,709 GMT+0100 INFO [Petals.Communication.TopologyService] : Shared area loaded
sample-0 2024/02/19 11:12:26,722 GMT+0100 INFO [Petals.Extensions.AutoLoaderService] : Petals extension "Autoloader" started.
sample-0 2024/02/19 11:12:26,723 GMT+0100 INFO [Petals.System.Extensions.PostExtensionsManager] : Post-extension loaded: Petals ESB Autoloader
sample-0 2024/02/19 11:12:26,740 GMT+0100 INFO [Petals.Transporter.NioTransportProtocol.NioServerAgent] : The NIO transporter server is ready to process requests on /0.0.0.0:7810.
sample-0 2024/02/19 11:12:26,753 GMT+0100 INFO [Petals.Server] : Server STARTED
{code}
h4. Deploying Petals service configurations
Create a properties file for the placeholders of service configurations:
{code}
echo "petals-esb-2.gw-domain.hostame=localhost" >> /tmp/petals-placeholders.properties
echo "petals-esb-2.gw-domain.port=7910" >> /tmp/petals-placeholders.properties
echo "petals-esb-2.gw-domain.auth-name=s3cr3t" >> /tmp/petals-placeholders.properties
echo "petals-esb-2.gw-domain.certificate-file=/tmp/provider-domain-cert.pem" >> /tmp/petals-placeholders.properties
echo "petals-esb-2.gw-domain.private-key-file=/tmp/provider-domain-private-key.pk8.pem" >> /tmp/petals-placeholders.properties
echo "petals-esb-2.gw-domain.private-key-passphrase=providerdomainpwd" >> /tmp/petals-placeholders.properties
{code}
The following Petals artifacts must be deployed on the consumer domain:
{code}
petals-cli.sh -c -- deploy -u mvn:org.ow2.petals/petals-bc-soap/5.0.1/zip
petals-cli.sh -c -- deploy -u mvn:org.ow2.petals/petals-bc-gateway/1.1.0/zip -D propertiesFile=file:///tmp/petals-placeholders.properties
petals-cli.sh -c -- deploy -u mvn:org.ow2.petals.samples.gateway-soap-proxy/sa-gateway-soap-proxy-consumer-domain/1.0.0-SNAPSHOT/zip
{code}
And, the following Petals artifacts must be deployed on the provider domain:
{code}
petals-cli.sh -h localhost -n 7710 -u petals -p petals -c -- deploy -u mvn:org.ow2.petals/petals-bc-soap/5.0.1/zip -D httpPort=8085
petals-cli.sh -h localhost -n 7710 -u petals -p petals -c -- deploy -u mvn:org.ow2.petals/petals-bc-gateway/1.1.0/zip -D propertiesFile=file:///tmp/petals-placeholders.properties
petals-cli.sh -h localhost -n 7710 -u petals -p petals -c -- bc-gateway.add-transport-listener -i default -p 7910
petals-cli.sh -h localhost -n 7710 -u petals -p petals -c -- deploy -u mvn:org.ow2.petals.samples.gateway-soap-proxy/sa-gateway-soap-proxy-provider-domain/1.0.0-SNAPSHOT/zip
{code}
h4. Invoking the service with SoapUI
The service {{ArticleServiceContinuation}} is available through HTTP (see http://localhost:8084/petals/services/ArticleServiceContinuation?wsdl)
Use SoapUI to invoke ! Sample requests are available into the [SoapUI project|https://svn.petalslink.org/svnroot/trunk/product/dev/prod/petals/petals-samples/petals-samples-gateway-soap-proxy/su-SOAP-consume/src/main/soapui/Petals-ESB---Samples---SOAP-Proxy-over-tow-Petals-domains-soapui-project.xml].
h1. Complex Use Cases
These use cases involve several Petals components including the Petals BC Gateway component.
{contentbylabel:labels=uc-gateway|showLabels=false|showSpace=false}