SummaryThis tutorial explains how you can invoke a Petals service when a file is added in a directory.
|
Creating the Service-Unit project
Getting started
Start Petals Studio.
In the menu, select File > New > Petals Service Provider.
If you do not see it, go into File > New > Other... Then, select Petals Service Provider 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 File Transfer // petals-bc-filetransfer.
In the Component Version list, select the version of the Petals-BC-FileTransfer that you are using in Petals.
In the scope of this tutorial, we are going to work with the version 3.0 of the File Transfer component.
Which gives us:
Click Next.
Identifying the target 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 will be invoked when a file is added in the watched directory.
A service is identified by a triplet, interface, service and end-point names. This triplet is unique in a Petals topology. When you consume a service, the service is selected in a set. This set is defined by the invocation properties. If the 3 fields are set in the consume properties, then the set will contain at most 1 result (there can be only 1 service with this ID). Consume possibilities are the following ones:
|
This page also defines the operation to invoke and the Message Exchange Pattern (MEP).
The Message Exchange Pattern (MEP) defines the interactions between the File Transfer component and the invoked service.
With this component, only operations that work with the InOnly MEP can be invoked.
You can obviously fill-in these fields by hand.
However, the most efficient way is to use the Petals Services explorer (provided it was populated).
Click Select a service. A selection dialog shows up, providing filtering assistance.
When you have selected your service, click OK.
The wizard fields are filled-in automatically.
The values for the interface, service and end-point names must match the values defined in the jbi.xml of the invoked service. Indeed, this service must be a Petals service, and thus be described in a jbi.xml. As a reminder, the jbi.xml values and the WSDL values (if the WSDL exists) of the invoked service must be exactly the same. For this reason, filling-in the information by hand or modifying it is discouraged. |
Click Next.
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 File Transfer 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 service-units have a naming convention. For a service-unit which consumes (calls) a service, the convention is su-<Protocol or Technology>-<Service name>-consume |
Then, click Next.
Specifying the File Transfer parameters
This page defines information which are specific to the Petals File Transfer component.
There are three parameters to take care of here:
- There is the directory that will be polled regularly.
- There is the name pattern of the file that must be sent to the invoked service.
- And there is the polling period, i.e. the time interval between each polling of the read directory.
The other displayed parameters are optional.
The meaning of all the parameters can be read in the documentation of the Petals-BC-FileTransfer component.
Click Next.
Specifying the Transfer Mode
There are 3 possible transfer modes.
- One loads the content file and sends it as a Petals message. The file must be a XML file.
- Another sends a static message with the file as attachment. Any kind of file can be used.
- And the last one is a new mode, more compatible with the SOA paradigm than the 2 previous ones. This last mode expects a message skeleton to be defined. Variables can be used to either put the file as attachment, or to insert the file content in the XML message. This approach allows to send messages that respect the service contract (WSDL) of the target service.
Click Finish to complete the wizard.
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).
There is nothing else in the project.
Updating, packaging and deploying
Further edition and packaging
After completion, the newly created jbi.xml file has been open in the Service-Unit editor.
Regarding File Transfer configurations, the wizards are complete.
The project contains everything the File Transfer component needs.
You can now package it before deploying it.
The created project being a Service-Unit project, you can package it as any Service-Unit project.
It results in the creation of a Service Assembly for the Petals-BC-FileTransfer component. Its location depends on your export choices.
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-FileTransfer is installed in your Petals environment.
Then, install the service assembly in your Petals, using one of the two ways indicated above.
There is no need to update configuration of the File Transfer component to make it work.
Using the default settings is enough to make the service-unit work.