Browse Source

resolve code checks

pull/2/head
hgaol 5 years ago
parent
commit
906ffa09a9
  1. 14
      dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java
  2. 1
      dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/manager/EmailManager.java
  3. 20
      dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java
  4. 9
      dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/EnterpriseWeChatUtils.java
  5. 10
      dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/EmailAlertPluginTest.java
  6. 22
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/plugin/FilePluginManager.java
  7. 10
      dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/plugin/PluginClassLoader.java
  8. 72
      dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/plugin/FilePluginManagerTest.java
  9. 61
      dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/plugin/PluginClassLoaderTest.java
  10. 12
      dolphinscheduler-plugin-api/src/main/java/org/apache/dolphinscheduler/plugin/model/AlertData.java
  11. 130
      dolphinscheduler-plugin-api/src/main/java/org/apache/dolphinscheduler/plugin/utils/PropertyUtils.java
  12. 80
      dolphinscheduler-plugin-api/src/test/java/org/apache/dolphinscheduler/plugin/model/AlertDataTest.java
  13. 54
      dolphinscheduler-plugin-api/src/test/java/org/apache/dolphinscheduler/plugin/model/AlertInfoTest.java
  14. 4
      dolphinscheduler-plugin-api/src/test/java/org/apache/dolphinscheduler/plugin/utils/PropertyUtilsTest.java
  15. 9
      pom.xml

14
dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/AlertServer.java

@ -28,7 +28,6 @@ import org.apache.dolphinscheduler.dao.entity.Alert;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.net.MalformedURLException;
import java.util.List; import java.util.List;
/** /**
@ -56,15 +55,10 @@ public class AlertServer {
}; };
public AlertServer() { public AlertServer() {
try { alertPluginManager =
alertPluginManager = new FilePluginManager(PropertyUtils.getString(Constants.PLUGIN_DIR), whitePrefixes, excludePrefixes);
new FilePluginManager(PropertyUtils.getString(Constants.PLUGIN_DIR), whitePrefixes, excludePrefixes); // add default alert plugins
// add default alert plugins alertPluginManager.addPlugin(new EmailAlertPlugin());
alertPluginManager.addPlugin(new EmailAlertPlugin());
} catch (MalformedURLException e) {
logger.error("Failed to start alert server", e);
System.exit(1);
}
} }
public synchronized static AlertServer getInstance() { public synchronized static AlertServer getInstance() {

1
dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/manager/EmailManager.java

@ -17,7 +17,6 @@
package org.apache.dolphinscheduler.alert.manager; package org.apache.dolphinscheduler.alert.manager;
import org.apache.dolphinscheduler.alert.utils.MailUtils; import org.apache.dolphinscheduler.alert.utils.MailUtils;
import org.apache.dolphinscheduler.common.enums.ShowType;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;

20
dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/runner/AlertSender.java

@ -54,9 +54,7 @@ public class AlertSender {
} }
public void run() { public void run() {
List<User> users; List<User> users;
Map<String, Object> retMaps = null; Map<String, Object> retMaps = null;
for (Alert alert : alertList) { for (Alert alert : alertList) {
users = alertDao.listUserByAlertgroupId(alert.getAlertGroupId()); users = alertDao.listUserByAlertgroupId(alert.getAlertGroupId());
@ -85,7 +83,10 @@ public class AlertSender {
AlertPlugin emailPlugin = pluginManager.findOne(Constants.PLUGIN_DEFAULT_EMAIL); AlertPlugin emailPlugin = pluginManager.findOne(Constants.PLUGIN_DEFAULT_EMAIL);
retMaps = emailPlugin.process(alertInfo); retMaps = emailPlugin.process(alertInfo);
if (retMaps == null || !Boolean.parseBoolean(String.valueOf(retMaps.get(Constants.STATUS)))) { if (retMaps == null) {
alertDao.updateAlert(AlertStatus.EXECUTION_FAILURE, "alert send error", alert.getId());
logger.info("alert send error : return value is null");
} else if (!Boolean.parseBoolean(String.valueOf(retMaps.get(Constants.STATUS)))) {
alertDao.updateAlert(AlertStatus.EXECUTION_FAILURE, String.valueOf(retMaps.get(Constants.MESSAGE)), alert.getId()); alertDao.updateAlert(AlertStatus.EXECUTION_FAILURE, String.valueOf(retMaps.get(Constants.MESSAGE)), alert.getId());
logger.info("alert send error : {}", retMaps.get(Constants.MESSAGE)); logger.info("alert send error : {}", retMaps.get(Constants.MESSAGE));
} else { } else {
@ -96,17 +97,4 @@ public class AlertSender {
} }
/**
* get a list of SMS users
*
* @param users
* @return
*/
private List<String> getReciversForSMS(List<User> users) {
List<String> list = new ArrayList<>();
for (User user : users) {
list.add(user.getPhone());
}
return list;
}
} }

