com.wl4g.infra.common.notification.MessageNotifier Maven / Gradle / Ivy
/*
* Copyright 2017 ~ 2025 the original author or authors. James Wong
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.wl4g.infra.common.notification;
import javax.validation.constraints.NotNull;
import com.wl4g.infra.common.framework.operator.Operator;
import com.wl4g.infra.common.notification.MessageNotifier.NotifierKind;
import com.wl4g.infra.common.notification.email.EmailMessageNotifier;
/**
* - Use for example:
*
* {@link @Service} public class ExampleAlerter {
*
* // Injection message notifier adapter. {@link @Autowired} private
* GenericOperatorAdapter<{@link NotifierKind}, {@link MessageNotifier}>
* notifierAdapter;
*
* public void doNotify() { {@link GenericNotifierParam} msg = new
* {@link GenericNotifierParam}("[email protected]", "alaramTpl1");
*
* // Sets common parameters. (Required)
* msg.addParameter("appName", "bizService1"); msg.addParameter("status",
* "DOWN"); msg.addParameter("cause", "Host.cpu.utilization > 200%"); // More
* customize variables(Note: just match the template) ...
*
* // Sets mail special parameters. (Optional)
* //msg.addParameter({@link EmailMessageNotifier#KEY_MAIL_SUBJECT}, "This is
* a test message");
* //msg.addParameter({@link EmailMessageNotifier#KEY_MAIL_CC},
* "[email protected]");
* //msg.addParameter({@link EmailMessageNotifier#KEY_MAIL_BCC},
* "[email protected]");
* //msg.addParameter({@link EmailMessageNotifier#KEY_MAIL_REPLYTO},
* "[email protected]");
*
* // Do sent
* notifierAdapter.forOperator({@link NotifierKind#ALIYUN_SMS}).send(msg);
* //notifierAdapter.forOperator({@link NotifierKind#EMAIL}).send(msg); // ... }
*
* }
*
*
*
* @param