View Source

{section}
{column}

h1. Summary

This tutorial explains how you can access a SQL database through a Petals service.
Any SQL database can be used, provided the associated JDBC driver is available in the configuration.

\\
Technically, this tutorial shows the creation of a service-unit for the [Petals-BC-SQL|petalscomponents:Petals-BC-SQL] component in *provides* mode.

{info}
*Level:* Easy
*Estimated time:* 10 minutes the first time, 5 minutes then
*Expected skills:* -
{info}
{column}
{column:width=350px}
{panel:title=Table of contents}{toc}{panel}
{column}
{section}

h1. Creating the Service-Unit project

h2. Getting started

Start Petals Studio.
In the menu, select *File > New > Service-Unit Project*.
If you do not see it, go into *File > New > Other...* Then, select *Service-Unit Project* under the *Petals* category.

\\
A wizard opens up, showing three drop-down lists.
In the *Use Case* list, select *Communication*.
In the *Petals Component* list, select *SQL // petals-bc-SQL*.
In the *Component Usage* list, select *Provide or Import a Service in Petals ESB*.
In the *Component Version* list, select the version of the Petals-BC-SQL that you are using in Petals.

\\
In the scope of this tutorial, we are going to work with the version 1.1 of the SQL component.
Which gives us:

!petals-studio-tuto-provide-sql-1.jpg!

\\
Click *Next*.


h2. Identifying the service

The current page requires you to fill-in the base information to put in the JBI descriptor (*META-INF/jbi.xml*).
In particular, it defines the interface, service and end-point names of the service that is imported.
The tooling for the Petals SQL component provides a generic WSDL definition, and thus defines fixed values.

!petals-studio-tuto-provide-sql-2.jpg!


\\
You can simply complete the service and end-point names.

!petals-studio-tuto-provide-sql-3.jpg!

\\
{note}
The values for the interface, service and end-point names must match the WSDL interface.
That is to say there must be a service with this name, implementing the so-called interface at this end-point.
For the same reasons, filling-in the information by hand or modifying it is discouraged.

*Sticking to a WSDL interface always ensures this information is valid.*
{note}

{note}
The auto-generation of the end-point means the service end-point is generated at deployment time.
By deploying a such service-unit on n Petals nodes, you would have n times the same service, implementing the same interface, but available at n different locations.
{note}

\\
Once the WSDL location and the fields have been filled-in, click *Next*.


h2. Defining the project name

This page defines the name and the location of the project that will be created.
Indeed, this wizard will result in the creation of a project containing all the required elements for a SQL service-unit.

\\
Enter a project name for your project.
If you do not want your project to be created in the default workspace, uncheck *Use default location*.
Then click *Browse...* and select the location where the project will be created.

!petals-studio-tuto-provide-sql-4.jpg!

\\
{note}
Petals service-units have a naming convention.
For a service-unit which provides a service, the convention is *su\-*_<Protocol or Technology>_*\-*_<Service name>_*\-provide*
{note}

\\
Then, click *Next*.


h2. Specifying the SQL parameters

This page defines information which are specific to the Petals SQL component.
Be careful to the JDBC URL that allows to access the database.
The meaning of all the parameters can be read in the documentation of the [Petals-BC-SQL|petalscomponents:Petals-BC-SQL] component.

\\ !petals-studio-tuto-provide-sql-5.jpg!

\\
Click *Next*.


h2. Specifying the CDK parameters

The CDK is the Petals framework to develop JBI components.
The Petals-BC-SQL component was developed with this framework.

This page requires information related to the CDK.
By default, you have nothing to do here.
The meaning of all the CDK parameters for SQL can be found in the documentation of the [Petals-BC-SQL|petalscomponents:Petals-BC-SQL] component.

\\ !petals-studio-tuto-provide-sql-6.jpg!

\\
Click *Finish* to complete the wizard.


h2. Checking the result

When the wizard has completed, a new project has been created and is visible in your workspace.

It contains a jbi.xml file, located under *src/main/jbi*.
This hierarchy allows you to work with Apache Maven then (a pom.xml was also created at the root of the project).
In the same directory, you can see your WSDL interface, which was created with the project.

\\ !petals-studio-tuto-provide-sql-7.jpg!


h1. Updating, packaging and deploying

h2. Further edition and packaging

After completion, the newly created jbi.xml file has been open in the Service-Unit editor.
Regarding SQL configurations, the wizards are complete and provide all the options.
Thus, you do not need to edit the jbi.xml.

\\
The project contains everything the SQL component needs.
You can now package it before deploying it.

\\
The created project being a [Service-Unit project|Working with Service Unit projects], you can [package it as any Service-Unit project|Working with Service Unit projects#Export for Petals].
It results in the creation of a Service Assembly for the Petals-BC-SQL component. Its location depends on your export choices.

h2. Deployment

The deployment of the created service assembly can be achieved with the Petals web console.
Or you can do it by dropping the service assembly in the *install* directory of your Petals installation.
This second option should only be used in development steps.

\\
First, make sure the Petals-BC-SQL is installed in your Petals environment.
Then, install the service assembly in your Petals, using one of the two ways indicated above.

\\
Be careful, the Petals SQL component cannot be used as it.
It needs to be configured to use the shared-library associated with your SQL database.

You may also have to create this shared-library, in case where your SQL database is not supported by the Petals team.
Do not worry, creating a shared-library is very easy with the [Petals Maven plug-in|petalscomponents:Maven Petals Plug-in] (provided you are familiar with Maven).
And configuring the SQL (or any other Petals) component to use a shared-library can be achieved with the [Petals Maven plug-in|petalscomponents:Maven Petals Plug-in].