Một Logger component thì ngoài phần message, log level và phần category (mình đã đưa phần category vào Global Configuration) cần phải có thì với Huong Dan Java Logger, mình sẽ thêm một phần nữa liên quan đến override các giá trị của Category và Correlation Id mà chúng ta đã cấu hình trong phần Global Configuration. Việc có override hay không sẽ là tuỳ chọn, do nhu cầu của người dùng. Giá trị của những ô này, mặc định sẽ là giá trị từ phần Global Configuration.
Đầu tiên, mình cần đổi lại tên phương thức được annotate với annotation @Processor và xoá argument hiện tại của phương thức này luôn.
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 |
package com.huongdanjava.hdjlogger; 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.hdjlogger.config.ConnectorConfig; @Connector(name="huong-dan-java-logger-component", friendlyName="Huong Dan Java Logger") @Category(name = "org.mule.tooling.category.core", description = "Components") public class HuongDanJavaLoggerComponentConnector { @Config ConnectorConfig config; @Processor public String log() { /* * MESSAGE PROCESSOR CODE GOES HERE */ return config.getCorrelationId(); } public ConnectorConfig getConfig() { return config; } public void setConfig(ConnectorConfig config) { this.config = config; } } |
Tên phương thức này sẽ là tên xuất hiện ở phần Operation của phần cấu hình chính của connector của chúng ta.
Và giờ chúng ta có thể thêm các phần cấu hình như mình đã nói ở trên rồi:
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 40 41 42 |
package com.huongdanjava.hdjlogger; 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 org.mule.api.annotations.display.FriendlyName; import org.mule.api.annotations.display.Placement; import org.mule.api.annotations.param.Default; import org.mule.api.annotations.param.Optional; import com.huongdanjava.hdjlogger.config.ConnectorConfig; import com.huongdanjava.hdjlogger.constant.LoggingLevel; import com.huongdanjava.hdjlogger.constant.Text; @Connector(name="huong-dan-java-logger-component", friendlyName="Huong Dan Java Logger") @Category(name = "org.mule.tooling.category.core", description = "Components") public class HuongDanJavaLoggerComponentConnector { @Config ConnectorConfig config; @Processor public String log( @Placement(group = Text.GENERIC, order = 1) @Optional String message, @Placement(group = Text.GENERIC, order = 2) @Default("INFO") @FriendlyName(Text.LEVEL) LoggingLevel loggingLevel, @Placement(group = Text.OVERRIDE, order = 1) @Optional @FriendlyName(Text.OVVERIDE_CORRELATION_ID) String globalCorrelationIdOverride, @Placement(group = Text.OVERRIDE, order = 2) @Optional @FriendlyName(Text.OVVERIDE_CATEGORY) String globalCategoryOverride) { return config.getCorrelationId(); } public ConnectorConfig getConfig() { return config; } public void setConfig(ConnectorConfig config) { this.config = config; } } |
Ở đây, mình đã thêm mới một class LoggingLevel để định nghĩa phần log level cho Huong Dan Java Logger.
1 2 3 4 5 |
package com.huongdanjava.hdjlogger.constant; public enum LoggingLevel { ERROR, WARN, INFO, DEBUG, TRACE } |
Và class Text cũng được cập nhập thêm một số text mới:
1 2 3 4 5 6 7 8 9 10 11 |
package com.huongdanjava.hdjlogger.constant; public class Text { public static final String GENERIC = "Generic"; public static final String CORRELATION_ID = "Correlation Id"; public static final String LEVEL = "Level"; public static final String OVERRIDE = "Global Configuration<span class="x x-first x-last"> Override</span>"; public static final String OVVERIDE_CORRELATION_ID = "Corellation Id"; public static final String OVVERIDE_CATEGORY = "Category"; } |
Kết quả:
Đến đây thì chúng ta đã hoàn thành phần giao diện cho phần cấu hình chính của Huong Dan Java Logger rồi đó các bạn.