diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index 5a1056c781..e1e0dd7d1e 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -57,13 +57,6 @@ jobs: with: path: ~/.m2/repository key: ${{ runner.os }}-maven - - name: Bootstrap database - run: | - sed -i "/image: bitnami\/postgresql/a\ ports:\n - 5432:5432" $(pwd)/docker/docker-swarm/docker-compose.yml - sed -i "/image: bitnami\/zookeeper/a\ ports:\n - 2181:2181" $(pwd)/docker/docker-swarm/docker-compose.yml - docker-compose -f $(pwd)/docker/docker-swarm/docker-compose.yml up -d dolphinscheduler-zookeeper dolphinscheduler-postgresql - until docker logs docker-swarm_dolphinscheduler-postgresql_1 2>&1 | grep 'listening on IPv4 address'; do echo "waiting for postgresql ready ..."; sleep 1; done - docker run --rm --network docker-swarm_dolphinscheduler -v $(pwd)/sql/dolphinscheduler_postgre.sql:/docker-entrypoint-initdb.d/dolphinscheduler_postgre.sql bitnami/postgresql:11.11.0 bash -c "PGPASSWORD=root psql -h docker-swarm_dolphinscheduler-postgresql_1 -U root -d dolphinscheduler -v ON_ERROR_STOP=1 -f /docker-entrypoint-initdb.d/dolphinscheduler_postgre.sql" - name: Run Unit tests run: ./mvnw clean verify -B -Dmaven.test.skip=false diff --git a/.licenserc.yaml b/.licenserc.yaml index 143cafc485..4fdd1d3ac7 100644 --- a/.licenserc.yaml +++ b/.licenserc.yaml @@ -27,7 +27,7 @@ header: - DISCLAIMER - dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/ScriptRunner.java - mvnw.cmd - - sql/soft_version + - dolphinscheduler-dao/src/main/resources/sql/soft_version - .mvn - .gitattributes - '**/licenses/**/LICENSE-*' diff --git a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/AlertPluginManagerTest.java b/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/AlertPluginManagerTest.java index e7574a4c49..7bb64781c4 100644 --- a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/AlertPluginManagerTest.java +++ b/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/AlertPluginManagerTest.java @@ -28,6 +28,7 @@ import java.util.Objects; import org.junit.Assert; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,8 +40,8 @@ public class AlertPluginManagerTest { private static final Logger logger = LoggerFactory.getLogger(AlertPluginManagerTest.class); - @Before - public void setUp() { + @BeforeClass + public static void setUp() { System.setProperty("spring.profiles.active", "h2"); } diff --git a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/EmailAlertPluginTest.java b/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/EmailAlertPluginTest.java index 780c53d5ae..285b1132ab 100644 --- a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/EmailAlertPluginTest.java +++ b/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/plugin/EmailAlertPluginTest.java @@ -51,6 +51,7 @@ import java.util.List; import org.junit.Assert; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import com.google.common.collect.ImmutableList; @@ -63,9 +64,13 @@ public class EmailAlertPluginTest { private AlertDao alertDao; private PluginDao pluginDao; + @BeforeClass + public static void setUpClass() { + System.setProperty("spring.profiles.active", "h2"); + } + @Before public void setUp() { - System.setProperty("spring.profiles.active", "h2"); alertDao = DaoFactory.getDaoInstance(AlertDao.class); pluginDao = DaoFactory.getDaoInstance(PluginDao.class); } diff --git a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/utils/PropertyUtilsTest.java b/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/utils/PropertyUtilsTest.java deleted file mode 100644 index d72c09ae42..0000000000 --- a/dolphinscheduler-alert/src/test/java/org/apache/dolphinscheduler/alert/utils/PropertyUtilsTest.java +++ /dev/null @@ -1,221 +0,0 @@ -/* - * 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.alert.utils; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; - -import org.apache.dolphinscheduler.common.enums.NodeType; -import org.apache.dolphinscheduler.common.utils.PropertyUtils; - -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Test PropertyUtils - * and the resource path is src/test/resources/alert.properties. - */ -public class PropertyUtilsTest { - - private static final Logger logger = LoggerFactory.getLogger(PropertyUtilsTest.class); - - /** - * Test getString - */ - @Test - public void testGetString() { - - //Expected "EMAIL" - String result = PropertyUtils.getString("alert.type"); - logger.info(result); - assertEquals("EMAIL", result); - - //Expected "xxx.xxx.test" - result = PropertyUtils.getString("mail.server.host"); - assertEquals("xxx.xxx.test", result); - - //If key is undefine in alert.properties, then return null - result = PropertyUtils.getString("abc"); - assertNull(result); - - //If key is null, then return null - result = PropertyUtils.getString(null); - assertNull(result); - } - - - /** - * Test getBoolean - */ - @Test - public void testGetBoolean() { - - //Expected true - Boolean result = PropertyUtils.getBoolean("mail.smtp.starttls.enable"); - assertTrue(result); - - //Expected false - result = PropertyUtils.getBoolean("mail.smtp.ssl.enable"); - assertFalse(result); - - //If key is undefine in alert.properties, then return null - result = PropertyUtils.getBoolean("abc"); - assertFalse(result); - - //If key is null, then return false - result = PropertyUtils.getBoolean(null); - assertFalse(result); - } - - /** - * Test getLong - */ - @Test - public void testGetLong() { - - //Expected 25 - long result = PropertyUtils.getLong("mail.server.port"); - assertSame(25L, result); - - //If key is null, then return -1 - result = PropertyUtils.getLong(null); - assertSame(-1L, result); - - //If key is undefine in alert.properties, then return -1 - result = PropertyUtils.getLong("abc"); - assertSame(-1L, result); - - //If key is undefine in alert.properties, and there is a defaultval, then return defaultval - result = PropertyUtils.getLong("abc", 200); - assertEquals(200L, result); - - //If the value can not parse to long ,it will log the error and return -1L - result = PropertyUtils.getLong("test.server.testnumber"); - assertSame(-1L, result); - } - - /** - * Test getDouble - */ - @Test - public void testGetDouble() { - - //Expected 3.0 - double result = PropertyUtils.getDouble("test.server.factor", 3.0); - assertEquals(3.0, result, 0); - - //If key is null, then return -1.0 - result = PropertyUtils.getDouble(null, -1.0); - assertEquals(-1.0, result, 0); - - //If key is undefine in alert.properties, then return -1 - result = PropertyUtils.getDouble("abc", -1.0); - assertEquals(-1.0, result, 0); - - //If key is undefine in alert.properties, and there is a defaultval, then return defaultval - result = PropertyUtils.getDouble("abc", 5.0); - assertEquals(5.0, result, 0); - - //If the value can not parse to double ,it will log the error and return -1.0 - result = PropertyUtils.getDouble("test.server.testnumber", -1.0); - assertEquals(-1.0, result, 0); - } - - /** - * Test getArray - */ - @Test - public void testGetArray() { - - //Expected length 3 - String[] result = PropertyUtils.getArray("test.server.list", ","); - assertEquals(result.length, 3); - - //Equal array values - assertEquals("xxx.xxx.test1", result[0]); - assertEquals("xxx.xxx.test2", result[1]); - assertEquals("xxx.xxx.test3", result[2]); - - //If key is null, then return -1 - result = PropertyUtils.getArray(null, ","); - assertNull(result); - - //If key is undefine in alert.properties, then return null - result = PropertyUtils.getArray("abc", ","); - assertNull(result); - - //If splitStr is null, then return null - result = PropertyUtils.getArray("test.server.list", null); - assertNull(result); - } - - /** - * test getInt - */ - @Test - public void testGetInt() { - - //Expected 25 - int result = PropertyUtils.getInt("mail.server.port"); - assertSame(25, result); - - //If key is null, then return -1 - result = PropertyUtils.getInt(null); - assertSame(-1, result); - - //If key is undefine in alert.properties, then return -1 - result = PropertyUtils.getInt("abc"); - assertSame(-1, result); - - //If key is undefine in alert.properties, and there is a defaultval, then return defaultval - result = PropertyUtils.getInt("abc", 300); - assertEquals(300, result); - - //If the value can not parse to int ,it will log the error and return -1 - result = PropertyUtils.getInt("test.server.testnumber"); - assertSame(-1, result); - } - - /** - * Test getEnum - */ - @Test - public void testGetEnum() { - - //Expected MASTER - NodeType nodeType = PropertyUtils.getEnum("test.server.enum1", NodeType.class, NodeType.WORKER); - assertEquals(NodeType.MASTER, nodeType); - - //Expected DEAD_SERVER - nodeType = PropertyUtils.getEnum("test.server.enum2", NodeType.class, NodeType.WORKER); - assertEquals(NodeType.DEAD_SERVER, nodeType); - - //If key is null, then return defaultval - nodeType = PropertyUtils.getEnum(null, NodeType.class, NodeType.WORKER); - assertEquals(NodeType.WORKER, nodeType); - - //If the value doesn't define in enum ,it will log the error and return -1 - nodeType = PropertyUtils.getEnum("test.server.enum3", NodeType.class, NodeType.WORKER); - assertEquals(NodeType.WORKER, nodeType); - } - -} diff --git a/dolphinscheduler-api/pom.xml b/dolphinscheduler-api/pom.xml index c6c9760038..3eea94f54c 100644 --- a/dolphinscheduler-api/pom.xml +++ b/dolphinscheduler-api/pom.xml @@ -254,5 +254,17 @@ test + + org.apache.curator + curator-test + ${curator.test} + + + org.javassist + javassist + + + test + diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/HttpClientTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/HttpClientTest.java deleted file mode 100644 index 6753d93d44..0000000000 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/HttpClientTest.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * 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.api; - -import org.apache.http.NameValuePair; -import org.apache.http.client.entity.UrlEncodedFormEntity; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.message.BasicNameValuePair; -import org.apache.http.util.EntityUtils; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.net.URI; -import java.util.ArrayList; -import java.util.List; - -public class HttpClientTest { - - private static final Logger logger = LoggerFactory.getLogger(HttpClientTest.class); - - @Test - public void doPOSTParam()throws Exception{ - // create HttpClient - CloseableHttpClient httpclient = HttpClients.createDefault(); - - // create http post request - HttpPost httpPost = new HttpPost("http://localhost:12345/dolphinscheduler/projects/create"); - httpPost.setHeader("token", "123"); - // set parameters - List parameters = new ArrayList(); - parameters.add(new BasicNameValuePair("projectName", "qzw")); - parameters.add(new BasicNameValuePair("desc", "qzw")); - - UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(parameters); - httpPost.setEntity(formEntity); - - - CloseableHttpResponse response = null; - try { - // execute - response = httpclient.execute(httpPost); - // response status code 200 - if (response.getStatusLine().getStatusCode() == 200) { - String content = EntityUtils.toString(response.getEntity(), "UTF-8"); - logger.info(content); - } - } finally { - if (response != null) { - response.close(); - } - httpclient.close(); - } - } - - /** - * do get param path variables chinese - * @throws Exception - */ - @Test - public void doGETParamPathVariableAndChinese()throws Exception{ - // create HttpClient - CloseableHttpClient httpclient = HttpClients.createDefault(); - - List parameters = new ArrayList(); - // parameters.add(new BasicNameValuePair("pageSize", "10")); - - // define the parameters of the request - URI uri = new URIBuilder("http://localhost:12345/dolphinscheduler/projects/%E5%85%A8%E9%83%A8%E6%B5%81%E7%A8%8B%E6%B5%8B%E8%AF%95/process/list") - .build(); - - // create http GET request - HttpGet httpGet = new HttpGet(uri); - httpGet.setHeader("token","10f5625a2a1cbf9aa710653796c5d764"); - //response object - CloseableHttpResponse response = null; - try { - // execute http get request - response = httpclient.execute(httpGet); - // response status code 200 - if (response.getStatusLine().getStatusCode() == 200) { - String content = EntityUtils.toString(response.getEntity(), "UTF-8"); - logger.info("start--------------->"); - logger.info(content); - logger.info("end----------------->"); - } - } finally { - if (response != null) { - response.close(); - } - httpclient.close(); - } - } - - /** - * - * do get param - * @throws Exception - */ - @Test - public void doGETParam()throws Exception{ - // create HttpClient - CloseableHttpClient httpclient = HttpClients.createDefault(); - - List parameters = new ArrayList(); - parameters.add(new BasicNameValuePair("startDate", "2018-04-22 19:30:08")); - parameters.add(new BasicNameValuePair("endDate", "2028-04-22 19:30:08")); - parameters.add(new BasicNameValuePair("projectId", "0")); - - // define the parameters of the request - URI uri = new URIBuilder("http://localhost:12345/dolphinscheduler/projects/analysis/queue-count") - .setParameters(parameters) - .build(); - - // create http GET request - HttpGet httpGet = new HttpGet(uri); - httpGet.setHeader("token","2aef24c052c212fab9eec78848c2258b"); - //response object - CloseableHttpResponse response = null; - try { - // execute http get request - response = httpclient.execute(httpGet); - // response status code 200 - if (response.getStatusLine().getStatusCode() == 200) { - String content = EntityUtils.toString(response.getEntity(), "UTF-8"); - logger.info("start--------------->"); - logger.info(content); - logger.info("end----------------->"); - } - } finally { - if (response != null) { - response.close(); - } - httpclient.close(); - } - } - -} diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AbstractControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AbstractControllerTest.java index 55f966adc7..867f34261b 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AbstractControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/AbstractControllerTest.java @@ -26,17 +26,23 @@ import org.apache.dolphinscheduler.common.enums.ProfileType; import org.apache.dolphinscheduler.dao.entity.User; import org.apache.commons.lang.StringUtils; +import org.apache.curator.test.TestingServer; import java.text.MessageFormat; import java.util.HashMap; import java.util.Map; +import javax.annotation.PostConstruct; + import org.junit.After; import org.junit.Assert; import org.junit.Before; +import org.junit.Ignore; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; @@ -49,6 +55,7 @@ import org.springframework.web.context.WebApplicationContext; @ActiveProfiles(value = {ProfileType.H2}) @RunWith(SpringRunner.class) @SpringBootTest(classes = ApiApplicationServer.class) +@Ignore public class AbstractControllerTest { public static final String SESSION_ID = "sessionId"; @@ -105,4 +112,14 @@ public class AbstractControllerTest { result.put(Constants.MSG, status.getMsg()); } } + + @Configuration + @Profile(ProfileType.H2) + public static class RegistryServer { + @PostConstruct + public void startEmbedRegistryServer() throws Exception { + final TestingServer server = new TestingServer(true); + System.setProperty("registry.servers", server.getConnectString()); + } + } } diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/EnvironmentControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/EnvironmentControllerTest.java index 0b7233be92..98426346c2 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/EnvironmentControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/EnvironmentControllerTest.java @@ -40,12 +40,8 @@ import org.springframework.util.MultiValueMap; import com.fasterxml.jackson.core.type.TypeReference; import com.google.common.base.Preconditions; -/** - * environment controller test - */ public class EnvironmentControllerTest extends AbstractControllerTest { - - private static Logger logger = LoggerFactory.getLogger(EnvironmentControllerTest.class); + private static final Logger logger = LoggerFactory.getLogger(EnvironmentControllerTest.class); private String environmentCode; @@ -60,6 +56,7 @@ public class EnvironmentControllerTest extends AbstractControllerTest { testCreateEnvironment(); } + @Override @After public void after() throws Exception { testDeleteEnvironment(); diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/SecurityConfigLDAPTest.java~HEAD b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/SecurityConfigLDAPTest.java~HEAD deleted file mode 100644 index a96cec9158..0000000000 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/SecurityConfigLDAPTest.java~HEAD +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.api.security; - -import org.apache.dolphinscheduler.api.ApiApplicationServer; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ApiApplicationServer.class) -@TestPropertySource(properties = { - "security.authentication.type=LDAP", -}) -public class SecurityConfigLDAPTest { - - @Autowired - private SecurityConfig securityConfig; - - @Test - public void testAuthenticator() { - Authenticator authenticator = securityConfig.authenticator(); - Assert.assertNotNull(authenticator); - } -} diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/SecurityConfigLDAPTest.java~dev b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/SecurityConfigLDAPTest.java~dev deleted file mode 100644 index a96cec9158..0000000000 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/SecurityConfigLDAPTest.java~dev +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.api.security; - -import org.apache.dolphinscheduler.api.ApiApplicationServer; - -import org.junit.Assert; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest(classes = ApiApplicationServer.class) -@TestPropertySource(properties = { - "security.authentication.type=LDAP", -}) -public class SecurityConfigLDAPTest { - - @Autowired - private SecurityConfig securityConfig; - - @Test - public void testAuthenticator() { - Authenticator authenticator = securityConfig.authenticator(); - Assert.assertNotNull(authenticator); - } -} diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapAuthenticatorTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapAuthenticatorTest.java index 9b6814815c..9fa7aa2c14 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapAuthenticatorTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapAuthenticatorTest.java @@ -79,6 +79,7 @@ public class LdapAuthenticatorTest extends AbstractControllerTest { private String ip = "127.0.0.1"; private UserType userType = UserType.GENERAL_USER; + @Override @Before public void setUp() { ldapAuthenticator = new LdapAuthenticator(); diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapServiceTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapServiceTest.java index 8cd435f954..4cfdb0e50a 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapServiceTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/ldap/LdapServiceTest.java @@ -18,18 +18,23 @@ package org.apache.dolphinscheduler.api.security.impl.ldap; import org.apache.dolphinscheduler.api.ApiApplicationServer; +import org.apache.dolphinscheduler.common.enums.ProfileType; import org.apache.dolphinscheduler.common.enums.UserType; import org.junit.Assert; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; +@Ignore +@ActiveProfiles(ProfileType.H2) @RunWith(SpringRunner.class) @SpringBootTest(classes = ApiApplicationServer.class) @TestPropertySource( @@ -78,4 +83,4 @@ public class LdapServiceTest { String email2 = ldapService.ldapLogin("tesla", "error password"); Assert.assertNull(email2); } -} \ No newline at end of file +} diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/pwd/PasswordAuthenticatorTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/pwd/PasswordAuthenticatorTest.java index 2ccc802ecf..b58a4b59df 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/pwd/PasswordAuthenticatorTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/security/impl/pwd/PasswordAuthenticatorTest.java @@ -57,6 +57,7 @@ public class PasswordAuthenticatorTest extends AbstractControllerTest { private User mockUser; private Session mockSession; + @Override @Before public void setUp() { authenticator = new PasswordAuthenticator(); diff --git a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java index e0c41e3c6c..0fa0ceb0a6 100644 --- a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java +++ b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java @@ -1029,12 +1029,6 @@ public final class Constants { */ public static final int AUTHORIZE_READABLE_PERM = 4; - - /** - * plugin configurations - */ - public static final String PLUGIN_JAR_SUFFIX = ".jar"; - public static final int NORMAL_NODE_STATUS = 0; public static final int ABNORMAL_NODE_STATUS = 1; public static final int BUSY_NODE_STATUE = 2; @@ -1048,9 +1042,6 @@ public final class Constants { */ public static final String SYSTEM_LINE_SEPARATOR = System.getProperty("line.separator"); - - public static final String EXCEL_SUFFIX_XLS = ".xls"; - /** * datasource encryption salt */ @@ -1087,21 +1078,7 @@ public final class Constants { * docker & kubernetes */ public static final boolean DOCKER_MODE = !StringUtils.isEmpty(System.getenv("DOCKER")); - public static final boolean KUBERNETES_MODE = !StringUtils.isEmpty(System.getenv("KUBERNETES_SERVICE_HOST")) && !StringUtils.isEmpty(System.getenv("KUBERNETES_SERVICE_PORT")); - - /** - * task parameter keys - */ - public static final String TASK_PARAMS = "params"; - public static final String TASK_PARAMS_DATASOURCE = "datasource"; - public static final String TASK_PARAMS_DATASOURCE_NAME = "datasourceName"; - public static final String TASK_DEPENDENCE = "dependence"; - public static final String TASK_DEPENDENCE_DEPEND_TASK_LIST = "dependTaskList"; - public static final String TASK_DEPENDENCE_DEPEND_ITEM_LIST = "dependItemList"; - public static final String TASK_DEPENDENCE_PROJECT_ID = "projectId"; - public static final String TASK_DEPENDENCE_PROJECT_NAME = "projectName"; - public static final String TASK_DEPENDENCE_DEFINITION_ID = "definitionId"; - public static final String TASK_DEPENDENCE_DEFINITION_NAME = "definitionName"; + public static final Boolean KUBERNETES_MODE = !StringUtils.isEmpty(System.getenv("KUBERNETES_SERVICE_HOST")) && !StringUtils.isEmpty(System.getenv("KUBERNETES_SERVICE_PORT")); /** * dry run flag diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/CommonTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/CommonTest.java deleted file mode 100644 index 3752fe670c..0000000000 --- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/CommonTest.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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; - -import static org.junit.Assert.assertTrue; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; - -import org.junit.Test; - -/** - * CommonTest - */ -public class CommonTest { - - public static void setFinalStatic(Field field, Object newValue) throws NoSuchFieldException, IllegalAccessException { - field.setAccessible(true); - Field modifiersField = Field.class.getDeclaredField("modifiers"); - modifiersField.setAccessible(true); - modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); - field.set(null, newValue); - } - - @Test - public void testSetFinalStatic() throws Exception { - setFinalStatic(Constants.class.getDeclaredField("KUBERNETES_MODE"), true); - assertTrue(Constants.KUBERNETES_MODE); - } - -} diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/threadutils/ThreadPoolExecutorsTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/threadutils/ThreadPoolExecutorsTest.java index 9879154889..11c114c29e 100644 --- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/threadutils/ThreadPoolExecutorsTest.java +++ b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/threadutils/ThreadPoolExecutorsTest.java @@ -25,13 +25,10 @@ import org.slf4j.LoggerFactory; * Thread Pool Executor Test */ public class ThreadPoolExecutorsTest { - private static final Logger logger = LoggerFactory.getLogger(ThreadPoolExecutors.class); - @Test public void testThreadPoolExecutors() throws InterruptedException { - Thread2[] threadArr = new Thread2[10]; for (int i = 0; i < threadArr.length; i++) { @@ -43,14 +40,10 @@ public class ThreadPoolExecutorsTest { Thread.currentThread().join(40000l); } - - //test thread - class Thread2 extends Thread { + static class Thread2 extends Thread { @Override public void run() { logger.info("ThreadPoolExecutors instance's hashcode is: {} ",ThreadPoolExecutors.getInstance("a",2).hashCode()); } } - - } diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java index 59dfa2f73a..cf629ca631 100644 --- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java +++ b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/NetUtilsTest.java @@ -23,17 +23,19 @@ import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import org.apache.dolphinscheduler.common.CommonTest; import org.apache.dolphinscheduler.common.Constants; import java.net.InetAddress; +import org.junit.After; import org.junit.Test; +import org.powermock.reflect.Whitebox; -/** - * NetUtilsTest - */ public class NetUtilsTest { + @After + public void reset() { + Whitebox.setInternalState(Constants.class, "KUBERNETES_MODE", false); + } @Test public void testGetAddr() { @@ -43,31 +45,31 @@ public class NetUtilsTest { } @Test - public void testGetHost() throws Exception { + public void testGetHost() { InetAddress address = mock(InetAddress.class); when(address.getCanonicalHostName()).thenReturn("dolphinscheduler-worker-0.dolphinscheduler-worker-headless.default.svc.cluster.local"); when(address.getHostName()).thenReturn("dolphinscheduler-worker-0"); when(address.getHostAddress()).thenReturn("172.17.0.15"); assertEquals("172.17.0.15", NetUtils.getHost(address)); - CommonTest.setFinalStatic(Constants.class.getDeclaredField("KUBERNETES_MODE"), true); + Whitebox.setInternalState(Constants.class, "KUBERNETES_MODE", true); assertEquals("dolphinscheduler-worker-0.dolphinscheduler-worker-headless", NetUtils.getHost(address)); address = mock(InetAddress.class); when(address.getCanonicalHostName()).thenReturn("busybox-1.default-subdomain.my-namespace.svc.cluster-domain.example"); when(address.getHostName()).thenReturn("busybox-1"); - CommonTest.setFinalStatic(Constants.class.getDeclaredField("KUBERNETES_MODE"), true); + Whitebox.setInternalState(Constants.class, "KUBERNETES_MODE", true); assertEquals("busybox-1.default-subdomain", NetUtils.getHost(address)); address = mock(InetAddress.class); when(address.getCanonicalHostName()).thenReturn("dolphinscheduler.cluster-domain.example"); when(address.getHostName()).thenReturn("dolphinscheduler"); - CommonTest.setFinalStatic(Constants.class.getDeclaredField("KUBERNETES_MODE"), true); + Whitebox.setInternalState(Constants.class, "KUBERNETES_MODE", true); assertEquals("dolphinscheduler.cluster-domain.example", NetUtils.getHost(address)); address = mock(InetAddress.class); when(address.getCanonicalHostName()).thenReturn("dolphinscheduler-worker-0"); when(address.getHostName()).thenReturn("dolphinscheduler-worker-0"); - CommonTest.setFinalStatic(Constants.class.getDeclaredField("KUBERNETES_MODE"), true); + Whitebox.setInternalState(Constants.class, "KUBERNETES_MODE", true); assertEquals("dolphinscheduler-worker-0", NetUtils.getHost(address)); } diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java deleted file mode 100644 index ef0fe1e20f..0000000000 --- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/OSUtilsTest.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * 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.utils; - -import org.apache.commons.lang.SystemUtils; - -import java.io.IOException; -import java.util.List; - -import org.junit.Assert; -import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -public class OSUtilsTest { - private static final Logger logger = LoggerFactory.getLogger(OSUtilsTest.class); - - @Test - public void getUserList() { - List userList = OSUtils.getUserList(); - Assert.assertNotEquals("System user list should not be empty", userList.size(), 0); - logger.info("OS user list : {}", userList.toString()); - } - - @Test - public void testOSMetric() { - if (!SystemUtils.IS_OS_WINDOWS) { - double availablePhysicalMemorySize = OSUtils.availablePhysicalMemorySize(); - Assert.assertTrue(availablePhysicalMemorySize >= 0.0d); - double loadAverage = OSUtils.loadAverage(); - logger.info("loadAverage {}", loadAverage); - double memoryUsage = OSUtils.memoryUsage(); - Assert.assertTrue(memoryUsage >= 0.0d); - double cpuUsage = OSUtils.cpuUsage(); - Assert.assertTrue(cpuUsage >= 0.0d || cpuUsage == -1.0d); - } else { - // TODO window ut - } - } - - @Test - public void getGroup() { - try { - String group = OSUtils.getGroup(); - Assert.assertNotNull(group); - } catch (IOException e) { - Assert.fail("get group failed " + e.getMessage()); - } - } - - @Test - public void createUser() { - boolean result = OSUtils.createUser("test123"); - if (result) { - Assert.assertTrue("create user test123 success", true); - } else { - Assert.assertTrue("create user test123 fail", true); - } - } - - @Test - public void createUserIfAbsent() { - OSUtils.createUserIfAbsent("test123"); - Assert.assertTrue("create user test123 success", true); - } - - @Test - public void testGetSudoCmd() { - String cmd = "kill -9 1234"; - String sudoCmd = OSUtils.getSudoCmd("test123", cmd); - Assert.assertEquals("sudo -u test123 " + cmd, sudoCmd); - } - - @Test - public void exeCmd() { - if (SystemUtils.IS_OS_MAC || !SystemUtils.IS_OS_WINDOWS) { - try { - String result = OSUtils.exeCmd("echo helloWorld"); - Assert.assertEquals("helloWorld\n",result); - } catch (IOException e) { - Assert.fail("exeCmd " + e.getMessage()); - } - } - } - @Test - public void getProcessID() { - int processId = OSUtils.getProcessID(); - Assert.assertNotEquals(0, processId); - } - @Test - public void checkResource() { - boolean resource = OSUtils.checkResource(100,0); - Assert.assertTrue(resource); - resource = OSUtils.checkResource(0,Double.MAX_VALUE); - Assert.assertFalse(resource); - } - -} diff --git a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/placeholder/TimePlaceholderUtilsTest.java b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/placeholder/TimePlaceholderUtilsTest.java index 68f206d28f..59b61fd980 100644 --- a/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/placeholder/TimePlaceholderUtilsTest.java +++ b/dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/placeholder/TimePlaceholderUtilsTest.java @@ -20,15 +20,22 @@ package org.apache.dolphinscheduler.common.utils.placeholder; import org.apache.dolphinscheduler.common.utils.DateUtils; import java.util.Date; +import java.util.TimeZone; import org.junit.Assert; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class TimePlaceholderUtilsTest { private Date date; + @BeforeClass + public static void setup() { + TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai")); + } + @Before public void init() { date = DateUtils.parse("20170101010101", "yyyyMMddHHmmss"); @@ -72,4 +79,4 @@ public class TimePlaceholderUtilsTest { Assert.assertEquals("20170101", TimePlaceholderUtils.getPlaceHolderTime("yyyyMMdd", date)); } -} \ No newline at end of file +} diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/datasource/SpringConnectionFactory.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/datasource/SpringConnectionFactory.java index f91914a1c7..8221444027 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/datasource/SpringConnectionFactory.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/datasource/SpringConnectionFactory.java @@ -152,7 +152,7 @@ public class SpringConnectionFactory { .setType(EmbeddedDatabaseType.H2) .setScriptEncoding(Constants.UTF_8) .setName("dolphinscheduler;MODE=MySQL;DATABASE_TO_LOWER=TRUE;DB_CLOSE_DELAY=-1") - .addScript(PropertyUtils.getString("spring.datasource.sql.schema", "file:../sql/dolphinscheduler_h2.sql")) + .addScript(PropertyUtils.getString("spring.datasource.sql.schema", "classpath:sql/dolphinscheduler_h2.sql")) .build(); logger.info("Initialize H2 DataSource success"); } diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java index ec13a354e0..560d9a14c7 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDao.java @@ -214,7 +214,6 @@ public abstract class UpgradeDao extends AbstractBaseDao { if (StringUtils.isEmpty(rootDir)) { throw new RuntimeException("Environment variable user.dir not found"); } - //String mysqlSQLFilePath = rootDir + "/sql/create/release-1.0.0_schema/mysql/dolphinscheduler_ddl.sql"; String mysqlSQLFilePath = rootDir + initSqlPath + "dolphinscheduler_ddl.sql"; try { conn = dataSource.getConnection(); diff --git a/sql/create/release-1.0.0_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/create/release-1.0.0_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/create/release-1.0.0_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/create/release-1.0.0_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/create/release-1.0.0_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/create/release-1.0.0_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/create/release-1.0.0_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/create/release-1.0.0_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/create/release-1.2.0_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/dolphinscheduler_h2.sql b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql similarity index 100% rename from sql/dolphinscheduler_h2.sql rename to dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_h2.sql diff --git a/sql/dolphinscheduler_mysql.sql b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql similarity index 100% rename from sql/dolphinscheduler_mysql.sql rename to dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sql diff --git a/sql/dolphinscheduler_postgre.sql b/dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgre.sql similarity index 100% rename from sql/dolphinscheduler_postgre.sql rename to dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_postgre.sql diff --git a/sql/soft_version b/dolphinscheduler-dao/src/main/resources/sql/soft_version similarity index 100% rename from sql/soft_version rename to dolphinscheduler-dao/src/main/resources/sql/soft_version diff --git a/sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.1_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.0.2_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.1.0_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.2.0_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.0_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.2_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.3_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.5_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.6_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/1.3.7_schema/postgresql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql similarity index 100% rename from sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_ddl_post.sql diff --git a/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/mysql/dolphinscheduler_dml.sql diff --git a/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql similarity index 100% rename from sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl.sql diff --git a/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql similarity index 100% rename from sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_ddl_post.sql diff --git a/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_dml.sql b/dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_dml.sql similarity index 100% rename from sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_dml.sql rename to dolphinscheduler-dao/src/main/resources/sql/upgrade/2.0.0_schema/postgresql/dolphinscheduler_dml.sql diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/AlertDaoTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/AlertDaoTest.java index de6a3b03e8..abc56ca758 100644 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/AlertDaoTest.java +++ b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/AlertDaoTest.java @@ -23,15 +23,15 @@ import org.apache.dolphinscheduler.dao.entity.Alert; import java.util.List; import org.junit.Assert; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.springframework.transaction.annotation.Transactional; @Transactional public class AlertDaoTest { - @Before - public void setUp() { + @BeforeClass + public static void setUp() { System.setProperty("spring.profiles.active", "h2"); } @@ -60,9 +60,9 @@ public class AlertDaoTest { alertDao.sendServerStopedAlert(alertGroupId, host, serverType); alertDao.sendServerStopedAlert(alertGroupId, host, serverType); long count = alertDao.listWaitExecutionAlert() - .stream() - .filter(alert -> alert.getContent().contains(host)) - .count(); + .stream() + .filter(alert -> alert.getContent().contains(host)) + .count(); Assert.assertEquals(1L, count); } } diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java index 8f65147189..a2a9c151e7 100644 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java +++ b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/mapper/ConnectionFactoryTest.java @@ -17,22 +17,23 @@ package org.apache.dolphinscheduler.dao.mapper; import org.apache.dolphinscheduler.dao.datasource.ConnectionFactory; -import org.junit.Assert; -import org.junit.Test; import java.sql.Connection; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + public class ConnectionFactoryTest { + @BeforeClass + public static void setup() { + System.setProperty("spring.profiles.active", "h2"); + } - /** - * test connection - * @throws Exception if error throws Exception - */ @Test - public void testConnection()throws Exception{ - System.setProperty("spring.profiles.active", "h2"); + public void testConnection() throws Exception { Connection connection = ConnectionFactory.getInstance().getDataSource().getConnection(); Assert.assertTrue(connection != null); } -} \ No newline at end of file +} diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/ProcessDefinitionDaoTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/ProcessDefinitionDaoTest.java index f27a772c2d..e2078f7add 100644 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/ProcessDefinitionDaoTest.java +++ b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/ProcessDefinitionDaoTest.java @@ -24,15 +24,15 @@ import java.util.Map; import javax.sql.DataSource; -import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class ProcessDefinitionDaoTest { - DataSource dataSource; + static DataSource dataSource; final ProcessDefinitionDao processDefinitionDao = new ProcessDefinitionDao(); - @Before - public void seuUp() { + @BeforeClass + public static void seuUp() { System.setProperty("spring.profiles.active", "h2"); dataSource = getDataSource(); } diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDaoTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDaoTest.java index 17d5a35301..e7f92113ff 100644 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDaoTest.java +++ b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/UpgradeDaoTest.java @@ -16,14 +16,19 @@ */ package org.apache.dolphinscheduler.dao.upgrade; +import org.junit.BeforeClass; import org.junit.Test; public class UpgradeDaoTest { private PostgresqlUpgradeDao postgresqlUpgradeDao; + @BeforeClass + public static void setUpClass() { + System.setProperty("spring.profiles.active", "h2"); + } + @Test public void setUp() { - System.setProperty("spring.profiles.active", "h2"); postgresqlUpgradeDao = PostgresqlUpgradeDao.getInstance(); } diff --git a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/WorkerGroupDaoTest.java b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/WorkerGroupDaoTest.java index 7eed867248..44bdccf084 100644 --- a/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/WorkerGroupDaoTest.java +++ b/dolphinscheduler-dao/src/test/java/org/apache/dolphinscheduler/dao/upgrade/WorkerGroupDaoTest.java @@ -25,10 +25,22 @@ import java.util.Map; import javax.sql.DataSource; +import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; public class WorkerGroupDaoTest { - protected final DataSource dataSource = getDataSource(); + protected DataSource dataSource; + + @BeforeClass + public static void setupClass() { + System.setProperty("spring.profiles.active", "h2"); + } + + @Before + public void setup() { + dataSource = getDataSource(); + } @Test public void testQueryQueryAllOldWorkerGroup() throws Exception { diff --git a/dolphinscheduler-dist/pom.xml b/dolphinscheduler-dist/pom.xml index 1c8213275b..877665a942 100644 --- a/dolphinscheduler-dist/pom.xml +++ b/dolphinscheduler-dist/pom.xml @@ -328,7 +328,7 @@ - ${basedir}/../sql + ${basedir}/../dolphinscheduler-dao/src/main/resources/sql **/*.* @@ -336,7 +336,7 @@ - ${basedir}/../sql + ${basedir}/../dolphinscheduler-dao/src/main/resources/sql soft_version diff --git a/dolphinscheduler-dist/src/main/assembly/dolphinscheduler-bin.xml b/dolphinscheduler-dist/src/main/assembly/dolphinscheduler-bin.xml index c918aefa2a..11e0487d21 100644 --- a/dolphinscheduler-dist/src/main/assembly/dolphinscheduler-bin.xml +++ b/dolphinscheduler-dist/src/main/assembly/dolphinscheduler-bin.xml @@ -147,7 +147,7 @@ - ${basedir}/../sql + ${basedir}/../dolphinscheduler-dao/src/main/resources/sql **/* diff --git a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/WorkflowExecuteThreadTest.java b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/WorkflowExecuteThreadTest.java index aa8102ec4f..6e2dda06ef 100644 --- a/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/WorkflowExecuteThreadTest.java +++ b/dolphinscheduler-server/src/test/java/org/apache/dolphinscheduler/server/master/WorkflowExecuteThreadTest.java @@ -77,7 +77,7 @@ public class WorkflowExecuteThreadTest { private ProcessService processService; - private int processDefinitionId = 1; + private final int processDefinitionId = 1; private MasterConfig config; @@ -112,44 +112,9 @@ public class WorkflowExecuteThreadTest { Field dag = WorkflowExecuteThread.class.getDeclaredField("dag"); dag.setAccessible(true); dag.set(workflowExecuteThread, new DAG()); - PowerMockito.doNothing().when(workflowExecuteThread, "prepareProcess"); PowerMockito.doNothing().when(workflowExecuteThread, "endProcess"); } - /** - * without schedule - */ - @Test - public void testParallelWithOutSchedule() throws ParseException { - try { - Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionId)).thenReturn(zeroSchedulerList()); - Method method = WorkflowExecuteThread.class.getDeclaredMethod("executeComplementProcess"); - method.setAccessible(true); - method.invoke(workflowExecuteThread); - // one create save, and 1-30 for next save, and last day 20 no save - verify(processService, times(20)).saveProcessInstance(processInstance); - } catch (Exception e) { - e.printStackTrace(); - Assert.fail(); - } - } - - /** - * with schedule - */ - @Test - public void testParallelWithSchedule() { - try { - Mockito.when(processService.queryReleaseSchedulerListByProcessDefinitionCode(processDefinitionId)).thenReturn(oneSchedulerList()); - Method method = WorkflowExecuteThread.class.getDeclaredMethod("executeComplementProcess"); - method.setAccessible(true); - method.invoke(workflowExecuteThread); - // one create save, and 9(1 to 20 step 2) for next save, and last day 31 no save - verify(processService, times(20)).saveProcessInstance(processInstance); - } catch (Exception e) { - Assert.fail(); - } - } @Test public void testParseStartNodeName() throws ParseException { @@ -167,23 +132,6 @@ public class WorkflowExecuteThreadTest { } } - @Test - public void testRetryTaskIntervalOverTime() { - try { - TaskInstance taskInstance = new TaskInstance(); - taskInstance.setId(0); - taskInstance.setMaxRetryTimes(0); - taskInstance.setRetryInterval(0); - taskInstance.setState(ExecutionStatus.FAILURE); - Class masterExecThreadClass = WorkflowExecuteThread.class; - Method method = masterExecThreadClass.getDeclaredMethod("retryTaskIntervalOverTime", TaskInstance.class); - method.setAccessible(true); - Assert.assertTrue((Boolean) method.invoke(workflowExecuteThread, taskInstance)); - } catch (Exception e) { - Assert.fail(); - } - } - @Test public void testGetStartTaskInstanceList() { try { diff --git a/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/server/StandaloneServer.java b/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/server/StandaloneServer.java index 28f04dfb5c..50247b621d 100644 --- a/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/server/StandaloneServer.java +++ b/dolphinscheduler-standalone-server/src/main/java/org/apache/dolphinscheduler/server/StandaloneServer.java @@ -38,7 +38,7 @@ public class StandaloneServer { Thread.currentThread().setName("Standalone-Server"); System.setProperty("spring.profiles.active", "api,h2"); - System.setProperty("spring.datasource.sql.schema", "file:./sql/dolphinscheduler_h2.sql"); + System.setProperty("spring.datasource.sql.schema", "classpath:sql/dolphinscheduler_h2.sql"); startRegistry(); diff --git a/pom.xml b/pom.xml index a475181ad4..bfc5f6cee4 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ ~ limitations under the License. --> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.apache.dolphinscheduler dolphinscheduler @@ -129,6 +129,7 @@ 1.5.1 0.10.9 1.0.1 + false @@ -884,268 +885,6 @@ ${project.build.directory}/jacoco.exec - - - **/plugin/registry/zookeeper/ZookeeperRegistryTest.java - - **/api/controller/ProjectControllerTest.java - **/api/controller/QueueControllerTest.java - **/api/configuration/TrafficConfigurationTest.java - **/api/controller/ProcessDefinitionControllerTest.java - **/api/controller/TenantControllerTest.java - **/api/controller/SchedulerControllerTest.java - **/api/dto/resources/filter/ResourceFilterTest.java - **/api/dto/resources/visitor/ResourceTreeVisitorTest.java - **/api/enums/testGetEnum.java - **/api/enums/StatusTest.java - **/api/exceptions/ApiExceptionHandlerTest.java - **/api/exceptions/ServiceExceptionTest.java - **/api/interceptor/LocaleChangeInterceptorTest.java - **/api/interceptor/LoginHandlerInterceptorTest.java - **/api/interceptor/RateLimitInterceptorTest.java - **/api/security/impl/pwd/PasswordAuthenticatorTest.java - **/api/security/impl/ldap/LdapAuthenticatorTest.java - **/api/security/SecurityConfigLDAPTest.java - **/api/security/SecurityConfigPasswordTest.java - **/api/service/AccessTokenServiceTest.java - **/api/service/AlertGroupServiceTest.java - **/api/service/BaseDAGServiceTest.java - **/api/service/BaseServiceTest.java - **/api/service/DataAnalysisServiceTest.java - **/api/service/AlertPluginInstanceServiceTest.java - **/api/service/DataSourceServiceTest.java - **/api/service/ExecutorService2Test.java - **/api/service/ExecutorServiceTest.java - **/api/service/LoggerServiceTest.java - **/api/service/MonitorServiceTest.java - **/api/service/ProcessDefinitionServiceTest.java - **/api/service/ProcessTaskRelationServiceImplTest.java - **/api/service/TaskDefinitionServiceImplTest.java - **/api/service/ProcessInstanceServiceTest.java - **/api/service/ProjectServiceTest.java - **/api/service/QueueServiceTest.java - **/api/service/ResourcesServiceTest.java - **/api/service/SchedulerServiceTest.java - **/api/service/SessionServiceTest.java - **/api/service/TaskInstanceServiceTest.java - **/api/service/TenantServiceTest.java - **/api/service/UdfFuncServiceTest.java - **/api/service/UiPluginServiceTest.java - **/api/service/UserAlertGroupServiceTest.java - **/api/service/UsersServiceTest.java - **/api/service/WorkerGroupServiceTest.java - **/api/service/WorkFlowLineageServiceTest.java - **/api/service/EnvironmentServiceTest.java - **/api/service/EnvironmentWorkerGroupRelationServiceTest.java - **/api/controller/ProcessDefinitionControllerTest.java - **/api/controller/TaskInstanceControllerTest.java - **/api/controller/WorkFlowLineageControllerTest.java - **/api/controller/EnvironmentControllerTest.java - **/api/utils/exportprocess/DataSourceParamTest.java - **/api/utils/exportprocess/DependentParamTest.java - **/api/utils/CheckUtilsTest.java - **/api/utils/FileUtilsTest.java - **/api/utils/CheckUtilsTest.java - **/api/utils/CheckUtilsTest.java - **/api/utils/ResultTest.java - **/common/graph/DAGTest.java - **/common/os/OshiTest.java - **/common/shell/ShellExecutorTest.java - **/common/task/DataxParametersTest.java - **/common/task/EntityTestUtils.java - **/common/task/FlinkParametersTest.java - **/common/task/HttpParametersTest.java - **/common/task/SparkParametersTest.java - **/common/task/SqlParametersTest.java - **/common/task/SqoopParameterEntityTest.java - **/common/threadutils/ThreadPoolExecutorsTest.java - **/common/threadutils/ThreadUtilsTest.java - **/common/utils/CollectionUtilsTest.java - **/common/utils/CommonUtilsTest.java - **/common/utils/DateUtilsTest.java - **/common/utils/DependentUtilsTest.java - **/common/utils/EncryptionUtilsTest.java - **/common/utils/FileUtilsTest.java - **/common/utils/JSONUtilsTest.java - **/common/utils/LoggerUtilsTest.java - **/common/utils/NetUtilsTest.java - **/common/utils/ParameterUtilsTest.java - **/common/utils/TimePlaceholderUtilsTest.java - **/common/utils/PreconditionsTest.java - **/common/utils/PropertyUtilsTest.java - **/common/utils/SchemaUtilsTest.java - **/common/utils/ScriptRunnerTest.java - **/common/utils/SensitiveLogUtilsTest.java - **/common/utils/StringTest.java - **/common/utils/StringUtilsTest.java - **/common/utils/TaskParametersUtilsTest.java - **/common/utils/VarPoolUtilsTest.java - **/common/utils/HadoopUtilsTest.java - **/common/utils/HttpUtilsTest.java - **/common/utils/KerberosHttpClientTest.java - **/common/utils/HiveConfUtilsTest.java - **/common/ConstantsTest.java - **/common/utils/HadoopUtils.java - **/common/utils/RetryerUtilsTest.java - **/common/datasource/clickhouse/ClickHouseDatasourceProcessorTest.java - **/common/datasource/db2/Db2DatasourceProcessorTest.java - **/common/datasource/hive/HiveDatasourceProcessorTest.java - **/common/datasource/mysql/MysqlDatasourceProcessorTest.java - **/common/datasource/oracle/OracleDatasourceProcessorTest.java - **/common/datasource/postgresql/PostgreSqlDatasourceProcessorTest.java - **/common/datasource/presto/PrestoDatasourceProcessorTest.java - **/common/datasource/spark/SparkDatasourceProcessorTest.java - **/common/datasource/sqlserver/SqlServerDatasourceProcessorTest.java - **/common/datasource/DatasourceUtilTest.java - **/common/enums/ExecutionStatusTest - **/dao/mapper/AccessTokenMapperTest.java - **/dao/mapper/AlertGroupMapperTest.java - **/dao/mapper/CommandMapperTest.java - **/dao/mapper/ConnectionFactoryTest.java - **/dao/mapper/DataSourceMapperTest.java - **/dao/datasource/MySQLDataSourceTest.java - **/dao/entity/TaskInstanceTest.java - **/dao/entity/UdfFuncTest.java - **/remote/command/alert/AlertSendRequestCommandTest.java - **/remote/command/alert/AlertSendResponseCommandTest.java - **/remote/command/future/ResponseFutureTest.java - **/remote/command/log/RemoveTaskLogRequestCommandTest.java - **/remote/command/log/RemoveTaskLogResponseCommandTest.java - **/remote/command/log/GetLogBytesRequestCommandTest.java - **/remote/command/log/GetLogBytesResponseCommandTest.java - **/remote/command/log/ViewLogRequestCommandTest.java - **/remote/utils/HostTest.java - **/remote/utils/NettyUtilTest.java - **/remote/NettyRemotingClientTest.java - **/rpc/RpcTest.java - **/server/log/LoggerServerTest.java - **/server/entity/SQLTaskExecutionContextTest.java - **/server/log/MasterLogFilterTest.java - **/server/log/SensitiveDataConverterTest.java - **/server/log/LoggerRequestProcessorTest.java - - **/server/log/TaskLogFilterTest.java - **/server/log/WorkerLogFilterTest.java - **/server/master/cache/impl/TaskInstanceCacheManagerImplTest.java - **/server/master/config/MasterConfigTest.java - **/server/master/consumer/TaskPriorityQueueConsumerTest.java - **/server/master/runner/MasterTaskExecThreadTest.java - - **/server/master/dispatch/host/assign/LowerWeightRoundRobinTest.java - **/server/master/dispatch/host/assign/RandomSelectorTest.java - **/server/master/dispatch/host/assign/RoundRobinSelectorTest.java - **/server/master/dispatch/host/assign/HostWorkerTest.java - **/server/master/registry/MasterRegistryClientTest.java - **/server/master/registry/ServerNodeManagerTest.java - **/server/master/dispatch/host/RefreshResourceTaskTest.java - **/server/master/dispatch/host/assign/RoundRobinHostManagerTest.java - **/server/master/MasterCommandTest.java - **/server/master/DependentTaskTest.java - **/server/master/ConditionsTaskTest.java - **/server/master/SwitchTaskTest.java - **/server/master/MasterExecThreadTest.java - **/server/master/ParamsTest.java - **/server/master/SubProcessTaskTest.java - **/server/master/processor/TaskAckProcessorTest.java - **/server/master/processor/TaskKillResponseProcessorTest.java - **/server/master/processor/queue/TaskResponseServiceTest.java - **/server/master/zk/ZKMasterClientTest.java - **/server/registry/ZookeeperRegistryCenterTest.java - **/server/utils/DataxUtilsTest.java - **/server/utils/ExecutionContextTestUtils.java - **/server/utils/FlinkArgsUtilsTest.java - **/server/utils/LogUtilsTest.java - **/server/utils/MapReduceArgsUtilsTest.java - **/server/utils/ParamUtilsTest.java - **/server/utils/ProcessUtilsTest.java - **/server/utils/SparkArgsUtilsTest.java - **/server/worker/processor/TaskCallbackServiceTest.java - **/server/worker/processor/TaskExecuteProcessorTest.java - **/server/worker/registry/WorkerRegistryTest.java - **/server/worker/shell/ShellCommandExecutorTest.java - **/server/worker/sql/SqlExecutorTest.java - **/server/worker/task/spark/SparkTaskTest.java - **/server/worker/task/spark/SparkTaskTest.java - **/server/worker/task/datax/DataxTaskTest.java - - **/server/worker/task/sqoop/SqoopTaskTest.java - **/server/worker/task/processdure/ProcedureTaskTest.java - **/server/worker/task/shell/ShellTaskTest.java - **/server/worker/task/TaskManagerTest.java - **/server/worker/task/PythonCommandExecutorTest.java - **/server/worker/task/TaskParamsTest.java - **/server/worker/task/ShellTaskReturnTest.java - **/server/worker/task/sql/SqlTaskTest.java - **/server/worker/runner/TaskExecuteThreadTest.java - **/server/worker/runner/WorkerManagerThreadTest.java - **/server/master/cache/impl/ProcessInstanceExecCacheManagerImplTest.java - **/service/quartz/cron/CronUtilsTest.java - **/service/process/ProcessServiceTest.java - **/service/registry/RegistryClientTest.java - **/service/registry/RegistryPluginTest.java - **/service/queue/TaskUpdateQueueTest.java - **/service/queue/PeerTaskInstancePriorityQueueTest.java - **/service/log/LogClientServiceTest.java - **/service/alert/AlertClientServiceTest.java - **/service/alert/ProcessAlertManagerTest.java - **/dao/mapper/DataSourceUserMapperTest.java - - **/dao/mapper/ProcessDefinitionMapperTest.java - **/dao/mapper/ProcessInstanceMapMapperTest.java - **/dao/mapper/ProcessInstanceMapperTest.java - **/dao/mapper/ProjectMapperTest.java - **/dao/mapper/ProjectUserMapperTest.java - **/dao/mapper/QueueMapperTest.java - **/dao/mapper/ResourceUserMapperTest.java - **/dao/mapper/ScheduleMapperTest.java - **/dao/mapper/SessionMapperTest.java - **/dao/mapper/TaskInstanceMapperTest.java - **/dao/mapper/TenantMapperTest.java - **/dao/mapper/UdfFuncMapperTest.java - **/dao/mapper/UDFUserMapperTest.java - **/dao/mapper/UserMapperTest.java - **/dao/mapper/AlertPluginInstanceMapperTest.java - **/dao/mapper/PluginDefineTest.java - **/dao/utils/DagHelperTest.java - **/dao/AlertDaoTest.java - **/dao/datasource/OracleDataSourceTest.java - **/dao/datasource/HiveDataSourceTest.java - **/dao/datasource/BaseDataSourceTest.java - **/dao/upgrade/ProcessDefinitionDaoTest.java - **/dao/upgrade/WokrerGrouopDaoTest.java - **/dao/upgrade/UpgradeDaoTest.java - **/plugin/alert/email/EmailAlertChannelFactoryTest.java - **/plugin/alert/email/EmailAlertChannelTest.java - **/plugin/alert/email/ExcelUtilsTest.java - **/plugin/alert/email/template/DefaultHTMLTemplateTest.java - **/plugin/alert/dingtalk/DingTalkSenderTest.java - **/plugin/alert/dingtalk/DingTalkAlertChannelFactoryTest.java - **/plugin/alert/wechat/WeChatSenderTest.java - **/plugin/alert/wechat/WeChatAlertChannelFactoryTest.java - **/plugin/alert/script/ProcessUtilsTest.java - **/plugin/alert/script/ScriptAlertChannelFactoryTest.java - **/plugin/alert/script/ScriptSenderTest.java - **/plugin/alert/http/HttpAlertChannelFactoryTest.java - **/plugin/alert/http/HttpAlertChannelTest.java - **/plugin/alert/feishu/FeiShuAlertChannelFactoryTest.java - **/plugin/alert/feishu/FeiShuSenderTest.java - **/plugin/alert/http/HttpAlertPluginTest.java - **/plugin/alert/http/HttpSenderTest.java - **/plugin/alert/slack/SlackAlertChannelFactoryTest.java - **/plugin/alert/slack/SlackAlertPluginTest.java - **/plugin/alert/slack/SlackSenderTest.java - **/spi/params/PluginParamsTransferTest.java - **/spi/plugin/DolphinSchedulerPluginLoaderTest.java - **/alert/plugin/EmailAlertPluginTest.java - **/alert/plugin/AlertPluginManagerTest.java - **/alert/plugin/DolphinPluginLoaderTest.java - **/alert/utils/FuncUtilsTest.java - **/alert/processor/AlertRequestProcessorTest.java - **/alert/runner/AlertSenderTest.java - **/alert/AlertServerTest.java - **/plugin/task/pigeon/PigeonTaskTest.java - - @@ -1155,6 +894,7 @@ jacoco-maven-plugin ${jacoco.version} + ${jacoco.skip} ${project.build.directory}/jacoco.exec diff --git a/script/dolphinscheduler-daemon.sh b/script/dolphinscheduler-daemon.sh index 4de812b979..91383ff679 100755 --- a/script/dolphinscheduler-daemon.sh +++ b/script/dolphinscheduler-daemon.sh @@ -45,6 +45,7 @@ export HOSTNAME=`hostname` export DOLPHINSCHEDULER_PID_DIR=$DOLPHINSCHEDULER_HOME/pid export DOLPHINSCHEDULER_LOG_DIR=$DOLPHINSCHEDULER_HOME/logs export DOLPHINSCHEDULER_CONF_DIR=$DOLPHINSCHEDULER_HOME/conf +export DOLPHINSCHEDULER_SQL_DIR=$DOLPHINSCHEDULER_HOME/sql export DOLPHINSCHEDULER_LIB_JARS=$DOLPHINSCHEDULER_HOME/lib/* export STOP_TIMEOUT=5 @@ -100,7 +101,7 @@ case $startStop in if [ "$DOCKER" = "true" ]; then echo start $command in docker export DOLPHINSCHEDULER_OPTS="$DOLPHINSCHEDULER_OPTS -XX:-UseContainerSupport" - exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath $DOLPHINSCHEDULER_CONF_DIR:$DOLPHINSCHEDULER_LIB_JARS $CLASS" + exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath $DOLPHINSCHEDULER_SQL_DIR:$DOLPHINSCHEDULER_CONF_DIR:$DOLPHINSCHEDULER_LIB_JARS $CLASS" $JAVA_HOME/bin/java $exec_command else [ -w "$DOLPHINSCHEDULER_PID_DIR" ] || mkdir -p "$DOLPHINSCHEDULER_PID_DIR" @@ -113,7 +114,7 @@ case $startStop in fi echo starting $command, logging to $log - exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath $DOLPHINSCHEDULER_CONF_DIR:$DOLPHINSCHEDULER_LIB_JARS $CLASS" + exec_command="$LOG_FILE $DOLPHINSCHEDULER_OPTS -classpath $DOLPHINSCHEDULER_SQL_DIR:$DOLPHINSCHEDULER_CONF_DIR:$DOLPHINSCHEDULER_LIB_JARS $CLASS" echo "nohup $JAVA_HOME/bin/java $exec_command > $log 2>&1 &" nohup $JAVA_HOME/bin/java $exec_command > $log 2>&1 & echo $! > $pid