9
dolphinscheduler-alert/src/main/java/org/apache/dolphinscheduler/alert/utils/EnterpriseWeChatUtils.java

@ -18,7 +18,6 @@ package org.apache.dolphinscheduler.alert.utils;
import org.apache.dolphinscheduler.common.enums.ShowType; import org.apache.dolphinscheduler.common.enums.ShowType;
import org.apache.dolphinscheduler.common.utils.StringUtils; import org.apache.dolphinscheduler.common.utils.StringUtils;
import org.apache.dolphinscheduler.dao.entity.Alert;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.google.common.reflect.TypeToken; import com.google.common.reflect.TypeToken;
@ -67,15 +66,17 @@ public class EnterpriseWeChatUtils {
* get Enterprise WeChat is enable * get Enterprise WeChat is enable
* @return isEnable * @return isEnable
*/ */
public static Boolean isEnable(){ public static boolean isEnable(){
Boolean isEnable = false; Boolean isEnable = null;
try { try {
isEnable = PropertyUtils.getBoolean(Constants.ENTERPRISE_WECHAT_ENABLE); isEnable = PropertyUtils.getBoolean(Constants.ENTERPRISE_WECHAT_ENABLE);
} catch (Exception e) { } catch (Exception e) {
logger.error(e.getMessage(),e); logger.error(e.getMessage(),e);
} }
if (isEnable == null) {
return false;
}
return isEnable; return isEnable;
} }
/** /**

10
dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/EmailAlertPluginTest.java

@ -29,6 +29,7 @@ import org.slf4j.LoggerFactory;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import static org.junit.Assert.*; import static org.junit.Assert.*;
@ -65,14 +66,15 @@ public class EmailAlertPluginTest {
.setContent("[\"alarm time:2018-02-05\", \"service name:MYSQL_ALTER\", \"alarm name:MYSQL_ALTER_DUMP\", " + .setContent("[\"alarm time:2018-02-05\", \"service name:MYSQL_ALTER\", \"alarm name:MYSQL_ALTER_DUMP\", " +
"\"get the alarm exception.!,interface error,exception information:timed out\", \"request address:http://blog.csdn.net/dreamInTheWorld/article/details/78539286\"]") "\"get the alarm exception.!,interface error,exception information:timed out\", \"request address:http://blog.csdn.net/dreamInTheWorld/article/details/78539286\"]")
.setLog("test log") .setLog("test log")
.setReceivers("bitace@163.com") .setReceivers("xx@xx.com")
.setReceiversCc("bitace@163.com") .setReceiversCc("xx@xx.com")
.setShowType(ShowType.TEXT.getDescp()) .setShowType(ShowType.TEXT.getDescp())
.setTitle("test title"); .setTitle("test title");
alertInfo.setAlertData(alertData); alertInfo.setAlertData(alertData);
List<String> list = new ArrayList<String>(){{ add("bitace@163.com"); }}; List<String> list = new ArrayList<String>(){{ add("xx@xx.com"); }};
alertInfo.addProp("receivers", list); alertInfo.addProp("receivers", list);
plugin.process(alertInfo); Map<String, Object> ret = plugin.process(alertInfo);
assertFalse(Boolean.parseBoolean(String.valueOf(ret.get(Constants.STATUS))));
} }
} }

22
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/plugin/FilePluginManager.java

@ -42,12 +42,30 @@ public class FilePluginManager implements PluginManager {
private Map<String, PluginClassLoader> classLoaderMap = new ConcurrentHashMap<>(); private Map<String, PluginClassLoader> classLoaderMap = new ConcurrentHashMap<>();
public FilePluginManager(String dirPath, String[] whitePrefixes, String[] excludePrefixes) throws MalformedURLException { private String[] whitePrefixes;
private String[] excludePrefixes;
public FilePluginManager(String dirPath, String[] whitePrefixes, String[] excludePrefixes) {
this.whitePrefixes = whitePrefixes;
this.excludePrefixes = excludePrefixes;
try {
load(dirPath);
} catch (MalformedURLException e) {
logger.error("load plugins failed.", e);
}
}
private void load(String dirPath) throws MalformedURLException {
logger.info("start to load jar files in {}", dirPath); logger.info("start to load jar files in {}", dirPath);
if (dirPath == null) {
logger.error("not a valid path - {}", dirPath);
return;
}
File[] files = new File(dirPath).listFiles(); File[] files = new File(dirPath).listFiles();
if (files == null) { if (files == null) {
logger.error("not a valid path - {}", dirPath); logger.error("not a valid path - {}", dirPath);
System.exit(1); return;
} }
for (File file : files) { for (File file : files) {
if (file.isDirectory() && !file.getPath().endsWith(Constants.PLUGIN_JAR_SUFFIX)) { if (file.isDirectory() && !file.getPath().endsWith(Constants.PLUGIN_JAR_SUFFIX)) {

10
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/plugin/PluginClassLoader.java

@ -85,6 +85,9 @@ public class PluginClassLoader extends URLClassLoader {
} }
private boolean fromWhitePrefix(String name) { private boolean fromWhitePrefix(String name) {
if (this.whitePrefixes == null) {
return false;
}
for (String whitePrefix : this.whitePrefixes) { for (String whitePrefix : this.whitePrefixes) {
if (name.startsWith(whitePrefix)) { if (name.startsWith(whitePrefix)) {
return true; return true;
@ -94,6 +97,9 @@ public class PluginClassLoader extends URLClassLoader {
} }
private boolean fromExcludePrefix(String name) { private boolean fromExcludePrefix(String name) {
if (this.excludePrefixes == null) {
return false;
}
for (String excludePrefix : this.excludePrefixes) { for (String excludePrefix : this.excludePrefixes) {
if (name.startsWith(excludePrefix)) { if (name.startsWith(excludePrefix)) {
return true; return true;
@ -139,9 +145,7 @@ public class PluginClassLoader extends URLClassLoader {
public URL getResource(String name) { public URL getResource(String name) {
URL res = null; URL res = null;
if (res == null) { res = findResource(name);
res = findResource(name);
}
if (res == null) { if (res == null) {
res = super.getResource(name); res = super.getResource(name);
} }

72
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/plugin/FilePluginManagerTest.java

@ -0,0 +1,72 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.common.plugin;
import org.apache.dolphinscheduler.plugin.api.AlertPlugin;
import org.apache.dolphinscheduler.plugin.model.AlertInfo;
import org.apache.dolphinscheduler.plugin.model.PluginName;
import org.junit.Before;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.*;
public class FilePluginManagerTest {
private FilePluginManager filePluginManager;
private AlertPlugin alertPlugin;
@Before
public void before() {
filePluginManager = new FilePluginManager(null, null, null);
alertPlugin = new AlertPlugin() {
@Override
public String getId() {
return "test";
}
@Override
public PluginName getName() {
return new PluginName().setChinese("ch").setEnglish("en");
}
@Override
public Map<String, Object> process(AlertInfo info) {
return new HashMap<>();
}
};
}
@Test
public void findOne() {
filePluginManager.addPlugin(alertPlugin);
assertEquals(alertPlugin, filePluginManager.findOne(alertPlugin.getId()));
}
@Test
public void findAll() {
assertNotNull(filePluginManager.findAll());
}
@Test
public void addPlugin() {
filePluginManager.addPlugin(alertPlugin);
assertNotNull(filePluginManager.findAll());
}
}

61
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/plugin/PluginClassLoaderTest.java

@ -0,0 +1,61 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.common.plugin;
import org.junit.Before;
import org.junit.Test;
import java.net.URL;
import static org.junit.Assert.*;
public class PluginClassLoaderTest {
private PluginClassLoader pluginClassLoader;
private ClassLoader parent;
@Before
public void setUp() {
parent = Thread.currentThread().getContextClassLoader();
pluginClassLoader = new PluginClassLoader(
new URL[]{}, parent,
null, null);
}
@Test
public void loadClassNull() {
Class clazz = null;
try {
clazz = pluginClassLoader.loadClass("java.lang.Object");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
assertEquals(null, clazz.getClassLoader());
}
@Test
public void loadClassApp() {
Class clazz = null;
try {
clazz = pluginClassLoader.loadClass("org.apache.dolphinscheduler.common.Constants");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
assertEquals(parent, clazz.getClassLoader());
}
}

12
dolphinscheduler-plugin-api/src/main/java/org/apache/dolphinscheduler/plugin/model/AlertData.java

@ -54,9 +54,6 @@ public class AlertData {
*/ */
private String receiversCc; private String receiversCc;
public AlertData() {
}
public int getId() { public int getId() {
return id; return id;
} }
@ -129,13 +126,4 @@ public class AlertData {
return this; return this;
} }
public AlertData(int id, String title, String content, String log, int alertGroupId, String receivers, String receiversCc) {
this.id = id;
this.title = title;
this.content = content;
this.log = log;
this.alertGroupId = alertGroupId;
this.receivers = receivers;
this.receiversCc = receiversCc;
}
} }

