Mặc định, khi các bạn tạo mới custom Connector sử dụng Anypoint Devkit trong Mule ESB, category của custom Connector này sẽ là Connectors.
Ví dụ mình tạo mới một Anypoint Connector Project như sau:
sau khi mình click chuột phải vào project, chọn Anypoint Connector rồi chọn Install or Update, các bạn sẽ thấy Connector này xuất hiện trong Connectors category của Mule Palete như sau:
Về mặt ý nghĩa, nếu Connector của các bạn làm nhiệm vụ kết nối tới một hệ thống nào đó, thì category mặc định này có vẻ đúng. Nhưng nếu nó không làm những chuyện này thì nếu chúng ta cứ để category mặc định cho nó thì không hợp lý cho lắm.
Trong Mule ESB, một Connector có các category như sau:
- Connectors
- Scopes
- Endpoints
- Components
- Transformers
- Filters
- Flow Control
- Error Handling
- Miscellaneous
- Security
Việc chọn đúng category mà Connector của chúng ta thuộc về sẽ giúp người dùng khi sử dụng Connector của chúng ta cảm thấy thoải mái hơn, hợp lý hơn.
Vậy cách thay đổi category mặc định này như thế nào? Anypoint Devkit cho phép chúng ta làm điều này bằng cách sử dụng annotation @Category (org.mule.api.annotations.Category) trong class chính của Connector của chúng ta.
Trong annotation @Category này, chúng ta có một thuộc tính là name, việc khai báo đúng giá trị của thuộc tính name này sẽ giúp chúng ta set đúng category cho Connector của chúng ta.
Dưới đây là danh sách các giá trị của thuộc tính name trong annotation @Category cho từng category nha các bạn:
- Connectors (DEFAULT): org.mule.tooling.category.cloudconnector
- Scopes: org.mule.tooling.category.scopes
- Endpoints: org.mule.tooling.category.endpoints
- Components: org.mule.tooling.category.core
- Transformers: org.mule.tooling.category.transformers
- Filters: org.mule.tooling.category.filters
- Flow Control: org.mule.tooling.category.flowControl
- Error Handling: org.mule.tooling.ui.modules.core.exceptions
- Miscellaneous: org.mule.tooling.ui.modules.core.miscellaneous
- Security: org.mule.tooling.category.security
Giả sử bây giờ, mình muốn set category cho Connector trong ví dụ ở trên thành Components, mình sẽ chỉnh sửa class HuongDanJavaConnector để thêm annotation @Category như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
package com.huongdanjava.huongdanjava; import org.mule.api.annotations.Category; import org.mule.api.annotations.Config; import org.mule.api.annotations.Connector; import org.mule.api.annotations.Processor; import com.huongdanjava.huongdanjava.config.ConnectorConfig; @Connector(name="huong-dan-java", friendlyName="HuongDanJava") @Category(name = "org.mule.tooling.category.core", description = "Huong Dan Java Component") public class HuongDanJavaConnector { @Config ConnectorConfig config; /** * Custom processor * * @param friend Name to be used to generate a greeting message. * @return A greeting message */ @Processor public String greet(String friend) { /* * MESSAGE PROCESSOR CODE GOES HERE */ return config.getGreeting() + " " + friend + ". " + config.getReply(); } public ConnectorConfig getConfig() { return config; } public void setConfig(ConnectorConfig config) { this.config = config; } } |
Khi đó, các bạn sẽ thấy Connector của mình xuất hiện trong category Components của Mule Palete như sau: