Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[4.3.0] Update develop section #1165

Open
wants to merge 5 commits into
base: 4.3.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 18 additions & 19 deletions en/docs/develop/creating-artifacts/creating-a-proxy-service.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,29 @@
# Create a Proxy Service

Follow the instructions below to create a new [Proxy Service]({{base_path}}/reference/synapse-properties/proxy-service-properties) artifact in the Micro Integrator for Visual Studio Code extension (MI for VS Code).
Follow these instructions to create a [Proxy Service]({{base_path}}/reference/synapse-properties/proxy-service-properties) artifact in the Micro Integrator for Visual Studio Code extension (MI for VS Code).

## Instructions

### Create the proxy service artifact
## Create a new proxy service artifact

{!includes/creating-project.md!}

Hereafter, this project will be referred to as `<PROJECT_NAME>`.

3. Go to **MI Project Explorer** > **Proxy Services**.

<a href="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/create-proxy-service.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/create-proxy-service.png" alt="Create proxy service" width="35%"></a>

4. Hover over **Proxy Services** and click the **+** icon that appears to open the **Proxy Service Form** below.

<a href="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/proxy-service.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/proxy-service.png" alt="proxy service" width="80%"></a>

5. Enter a unique name for the proxy service.

<a href="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/proxy-service.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/proxy-service.png" alt="proxy service" width="80%"></a>
6. Once you complete the **Proxy Service Form**, click **Create**.

6. Click **Create**.
!!! info
You can switch to the default Visual Studio Code **Explorer** to view the folder structure.

The proxy service is created in the `src/main/wso2mi/artifacts/proxy-services` folder under the project you created.
The newly-created proxy service will be stored in the `<PROJECT_NAME>/src/main/wso2mi/artifacts/proxy-services` folder of your integration project.

### Design the integration
## Design the integration

1. Go to the **MI Overview** interface.

Expand All @@ -36,23 +37,21 @@ The proxy service is created in the `src/main/wso2mi/artifacts/proxy-services` f

3. Add the required mediators and connectors and design the integration flow.

<a href="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/proxy-service-graphical-editor.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/proxy-service-graphical-editor.png" alt="source view" width="80%"></a>

### Update the properties
## Update the configurations

#### To update from the Form View:
1. Go to **MI Overview**.

1. In the MI Overview, select the proxy service to go to its **Resource View**.
2. Under **Proxy Services**, select the proxy service you want to edit to go to its **Resource View**.

2. Click the **Edit** icon to edit the proxy service.
3. Click the **Edit** icon to edit the proxy service.

<a href="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/edit-proxy-service.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/edit-proxy-service.png" alt="Edit proxy service" width="80%"></a>

3. Add the required parameters.
4. Add the required parameters.

<a href="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/edit-proxy-view.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-proxy-service/edit-proxy-view.png" alt="Edit proxy view" width="80%"></a>

4. Click **Update**.
5. Click **Update**.

See the following links for the list of transport parameters you can use:

Expand All @@ -65,7 +64,7 @@ The proxy service is created in the `src/main/wso2mi/artifacts/proxy-services` f

See the complete list of [service-level properties and parameters]({{base_path}}/reference/synapse-properties/proxy-service-properties) that you can configure.

#### To update from the Source View:
## Source View

Click the **Show Source** (`</>`) icon located in the top right corner of the VS Code to view the XML-based synapse configuration (source code) of the proxy service.

Expand Down
136 changes: 69 additions & 67 deletions en/docs/develop/creating-artifacts/creating-an-inbound-endpoint.md
Original file line number Diff line number Diff line change
@@ -1,105 +1,107 @@
# Creating an Inbound Endpoint
# Create an Inbound Endpoint

Follow the instructions given below to create a new [Inbound Endpoint]({{base_path}}/reference/synapse-properties/inbound-endpoints/about-inbound-endpoints) artifact in WSO2 Integration Studio.
Follow these instructions to create an [Inbound Endpoint]({{base_path}}/reference/synapse-properties/inbound-endpoints/about-inbound-endpoints) artifact in the Micro Integrator for Visual Studio Code extension (MI for VS Code).

## Instructions
### Create an inbound endpoint artifact

### Creating the Inbound Endpoint artifact
{!includes/creating-project.md!}