130
dolphinscheduler-plugin-api/src/main/java/org/apache/dolphinscheduler/plugin/utils/PropertyUtils.java

@ -22,8 +22,6 @@ import org.slf4j.LoggerFactory;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties; import java.util.Properties;
/** /**
@ -32,9 +30,6 @@ import java.util.Properties;
*/ */
public class PropertyUtils { public class PropertyUtils {
/**
* logger
*/
private static final Logger logger = LoggerFactory.getLogger(PropertyUtils.class); private static final Logger logger = LoggerFactory.getLogger(PropertyUtils.class);
private static final Properties properties = new Properties(); private static final Properties properties = new Properties();
@ -44,76 +39,72 @@ public class PropertyUtils {
} }
static { static {
String[] propertyFiles = new String[]{"/plugin.properties"}; String propertyFiles = "/plugin.properties";
for (String fileName : propertyFiles) { InputStream fis = null;
InputStream fis = null; try {
try { fis = PropertyUtils.class.getResourceAsStream(propertyFiles);
fis = PropertyUtils.class.getResourceAsStream(fileName); properties.load(fis);
properties.load(fis); } catch (IOException e) {
logger.error(e.getMessage(), e);
} catch (IOException e) { if (fis != null) {
logger.error(e.getMessage(), e);
if (fis != null) {
IOUtils.closeQuietly(fis);
}
System.exit(1);
} finally {
IOUtils.closeQuietly(fis); IOUtils.closeQuietly(fis);
} }
} finally {
IOUtils.closeQuietly(fis);
} }
} }
/** /**
* get property value * get property value
* *
* @param key property name * @param key property name
* @param defaultVal default value
* @return property value * @return property value
*/ */
public static String getString(String key) { public static String getString(String key, String defaultVal) {
if (key == null) { String val = properties.getProperty(key.trim());
return null; return val == null ? defaultVal : val;
}
return properties.getProperty(key.trim());
} }
/** /**
* get property value * get property value
* *
* @param key property name * @param key property name
* @param defaultVal default value
* @return property value * @return property value
*/ */
public static String getString(String key, String defaultVal) { public static String getString(String key) {
String val = properties.getProperty(key.trim()); if (key == null) {
return val == null ? defaultVal : val; return null;
}
return properties.getProperty(key.trim());
} }
/** /**
* get property value * get property value
* *
* @param key property name * @param key property name
* @return get property int value , if key == null, then return -1 * @return get property int value , if key == null, then return -1
*/ */
public static int getInt(String key) { public static int getInt(String key) {
return getInt(key, -1); return getInt(key, -1);
} }
/** /**
* get int
* *
* @param key key * @param key key
* @param defaultValue default value * @param defaultValue default value
* @return property value * @return property value
*/ */
public static int getInt(String key, int defaultValue) { public static int getInt(String key, int defaultValue) {
String value = getString(key); String value = properties.getProperty(key.trim());
if (value == null) { if (value == null) {
return defaultValue; return defaultValue;
} }
try { try {
return Integer.parseInt(value); return Integer.parseInt(value);
} catch (NumberFormatException e) { } catch (NumberFormatException e) {
logger.info(e.getMessage(),e); logger.info(e.getMessage(), e);
} }
return defaultValue; return defaultValue;
} }
@ -126,32 +117,33 @@ public class PropertyUtils {
*/ */
public static boolean getBoolean(String key) { public static boolean getBoolean(String key) {
String value = properties.getProperty(key.trim()); String value = properties.getProperty(key.trim());
if(null != value){ if (value == null) {
return Boolean.parseBoolean(value); return false;
} }
return false; return Boolean.parseBoolean(value);
} }
/** /**
* get property value * get property value
* *
* @param key property name * @param key property name
* @param defaultValue default value * @param defaultValue default value
* @return property value * @return property value
*/ */
public static Boolean getBoolean(String key, boolean defaultValue) { public static Boolean getBoolean(String key, boolean defaultValue) {
String value = properties.getProperty(key.trim()); String value = properties.getProperty(key.trim());
if(null != value){ if (value == null) {
return Boolean.parseBoolean(value); return defaultValue;
} }
return defaultValue; return Boolean.parseBoolean(value);
} }
/** /**
* get property long value * get property long value
* @param key key *
* @param key key
* @param defaultVal default value * @param defaultVal default value
* @return property value * @return property value
*/ */
@ -161,72 +153,38 @@ public class PropertyUtils {
} }
/** /**
* get long
* *
* @param key key * @param key key
* @return property value * @return property value
*/ */
public static long getLong(String key) { public static long getLong(String key) {
return getLong(key,-1); return getLong(key, -1);
} }
/** /**
* get double
* *
* @param key key * @param key key
* @param defaultVal default value * @param defaultVal default value
* @return property value * @return property value
*/ */
public static double getDouble(String key, double defaultVal) { public static double getDouble(String key, double defaultVal) {
String val = getString(key); String val = properties.getProperty(key.trim());
return val == null ? defaultVal : Double.parseDouble(val); return val == null ? defaultVal : Double.parseDouble(val);
} }
/** /**
* get array * @param key key
* @param key property name * @param type type
* @param splitStr separator
* @return property value through array
*/
public static String[] getArray(String key, String splitStr) {
String value = getString(key);
if (value == null) {
return new String[0];
}
try {
String[] propertyArray = value.split(splitStr);
return propertyArray;
} catch (NumberFormatException e) {
logger.info(e.getMessage(),e);
}
return new String[0];
}
/**
*
* @param key key
* @param type type
* @param defaultValue default value * @param defaultValue default value
* @param <T> T * @param <T> T
* @return get enum value * @return get enum value
*/ */
public <T extends Enum<T>> T getEnum(String key, Class<T> type, public <T extends Enum<T>> T getEnum(String key, Class<T> type,
T defaultValue) { T defaultValue) {
String val = getString(key); String val = properties.getProperty(key.trim());
return val == null ? defaultValue : Enum.valueOf(type, val); return val == null ? defaultValue : Enum.valueOf(type, val);
} }
/**
* get all properties with specified prefix, like: fs.
* @param prefix prefix to search
* @return all properties with specified prefix
*/
public static Map<String, String> getPrefixedProperties(String prefix) {
Map<String, String> matchedProperties = new HashMap<>();
for (String propName : properties.stringPropertyNames()) {
if (propName.startsWith(prefix)) {
matchedProperties.put(propName, properties.getProperty(propName));
}
}
return matchedProperties;
}
} }

80
dolphinscheduler-plugin-api/src/test/java/org/apache/dolphinscheduler/plugin/model/AlertDataTest.java

@ -0,0 +1,80 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.plugin.model;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
public class AlertDataTest {
private AlertData alertData;
@Before
public void before() {
alertData = new AlertData();
alertData.setId(1)
.setContent("content")
.setShowType("email")
.setTitle("title")
.setReceivers("receivers")
.setReceiversCc("cc")
.setLog("log")
.setAlertGroupId(1);
}
@Test
public void getId() {
assertEquals(1, alertData.getId());
}
@Test
public void getTitle() {
assertEquals("title", alertData.getTitle());
}
@Test
public void getContent() {
assertEquals("content", alertData.getContent());
}
@Test
public void getLog() {
assertEquals("log", alertData.getLog());
}
@Test
public void getAlertGroupId() {
assertEquals(1, alertData.getAlertGroupId());
}
@Test
public void getReceivers() {
assertEquals("receivers", alertData.getReceivers());
}
@Test
public void getReceiversCc() {
assertEquals("cc", alertData.getReceiversCc());
}
@Test
public void getShowType() {
assertEquals("email", alertData.getShowType());
}
}

54
dolphinscheduler-plugin-api/src/test/java/org/apache/dolphinscheduler/plugin/model/AlertInfoTest.java