1. If you have already created an [ESB Config project]({{base_path}}/develop/create-integration-project/#esb-config-project), right-click the project and go to **New → Inbound Endpoint** to open the **New Inbound Endpoint Artifact**.
Hereafter, this project will be referred to as `<PROJECT_NAME>`.

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/select-inbound-endpoint.png" width="500">
3. To add a new inbound endpoint, go to **Micro Integrator Project Explorer** > **Inbound Endpoints**.

2. Select **Create a New Inbound Endpoint** and click **Next**.
4. Hover over **Inbound Endpoints** and click the **+** icon that appears to open the **Inbound EP Form**.

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/new-inbound-endpoint-wizard-1.png" width="500">
<a href="{{base_path}}/assets/img/develop/create-artifacts/create-inbound-endpoint/inbound-endpoint-form.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-inbound-endpoint/inbound-endpoint-form.png" alt="Create inbound endpoint" width="80%"></a>

3. Enter a unique name for the inbound endpoint, and select an **Inbound Endpoint Creation Type** from the list.
5. Select the inbound endpoint type.

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/new-inbound-endpoint-wizard-2-1.png" width="500">
6. Provide details for the inbound endpoint artifact.

4. Specify values for the required parameter for the selected inbound endpoint type.
!!! note
**Injecting Sequence Name** and **Error Sequence Name** are mandatory fields.
If you don't have any sequences created in the integration project, tick the checkbox to **Automatically generate sequences**, to generate new sequences for the inbound endpoint. Otherwise, you can select sequences that already exist in the project to the **Injecting Sequence Name** and **Error Sequence Name** fields from the dropdown.

!!! Note
For certain protocols (HL7, KAFKA, Custom, MQTT, RabbitMq, WSO2_MB, WS, and  WSS) the **main sequence** and **error sequence** are mandatory fields.
<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/new-inbound-endpoint-wizard-2-2.png" width="500">
7. Once you complete the **Inbound EP Form**, click **Create**.
<br>

You can select sequences that already exist in the workspace and add them to the **Sequence** and **Error sequence** fields. If you don't have any sequences in the workspace, click **Generate Sequence and Error Sequence** to generate new sequences for the inbound endpoint.
The created inbound endpoint will be available in the **MI Overview** under **Inbound Endpoints**.
If you checked the option to **Automatically generate sequences** in the previous step, the automatically generated inbound sequence and error sequence will also be available in the **MI Overview** under **Sequences**.

5. Do one of the following:
- To save the endpoint in an existing ESB Config project in your workspace, click **Browse** and select that project.
- To save the endpoint in a new ESB Config project, click **Create new Project** and create the new project.
6. Click **Finish**. 
!!! info
You can switch to the default Visual Studio Code **Explorer** to view the folder structure.
The newly-created inbound endpoint will be stored in the `<PROJECT_NAME>/src/main/wso2mi/artifacts/inbound-endpoints` folder of your integration project.

The inbound endpoint is created in the `src/main/synapse-config/inbound-endpoint` folder under the ESB Config project you specified.
If you checked the option to **Automatically generate sequences** in the previous step, the inbound sequence and error sequence will also be created and stored in the `<PROJECT_NAME>/src/main/wso2mi/artifacts/sequences` folder of your integration project.

### Designing the integration
### Design the integration

When you open the inbound endpoint from the **Config** project in the project explorer, you will see the default **Design** view.
The integration flow for an inbound endpoint is defined within [named sequences]({{base_path}}/reference/mediation-sequences/#named-sequences).

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/inbound-endpoint-design-view.png" width="800">
1. To design the integration, go to **MI Project Explorer** > **Inbound Endpoints**.

The integration flow for an inbound endpoint is defined within [named sequences]({{base_path}}/reference/mediation-sequences/#named-sequences). You can drag and drop **sequences** from the **Palette** to the canvas as shown below.
2. Select the inbound endpoint.

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/inbound-graphical-editor.png" width="800">
Alternatively, to open this view, go to **MI Overview** and select the inbound sequence you want to design under **Sequences**.

Double-click the **Sequence** artifact to open the canvas for the sequence. You can now drag and drop the mediation artifacts from the palette and design the integration flow.
This will open the design view of the inbound endpoint. You can design the inbound sequence now.

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/sequence-graphical-editor.png" width="600">
Follow the below steps to design the error sequence:

### Updating the properties
1. Go to **MI Overview**.

To update properties from the **Design** view:
2. Select the inbound error sequence you want to design under **Sequences**.

1. Double-click the **Inbound Endpoint** icon to open the <b>Properties</b> tab.
You can now add the mediation artifacts from the palette and design the integration flow.

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/inbound-endpoint-properties.png" width="500">
### Update the configurations

2. See the following links for the list of parameters for each inbound endpoint type:
1. Go to **MI Project Explorer** > **Inbound Endpoints**.

- [HTTP Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/http-inbound-endpoint-properties)
- [CXF WS RM Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/cxf-ws-rm-inbound-endpoint-properties)
- [HL7 Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/hl7-inbound-endpoint-properties)
- [WebSocket Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/websocket-inbound-endpoint-properties)
- [File Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/polling-inbound-endpoints/file-inbound-endpoint-properties)
- [JMS Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/polling-inbound-endpoints/jms-inbound-endpoint-properties)
- [Kafka Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/polling-inbound-endpoints/kafka-inbound-endpoint-properties)
- [RabbitMQ Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/event-based-inbound-endpoints/rabbitmq-inbound-endpoint-properties)
- [MQTT Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/event-based-inbound-endpoints/mqtt-inbound-endpoint-properties)
2. Select the inbound endpoint you want to edit.

!!! Note
**Redeployment of listening inbound endpoints fail?**
2. On the inbound endpoint view, click the edit (pen) icon next to the inbound endpoint name to edit the inbound endpoint.

A **listening inbound endpoint** opens the port for itself during deployment. Therefore, if you are **redeploying** a listening inbound endpoint artifact, the redeployment will not be successful until the port that was previously opened for the inbound endpoint is closed.
<a href="{{base_path}}/assets/img/develop/create-artifacts/create-inbound-endpoint/inbound-endpoint-view-edit.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-inbound-endpoint/inbound-endpoint-view-edit.png" alt="Edit inbound endpoint" width="80%"></a>

By default, the system will wait for 10 seconds for the previously opened port to close down. If you want to increase this waiting time beyond 10 seconds, be sure to add the following system property in the `deployment.toml` file, which is stored in the `MI_HOME/conf/` directory and restart the server before redeploying the artifacts.
This will open the **Edit Listener** interface.

```toml
[system.parameter]
'synapse.transport.portCloseVerifyTimeout' = 20
```
Note that `synapse.transport.portCloseVerifyTimeout` should be wrapped by single quotes since it contain dots. The TOML format detects the dot as an object separator.
Also note that this setting may be required in Windows environments as the process of closing a port can sometimes take longer than 10 seconds.
4. Once you update the details, click **Update**.

### Using the Source View
See the following links for the list of parameters for each inbound endpoint type:

Click the **Source** tab to view the XML-based synapse configuration (source code) of the inbound endpoint. You can update the service using this view.
- [HTTP Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/http-inbound-endpoint-properties)
- [CXF WS RM Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/cxf-ws-rm-inbound-endpoint-properties)
- [HL7 Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/hl7-inbound-endpoint-properties)
- [WebSocket Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/listening-inbound-endpoints/websocket-inbound-endpoint-properties)
- [File Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/polling-inbound-endpoints/file-inbound-endpoint-properties)
- [JMS Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/polling-inbound-endpoints/jms-inbound-endpoint-properties)
- [Kafka Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/polling-inbound-endpoints/kafka-inbound-endpoint-properties)
- [RabbitMQ Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/event-based-inbound-endpoints/rabbitmq-inbound-endpoint-properties)
- [MQTT Inbound Parameters]({{base_path}}/reference/synapse-properties/inbound-endpoints/event-based-inbound-endpoints/mqtt-inbound-endpoint-properties)

<img src="{{base_path}}/assets/img/integrate/create_artifacts/new_inbound_endpoint/inbound-source-view.png" width="800">
### Source View

## Examples
Click the **Show Source** (`</>`) icon located in the top right corner of the VS Code to view the XML-based synapse configuration (source code) of the inbound endpoint. You can update the inbound endpoint using this view.

- [JMS Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-jms-protocol)
- [File Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/file-inbound-endpoint)
- [HTTP Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-http-protocol)
- [HTTPS Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-https-protocol)
- [HL7 Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-hl7-protocol-auto-ack)
- [MQTT Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-mqtt-protocol)
- [RabbitMQ Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-rabbitmq-protocol)
- [Kafka Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-kafka)
- [WebSocket Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-secured-websocket)
- [Using Inbound Endpoints with Registry]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-with-registry)
<a href="{{base_path}}/assets/img/develop/create-artifacts/create-inbound-endpoint/source-view.png"><img src="{{base_path}}/assets/img/develop/create-artifacts/create-inbound-endpoint/source-view.png" alt="Edit inbound endpoint" width="80%"></a>

## Tutorial
!!! abstract "Learn more about inbound endpoints"

- See the tutorial on [using inbound endpoints]({{base_path}}/learn/integration-tutorials/using-inbound-endpoints)
Follow our examples on inbound endpoints:

- [JMS Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-jms-protocol)
- [File Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/file-inbound-endpoint)
- [HTTP Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-http-protocol)
- [HTTPS Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-https-protocol)
- [HL7 Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-hl7-protocol-auto-ack)
- [MQTT Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-mqtt-protocol)
- [RabbitMQ Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-rabbitmq-protocol)
- [Kafka Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-kafka)
- [WebSocket Inbound Endpoint example]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-secured-websocket)
- [Using Inbound Endpoints with Registry]({{base_path}}/learn/examples/inbound-endpoint-examples/inbound-endpoint-with-registry)

Follow our tutorial on inbound endpoints:

- See the tutorial on [using inbound endpoints]({{base_path}}/learn/integration-tutorials/using-inbound-endpoints)
Loading