@ -0,0 +1,54 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.dolphinscheduler.plugin.model;
import org.junit.Before;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.*;
public class AlertInfoTest {
private AlertInfo alertInfo;
@Before
public void before() {
alertInfo = new AlertInfo();
}
@Test
public void getAlertProps() {
Map<String, Object> map = new HashMap<>();
alertInfo.setAlertProps(map);
assertNotNull(alertInfo.getAlertProps());
}
@Test
public void getProp() {
alertInfo.addProp("k", "v");
assertEquals("v", alertInfo.getProp("k"));
}
@Test
public void getAlertData() {
alertInfo.setAlertData(new AlertData());
assertNotNull(alertInfo.getAlertData());
}
}

4
dolphinscheduler-plugin-api/src/test/java/org/apache/dolphinscheduler/plugin/utils/PropertyUtilsTest.java

@ -63,7 +63,7 @@ public class PropertyUtilsTest {
@Test @Test
public void testGetLong() { public void testGetLong() {
long result = PropertyUtils.getLong("test.long"); long result = PropertyUtils.getLong("test.long");
assertSame(result, 100L); assertSame(100L, result);
} }
/** /**
@ -74,7 +74,7 @@ public class PropertyUtilsTest {
//If key is undefine in alert.properties, and there is a defaultval, then return defaultval //If key is undefine in alert.properties, and there is a defaultval, then return defaultval
double result = PropertyUtils.getDouble("abc", 5.0); double result = PropertyUtils.getDouble("abc", 5.0);
assertEquals(result, 5.0, 0); assertEquals(5.0, result, 0);
result = PropertyUtils.getDouble("cba", 5.0); result = PropertyUtils.getDouble("cba", 5.0);
assertEquals(3.1, result, 0.01); assertEquals(3.1, result, 0.01);

9
pom.xml

@ -350,7 +350,7 @@
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version> <version>${mysql.connector.version}</version>
<!-- <scope>test</scope>--> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.h2database</groupId> <groupId>com.h2database</groupId>
@ -694,6 +694,7 @@
<include>**/alert/utils/FuncUtilsTest.java</include> <include>**/alert/utils/FuncUtilsTest.java</include>
<include>**/alert/utils/JSONUtilsTest.java</include> <include>**/alert/utils/JSONUtilsTest.java</include>
<include>**/alert/utils/MailUtilsTest.java</include> <include>**/alert/utils/MailUtilsTest.java</include>
<include>**/alert/plugin/EmailAlertPluginTest.java</include>
<include>**/api/dto/resources/filter/ResourceFilterTest.java</include> <include>**/api/dto/resources/filter/ResourceFilterTest.java</include>
<include>**/api/dto/resources/visitor/ResourceTreeVisitorTest.java</include> <include>**/api/dto/resources/visitor/ResourceTreeVisitorTest.java</include>
<include>**/api/enums/testGetEnum.java</include> <include>**/api/enums/testGetEnum.java</include>
@ -769,6 +770,8 @@
<include>**/common/utils/HttpUtilsTest.java</include> <include>**/common/utils/HttpUtilsTest.java</include>
<include>**/common/ConstantsTest.java</include> <include>**/common/ConstantsTest.java</include>
<include>**/common/utils/HadoopUtils.java</include> <include>**/common/utils/HadoopUtils.java</include>
<include>**/common/plugin/FilePluginManagerTest</include>
<include>**/common/plugin/PluginClassLoaderTest</include>
<include>**/dao/mapper/AccessTokenMapperTest.java</include> <include>**/dao/mapper/AccessTokenMapperTest.java</include>
<include>**/dao/mapper/AlertGroupMapperTest.java</include> <include>**/dao/mapper/AlertGroupMapperTest.java</include>
<include>**/dao/mapper/CommandMapperTest.java</include> <include>**/dao/mapper/CommandMapperTest.java</include>
@ -835,6 +838,9 @@
<include>**/dao/mapper/UserMapperTest.java</include> <include>**/dao/mapper/UserMapperTest.java</include>
<include>**/dao/utils/DagHelperTest.java</include> <include>**/dao/utils/DagHelperTest.java</include>
<include>**/dao/AlertDaoTest.java</include> <include>**/dao/AlertDaoTest.java</include>
<include>**/plugin/model/AlertDataTest.java</include>
<include>**/plugin/model/AlertInfoTest.java</include>
<include>**/plugin/utils/PropertyUtilsTest.java</include>
</includes> </includes>
<!-- <skip>true</skip> --> <!-- <skip>true</skip> -->
</configuration> </configuration>
@ -980,5 +986,4 @@
<module>dolphinscheduler-service</module> <module>dolphinscheduler-service</module>
<module>dolphinscheduler-plugin-api</module> <module>dolphinscheduler-plugin-api</module>
</modules> </modules>
</project> </project>
Loading…
Cancel
Save