This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin5 in repository https://gitbox.apache.org/repos/asf/kylin.git
commit 7f648977f2eaf42f7bccc1a499f0b9e7e613ad33 Author: Zhiting Guo <zhiting....@kyligence.io> AuthorDate: Tue Jul 18 18:35:25 2023 +0800 KYLIN-5639 Refine kylin-it dependency --- pom.xml | 11 ++ src/common-server/pom.xml | 4 - src/common-service/pom.xml | 4 + src/core-common/pom.xml | 9 - src/core-job/pom.xml | 5 - src/core-storage/pom.xml | 12 +- src/job-service/pom.xml | 6 - src/kylin-it/pom.xml | 44 +---- .../org/apache/kylin/newten/TimeZoneQueryTest.java | 2 +- .../routing/TableIndexAnswerSelectStarTest.java | 59 ++----- .../apache/kylin/server/NQueryControllerTest.java | 190 --------------------- src/{kylin-it => kylin-server-it}/pom.xml | 73 ++------ .../org/apache/kylin/event/HAMetadataTest.java | 0 .../apache/kylin/event/ITStorageCleanerTest.java | 0 .../org/apache/kylin/event/ModelSemanticTest.java | 0 .../org/apache/kylin/event/SchemaChangeTest.java | 0 .../kylin/rest/broadcaster/BroadcasterTest.java | 2 +- .../rest/controller/NBuildAndQueryMetricsTest.java | 0 .../rest/controller/NModelControllerTest.java | 0 .../rest/controller/NProjectControllerTest.java | 0 .../rest/controller/NQueryControllerTest.java | 5 +- .../kylin/rest/controller/NUserControllerTest.java | 0 .../server/AbstractMVCIntegrationTestCase.java | 0 .../org/apache/kylin/server/IntegrationConfig.java | 0 .../NModelControllerWithRealServiceTest.java | 0 .../src/test/resources/query/sql_pushdown.sql | 30 ++++ .../springframework/conf/applicationContext.xml | 0 .../springframework/conf/kylinSecurity.xml | 0 src/metadata-server/pom.xml | 6 - src/modeling-service/pom.xml | 6 - .../kylin/rest/service/IndexPlanService.java | 4 +- src/query-server/pom.xml | 6 - src/query-service/pom.xml | 16 +- .../kylin/rest/service/DashboardService.java | 2 +- .../apache/kylin/rest/service/QueryService.java | 2 +- .../org/apache/kylin/rest/util/QueryUtils.java | 1 + .../apache/kylin/query}/util/PrepareSQLUtils.java | 2 +- .../kylin/query/util/PrepareSQLUtilsTest.java | 98 +++++++++++ src/second-storage/clickhouse-it/pom.xml | 17 ++ src/server/pom.xml | 11 +- src/spark-project/engine-build-sdk/pom.xml | 10 -- .../engine/spark/application/SparkApplication.java | 5 +- src/spark-project/source-jdbc/pom.xml | 4 - .../kylin/query/runtime/plan/TableScanPlan.scala | 6 +- src/spark-project/spark-common/pom.xml | 5 - src/streaming-service/pom.xml | 19 --- src/tool/pom.xml | 10 -- .../org/apache/kylin/helper/HelperConstants.java | 0 .../apache/kylin/helper/MetadataToolHelper.java | 0 .../org/apache/kylin/helper/RoutineToolHelper.java | 0 .../kylin/helper/UpdateUserAclToolHelper.java | 0 .../org/apache/kylin/tool/HDFSMetadataTool.java | 0 .../apache/kylin/tool/constant/DiagTypeEnum.java | 0 .../org/apache/kylin/tool/constant/StageEnum.java | 0 .../org/apache/kylin/tool/daemon/CheckResult.java | 0 .../apache/kylin/tool/daemon/CheckStateEnum.java | 0 .../apache/kylin/tool/daemon/HealthChecker.java | 0 .../kylin/tool/daemon/KapGuardianHATask.java | 0 .../kylin/tool/daemon/ServiceOpLevelEnum.java | 0 .../java/org/apache/kylin/tool/daemon/Worker.java | 0 .../tool/daemon/checker/AbstractHealthChecker.java | 0 .../tool/daemon/checker/FullGCDurationChecker.java | 0 .../tool/daemon/checker/KEProcessChecker.java | 0 .../kylin/tool/daemon/checker/KEStatusChecker.java | 0 .../kylin/tool/garbage/ExecutableCleaner.java | 0 .../apache/kylin/tool/garbage/GarbageCleaner.java | 0 .../apache/kylin/tool/garbage/IndexCleaner.java | 0 .../apache/kylin/tool/garbage/MetadataCleaner.java | 0 .../apache/kylin/tool/garbage/SnapshotCleaner.java | 0 .../kylin/tool/garbage/SourceUsageCleaner.java | 0 .../apache/kylin/tool/garbage/StorageCleaner.java | 0 .../tool/kerberos/DelegationTokenManager.java | 0 .../kylin/tool/kerberos/KerberosLoginUtil.java | 21 +-- .../java/org/apache/kylin/tool/util/LdapUtils.java | 0 .../util/ProjectTemporaryTableCleanerHelper.java | 0 .../java/org/apache/kylin/tool/util/ToolUtil.java | 0 .../ProjectTemporaryTableCleanerHelperTest.java | 0 .../org/apache/kylin/tool/util/ToolUtilTest.java | 0 78 files changed, 238 insertions(+), 469 deletions(-) diff --git a/pom.xml b/pom.xml index a53b5cf2a1..3f0f3922f2 100644 --- a/pom.xml +++ b/pom.xml @@ -406,6 +406,7 @@ <module>src/job-service</module> <module>src/streaming-service</module> <module>src/kylin-it</module> + <module>src/kylin-server-it</module> <!-- controller --> <module>src/common-server</module> @@ -763,6 +764,12 @@ <version>${project.version}</version> <type>test-jar</type> </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-server-it</artifactId> + <version>${project.version}</version> + <type>test-jar</type> + </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-common</artifactId> @@ -1327,6 +1334,10 @@ </exclusion> <exclusion> <groupId>com.twitter</groupId> + <artifactId>parquet-hadoop-bundle</artifactId> + </exclusion> + <exclusion> + <groupId>org.apache.parquet</groupId> <artifactId>parquet-hadoop-bundle</artifactId> </exclusion> <exclusion> diff --git a/src/common-server/pom.xml b/src/common-server/pom.xml index b3dc4ed315..5f80b3ea9c 100644 --- a/src/common-server/pom.xml +++ b/src/common-server/pom.xml @@ -42,10 +42,6 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-metadata</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-datasource-service</artifactId> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-data-loading-service</artifactId> diff --git a/src/common-service/pom.xml b/src/common-service/pom.xml index 219eaa1c87..017809b732 100644 --- a/src/common-service/pom.xml +++ b/src/common-service/pom.xml @@ -35,6 +35,10 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-streaming</artifactId> </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-tool</artifactId> + </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> diff --git a/src/core-common/pom.xml b/src/core-common/pom.xml index dc79cdb746..480d4dda89 100644 --- a/src/core-common/pom.xml +++ b/src/core-common/pom.xml @@ -76,10 +76,6 @@ <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-1.2-api</artifactId> </dependency> - <dependency> - <groupId>org.apache.logging.log4j</groupId> - <artifactId>log4j-slf4j-impl</artifactId> - </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> @@ -175,11 +171,6 @@ </exclusion> </exclusions> </dependency> - <dependency> - <groupId>org.powermock</groupId> - <artifactId>powermock-module-junit4</artifactId> - <scope>test</scope> - </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito2</artifactId> diff --git a/src/core-job/pom.xml b/src/core-job/pom.xml index 7cb9a8615e..29f77bd4cf 100644 --- a/src/core-job/pom.xml +++ b/src/core-job/pom.xml @@ -72,11 +72,6 @@ <type>test-jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-external-curator-test</artifactId> - <scope>test</scope> - </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> diff --git a/src/core-storage/pom.xml b/src/core-storage/pom.xml index 78be4d11da..214dc9e643 100644 --- a/src/core-storage/pom.xml +++ b/src/core-storage/pom.xml @@ -39,14 +39,22 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-metadata</artifactId> </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-core-common</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <scope>test</scope> </dependency> <dependency> - <groupId>org.junit.vintage</groupId> - <artifactId>junit-vintage-engine</artifactId> + <groupId>junit</groupId> + <artifactId>junit</artifactId> <scope>test</scope> </dependency> </dependencies> diff --git a/src/job-service/pom.xml b/src/job-service/pom.xml index d2b30a8418..e1b81cadc1 100644 --- a/src/job-service/pom.xml +++ b/src/job-service/pom.xml @@ -24,7 +24,6 @@ </parent> <modelVersion>4.0.0</modelVersion> <name>Kylin - Job Service</name> - <groupId>org.apache.kylin</groupId> <artifactId>kylin-job-service</artifactId> <properties> @@ -39,11 +38,6 @@ </dependency> <!-- test --> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-core-metadata</artifactId> - <type>test-jar</type> - </dependency> <dependency> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> diff --git a/src/kylin-it/pom.xml b/src/kylin-it/pom.xml index 2ed10dc0ff..355e2180ab 100644 --- a/src/kylin-it/pom.xml +++ b/src/kylin-it/pom.xml @@ -48,38 +48,18 @@ <artifactId>commons-io</artifactId> <scope>compile</scope> </dependency> - <!--yinglong--> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-query-server</artifactId> - <exclusions> - <exclusion> - <artifactId>spring-boot-starter-validation</artifactId> - <groupId>org.springframework.boot</groupId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-metadata-server</artifactId> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-common-server</artifactId> - </dependency> + <!--KAP--> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-metadata</artifactId> + <type>test-jar</type> + <scope>test</scope> </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-query</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-sparder</artifactId> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-engine-spark</artifactId> @@ -92,10 +72,6 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-storage</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-source-hive</artifactId> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-streaming</artifactId> @@ -230,20 +206,14 @@ </dependency> <dependency> <groupId>org.apache.kylin</groupId> - <artifactId>kylin-core-storage</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-sparder</artifactId> + <artifactId>kylin-streaming</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-streaming</artifactId> - <type>test-jar</type> + <groupId>org.apache.parquet</groupId> + <artifactId>parquet-hadoop-bundle</artifactId> + <version>${parquet.version}</version> <scope>test</scope> </dependency> <dependency> diff --git a/src/kylin-it/src/test/java/org/apache/kylin/newten/TimeZoneQueryTest.java b/src/kylin-it/src/test/java/org/apache/kylin/newten/TimeZoneQueryTest.java index 26eca957d8..3a867b4ace 100644 --- a/src/kylin-it/src/test/java/org/apache/kylin/newten/TimeZoneQueryTest.java +++ b/src/kylin-it/src/test/java/org/apache/kylin/newten/TimeZoneQueryTest.java @@ -44,7 +44,7 @@ import org.apache.kylin.metadata.cube.model.NDataflowManager; import org.apache.kylin.metadata.model.SegmentRange; import org.apache.kylin.query.engine.PrepareSqlStateParam; import org.apache.kylin.query.pushdown.SparkSqlClient; -import org.apache.kylin.rest.util.PrepareSQLUtils; +import org.apache.kylin.query.util.PrepareSQLUtils; import org.apache.kylin.util.ExecAndComp; import org.apache.spark.SparkConf; import org.apache.spark.sql.Row; diff --git a/src/kylin-it/src/test/java/org/apache/kylin/query/routing/TableIndexAnswerSelectStarTest.java b/src/kylin-it/src/test/java/org/apache/kylin/query/routing/TableIndexAnswerSelectStarTest.java index cf46cf7eb0..c228f87579 100644 --- a/src/kylin-it/src/test/java/org/apache/kylin/query/routing/TableIndexAnswerSelectStarTest.java +++ b/src/kylin-it/src/test/java/org/apache/kylin/query/routing/TableIndexAnswerSelectStarTest.java @@ -19,6 +19,7 @@ package org.apache.kylin.query.routing; import java.lang.reflect.Field; +import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -29,13 +30,16 @@ import org.apache.kylin.common.util.RandomUtil; import org.apache.kylin.common.util.TempMetadataBuilder; import org.apache.kylin.common.util.Unsafe; import org.apache.kylin.engine.spark.NLocalWithSparkSessionTest; -import org.apache.kylin.job.engine.JobEngineConfig; -import org.apache.kylin.job.impl.threadpool.NDefaultScheduler; +import org.apache.kylin.guava30.shaded.common.collect.Lists; +import org.apache.kylin.guava30.shaded.common.collect.Sets; import org.apache.kylin.metadata.cube.cuboid.NLayoutCandidate; +import org.apache.kylin.metadata.cube.model.IndexPlan; +import org.apache.kylin.metadata.cube.model.LayoutEntity; import org.apache.kylin.metadata.cube.model.NDataLayout; import org.apache.kylin.metadata.cube.model.NDataflow; import org.apache.kylin.metadata.cube.model.NDataflowManager; import org.apache.kylin.metadata.cube.model.NDataflowUpdate; +import org.apache.kylin.metadata.cube.model.NIndexPlanManager; import org.apache.kylin.metadata.model.ComputedColumnDesc; import org.apache.kylin.metadata.model.NDataModel; import org.apache.kylin.metadata.model.NDataModelManager; @@ -43,12 +47,6 @@ import org.apache.kylin.metadata.model.TblColRef; import org.apache.kylin.metadata.realization.RealizationStatusEnum; import org.apache.kylin.query.engine.SchemaMetaData; import org.apache.kylin.query.relnode.OLAPContext; -import org.apache.kylin.rest.constant.Constant; -import org.apache.kylin.rest.request.CreateBaseIndexRequest; -import org.apache.kylin.rest.service.IndexPlanService; -import org.apache.kylin.rest.service.ModelService; -import org.apache.kylin.rest.util.AclEvaluate; -import org.apache.kylin.rest.util.AclUtil; import org.apache.kylin.util.OlapContextUtil; import org.apache.spark.SparkConf; import org.apache.spark.sql.SparderEnv; @@ -59,27 +57,9 @@ import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.springframework.security.authentication.TestingAuthenticationToken; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.test.util.ReflectionTestUtils; public class TableIndexAnswerSelectStarTest extends NLocalWithSparkSessionTest { - @InjectMocks - private final IndexPlanService indexPlanService = Mockito.spy(new IndexPlanService()); - - @Mock - private AclEvaluate aclEvaluate = Mockito.spy(AclEvaluate.class); - - @Mock - private AclUtil aclUtil = Mockito.spy(AclUtil.class); - - @InjectMocks - private final ModelService modelService = Mockito.spy(new ModelService()); - @BeforeClass public static void initSpark() { if (Shell.MAC) @@ -108,21 +88,10 @@ public class TableIndexAnswerSelectStarTest extends NLocalWithSparkSessionTest { public void setup() throws Exception { overwriteSystemProp("kylin.job.scheduler.poll-interval-second", "1"); this.createTestMetadata("src/test/resources/ut_meta/tableindex_answer_selectstart"); - ReflectionTestUtils.setField(aclEvaluate, "aclUtil", aclUtil); - ReflectionTestUtils.setField(indexPlanService, "aclEvaluate", aclEvaluate); - ReflectionTestUtils.setField(modelService, "aclEvaluate", aclEvaluate); - TestingAuthenticationToken auth = new TestingAuthenticationToken("ADMIN", "ADMIN", Constant.ROLE_ADMIN); - SecurityContextHolder.getContext().setAuthentication(auth); - NDefaultScheduler scheduler = NDefaultScheduler.getInstance(getProject()); - scheduler.init(new JobEngineConfig(KylinConfig.getInstanceFromEnv())); - if (!scheduler.hasStarted()) { - throw new RuntimeException("scheduler has not been started"); - } } @After public void after() throws Exception { - NDefaultScheduler.destroyInstance(); cleanupTestMetadata(); } @@ -186,10 +155,16 @@ public class TableIndexAnswerSelectStarTest extends NLocalWithSparkSessionTest { copyForWrite.getAllNamedColumns().add(newCol); }); - CreateBaseIndexRequest request = new CreateBaseIndexRequest(); - request.setProject(getProject()); - request.setModelId(modelId); - indexPlanService.updateBaseIndex(getProject(), request, false, false, false); + NIndexPlanManager indexPlanManager = NIndexPlanManager.getInstance(KylinConfig.getInstanceFromEnv(), getProject()); + IndexPlan indexPlan = indexPlanManager.getIndexPlan(modelId); + Long oldBaseAggLayout = indexPlan.getBaseAggLayoutId(); + indexPlanManager.updateIndexPlan(indexPlan.getUuid(), copyForWrite -> copyForWrite + .markWhiteIndexToBeDelete(indexPlan.getUuid(), Sets.newHashSet(oldBaseAggLayout), new HashMap<>())); + NDataModel model = modelManager.getDataModelDesc(modelId); + LayoutEntity newBaseAggLayout = indexPlan.createBaseAggIndex(model); + indexPlanManager.updateIndexPlan(indexPlan.getUuid(), + copyForWrite -> copyForWrite.createAndAddBaseIndex(Lists.newArrayList(newBaseAggLayout))); + NDataflow dataflow = dataflowManager.getDataflow(modelId); String segId = "87d65498-b922-225c-1db7-13de001beba8"; NDataLayout baseAggLayout = dataflow.getSegment(segId).getLayout(1L); @@ -224,4 +199,4 @@ public class TableIndexAnswerSelectStarTest extends NLocalWithSparkSessionTest { return "tableindex_answer_selectstart"; } -} \ No newline at end of file +} diff --git a/src/kylin-it/src/test/java/org/apache/kylin/server/NQueryControllerTest.java b/src/kylin-it/src/test/java/org/apache/kylin/server/NQueryControllerTest.java deleted file mode 100644 index 28d61f04f6..0000000000 --- a/src/kylin-it/src/test/java/org/apache/kylin/server/NQueryControllerTest.java +++ /dev/null @@ -1,190 +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.kylin.server; - -import static org.apache.kylin.common.constant.HttpConstant.HTTP_VND_APACHE_KYLIN_JSON; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; - -import java.io.File; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.Statement; -import java.util.Arrays; - -import org.apache.commons.lang3.StringUtils; -import org.apache.kylin.common.QueryContext; -import org.apache.kylin.common.util.JsonUtil; -import org.apache.kylin.metadata.model.ComputedColumnDesc; -import org.apache.kylin.metadata.user.ManagedUser; -import org.apache.kylin.query.KylinTestBase; -import org.apache.kylin.rest.request.PrepareSqlRequest; -import org.apache.kylin.rest.service.UserGrantedAuthority; -import org.apache.kylin.rest.service.UserService; -import org.apache.kylin.source.jdbc.H2Database; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Ignore; -import org.junit.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.MediaType; -import org.springframework.test.web.servlet.MvcResult; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.result.MockMvcResultHandlers; -import org.springframework.test.web.servlet.result.MockMvcResultMatchers; - -import com.fasterxml.jackson.databind.JsonNode; -import com.jayway.jsonpath.JsonPath; - -import lombok.val; - -public class NQueryControllerTest extends AbstractMVCIntegrationTestCase { - - @Autowired - protected UserService userService; - - @Before - public void setUp() throws Exception { - super.setUp(); - userService.createUser( - new ManagedUser("ADMIN", "KYLIN", false, Arrays.asList(new UserGrantedAuthority("ROLE_ADMIN")))); - } - - @Test - public void testQuery() throws Exception { - final PrepareSqlRequest sqlRequest = new PrepareSqlRequest(); - sqlRequest.setProject("default"); - sqlRequest.setSql("-- This is comment" + '\n' + "SELECT * FROM TEST_KYLIN_FACT"); - sqlRequest.setUser_defined_tag("user_tag"); - overwriteSystemProp("kylin.query.pushdown-enabled", "false"); - - final MvcResult result = mockMvc - .perform(MockMvcRequestBuilders.post("/api/query").contentType(MediaType.APPLICATION_JSON) - .content(JsonUtil.writeValueAsString(sqlRequest)) - .header("User-Agent", "Chrome/89.0.4389.82 Safari/537.36") - .accept(MediaType.parseMediaType(HTTP_VND_APACHE_KYLIN_JSON))) - .andExpect(MockMvcResultMatchers.status().isOk()).andReturn(); - - final boolean isException = JsonPath.compile("$.data.isException") - .read(result.getResponse().getContentAsString()); - Assert.assertTrue(isException); - - final String exceptionMsg = JsonPath.compile("$.data.exceptionMessage") - .read(result.getResponse().getContentAsString()); - Assert.assertTrue(StringUtils.contains(exceptionMsg, "No realization found for OLAPContext")); - } - - @Ignore("TODO: remove or adapt") - public void testUserTagExceedLimitation() throws Exception { - final PrepareSqlRequest sqlRequest = new PrepareSqlRequest(); - sqlRequest.setProject("default"); - sqlRequest.setSql("-- This is comment" + '\n' + "SELECT * FROM TEST_KYLIN_FACT"); - StringBuilder builder = new StringBuilder(); - for (int i = 0; i <= 256; i++) { - builder.append('a'); - } - sqlRequest.setUser_defined_tag(builder.toString()); - mockMvc.perform(MockMvcRequestBuilders.post("/api/query").contentType(MediaType.APPLICATION_JSON) - .content(JsonUtil.writeValueAsString(sqlRequest)) - .accept(MediaType.parseMediaType(HTTP_VND_APACHE_KYLIN_JSON))) - .andExpect(MockMvcResultMatchers.status().isBadRequest()).andExpect(jsonPath("$.code").value("999")) - .andExpect(jsonPath("$.msg").value( - "Can’t add the tag, as the length exceeds the maximum 256 characters. Please modify it.")); - } - - @Test - public void testPushDownQuery() throws Exception { - overwriteSystemProp("kylin.query.pushdown.runner-class-name", - "org.apache.kylin.query.pushdown.PushDownRunnerJdbcImpl"); - overwriteSystemProp("kylin.query.pushdown-enabled", "true"); - overwriteSystemProp("kylin.query.pushdown.cache-enabled", "true"); - overwriteSystemProp("kylin.query.cache-threshold-duration", "0"); - - // Load H2 Tables (inner join) - Connection h2Connection = DriverManager.getConnection("jdbc:h2:mem:db_default", "sa", ""); - H2Database h2DB = new H2Database(h2Connection, getTestConfig(), "default"); - h2DB.loadAllTables(); - - overwriteSystemProp("kylin.query.pushdown.jdbc.url", "jdbc:h2:mem:db_default;SCHEMA=DEFAULT"); - overwriteSystemProp("kylin.query.pushdown.jdbc.driver", "org.h2.Driver"); - overwriteSystemProp("kylin.query.pushdown.jdbc.username", "sa"); - overwriteSystemProp("kylin.query.pushdown.jdbc.password", ""); - - final PrepareSqlRequest sqlRequest = new PrepareSqlRequest(); - sqlRequest.setProject("default"); - - String queryFileName = "src/test/resources/query/sql_pushdown/query04.sql"; - File sqlFile = new File(queryFileName); - String sql = KylinTestBase.getTextFromFile(sqlFile); - sqlRequest.setSql(sql); - - // get h2 query result for comparison - Statement statement = h2Connection.createStatement(); - ResultSet resultSet = statement.executeQuery(sql); - - mockMvc.perform(MockMvcRequestBuilders.post("/api/query").contentType(MediaType.APPLICATION_JSON) - .content(JsonUtil.writeValueAsString(sqlRequest)) - .header("User-Agent", "Chrome/89.0.4389.82 Safari/537.36") - .accept(MediaType.parseMediaType(HTTP_VND_APACHE_KYLIN_JSON))) - .andExpect(MockMvcResultMatchers.status().isOk()) - .andExpect(MockMvcResultMatchers.jsonPath("$.data.results[0].length()") - .value(resultSet.getMetaData().getColumnCount())) - .andExpect(MockMvcResultMatchers.jsonPath("$.data.pushDown").value(true)) - .andDo(MockMvcResultHandlers.print()).andReturn(); - - // push down can not hit cache because the cache is expired by default - mockMvc.perform(MockMvcRequestBuilders.post("/api/query").contentType(MediaType.APPLICATION_JSON) - .content(JsonUtil.writeValueAsString(sqlRequest)) - .header("User-Agent", "Chrome/89.0.4389.82 Safari/537.36") - .accept(MediaType.parseMediaType(HTTP_VND_APACHE_KYLIN_JSON))) - .andExpect(MockMvcResultMatchers.status().isOk()) - .andExpect(MockMvcResultMatchers.jsonPath("$.data.results[0].length()") - .value(resultSet.getMetaData().getColumnCount())) - .andExpect(MockMvcResultMatchers.jsonPath("$.data.pushDown").value(true)) - .andExpect(MockMvcResultMatchers.jsonPath("$.data.engineType").value(QueryContext.PUSHDOWN_RDBMS)) - .andExpect(MockMvcResultMatchers.jsonPath("$.data.storageCacheUsed").value(false)) - .andDo(MockMvcResultHandlers.print()).andReturn(); - - h2Connection.close(); - } - - @Test - public void testPrepareQuery() throws Exception { - final PrepareSqlRequest sqlRequest = new PrepareSqlRequest(); - sqlRequest.setProject("default"); - sqlRequest.setSql("SELECT * FROM test_country"); - - mockMvc.perform(MockMvcRequestBuilders.post("/api/query/prestate").contentType(MediaType.APPLICATION_JSON) - .content(JsonUtil.writeValueAsString(sqlRequest)) - .accept(MediaType.parseMediaType(HTTP_VND_APACHE_KYLIN_JSON))) - .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()); - - } - - @Test - public void testGetMetadata() throws Exception { - final val mvcResult = mockMvc - .perform(MockMvcRequestBuilders.get("/api/query/tables_and_columns").param("project", "default") - .accept(MediaType.parseMediaType(HTTP_VND_APACHE_KYLIN_JSON))) - .andExpect(MockMvcResultMatchers.status().isOk()).andReturn(); - final JsonNode jsonNode = JsonUtil.readValueAsTree(mvcResult.getResponse().getContentAsString()); - final JsonNode data = jsonNode.get("data"); - Assert.assertTrue(!data.toString().contains(ComputedColumnDesc.getComputedColumnInternalNamePrefix())); - } -} diff --git a/src/kylin-it/pom.xml b/src/kylin-server-it/pom.xml similarity index 80% copy from src/kylin-it/pom.xml copy to src/kylin-server-it/pom.xml index 2ed10dc0ff..3f3a2dae77 100644 --- a/src/kylin-it/pom.xml +++ b/src/kylin-server-it/pom.xml @@ -1,21 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- - 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. ---> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>kylin</artifactId> <groupId>org.apache.kylin</groupId> @@ -24,8 +10,8 @@ </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>kylin-it</artifactId> - <name>Kylin - Integration Test</name> + <artifactId>kylin-server-it</artifactId> + <name>Kylin - Server Integration Test</name> <properties> <beanutils.version>1.9.4</beanutils.version> @@ -49,6 +35,11 @@ <scope>compile</scope> </dependency> <!--yinglong--> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-it</artifactId> + <type>test-jar</type> + </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-query-server</artifactId> @@ -72,14 +63,6 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-metadata</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-query</artifactId> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-sparder</artifactId> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-engine-spark</artifactId> @@ -88,18 +71,6 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-common</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-core-storage</artifactId> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-source-hive</artifactId> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-streaming</artifactId> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-tool</artifactId> @@ -216,36 +187,12 @@ <type>test-jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-query</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-engine-spark</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-core-storage</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-sparder</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-streaming</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> <dependency> <groupId>org.apache.maven</groupId> <artifactId>maven-model</artifactId> diff --git a/src/kylin-it/src/test/java/org/apache/kylin/event/HAMetadataTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/event/HAMetadataTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/event/HAMetadataTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/event/HAMetadataTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/event/ITStorageCleanerTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/event/ITStorageCleanerTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/event/ITStorageCleanerTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/event/ITStorageCleanerTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/event/ModelSemanticTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/event/ModelSemanticTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/event/ModelSemanticTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/event/ModelSemanticTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/event/SchemaChangeTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/event/SchemaChangeTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/event/SchemaChangeTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/event/SchemaChangeTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterTest.java similarity index 98% rename from src/kylin-it/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterTest.java index 61fb0132b3..d9c4af48d9 100644 --- a/src/kylin-it/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterTest.java +++ b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/broadcaster/BroadcasterTest.java @@ -115,7 +115,7 @@ class BroadcasterTest { void testBroadcastAddS3Conf() throws Exception { BroadcastListener broadcastListener = new BroadcastListener(); broadcastListener.handle(new AddS3CredentialToSparkBroadcastEventNotifier("aa", "bb", "cc")); - assert SparderEnv.getSparkSession().conf().contains(String.format("fs.s3a.bucket.%s.assumed.role.arn", "aa")); + Assert.assertTrue(SparderEnv.getSparkSession().conf().contains(String.format("fs.s3a.bucket.%s.assumed.role.arn", "aa"))); } @Test diff --git a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NBuildAndQueryMetricsTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NBuildAndQueryMetricsTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NBuildAndQueryMetricsTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NBuildAndQueryMetricsTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NModelControllerTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NModelControllerTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NModelControllerTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NModelControllerTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NProjectControllerTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NQueryControllerTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NQueryControllerTest.java similarity index 98% rename from src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NQueryControllerTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NQueryControllerTest.java index fa238c4de5..46ba562c7d 100644 --- a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NQueryControllerTest.java +++ b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NQueryControllerTest.java @@ -76,7 +76,8 @@ public class NQueryControllerTest extends AbstractMVCIntegrationTestCase { public void testQuery() throws Exception { final PrepareSqlRequest sqlRequest = new PrepareSqlRequest(); sqlRequest.setProject("DEFAULT"); - sqlRequest.setSql("SELECT * FROM TEST_KYLIN_FACT"); + sqlRequest.setSql("-- This is comment" + '\n' + "SELECT * FROM TEST_KYLIN_FACT"); + sqlRequest.setUser_defined_tag("user_tag"); overwriteSystemProp("kylin.query.pushdown-enabled", "false"); final MvcResult result = mockMvc @@ -117,7 +118,7 @@ public class NQueryControllerTest extends AbstractMVCIntegrationTestCase { final PrepareSqlRequest sqlRequest = new PrepareSqlRequest(); sqlRequest.setProject("Default"); - String queryFileName = "src/test/resources/query/sql_pushdown/query04.sql"; + String queryFileName = "src/test/resources/query/sql_pushdown.sql"; File sqlFile = new File(queryFileName); String sql = KylinTestBase.getTextFromFile(sqlFile); sqlRequest.setSql(sql); diff --git a/src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/rest/controller/NUserControllerTest.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/server/AbstractMVCIntegrationTestCase.java b/src/kylin-server-it/src/test/java/org/apache/kylin/server/AbstractMVCIntegrationTestCase.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/server/AbstractMVCIntegrationTestCase.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/server/AbstractMVCIntegrationTestCase.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/server/IntegrationConfig.java b/src/kylin-server-it/src/test/java/org/apache/kylin/server/IntegrationConfig.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/server/IntegrationConfig.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/server/IntegrationConfig.java diff --git a/src/kylin-it/src/test/java/org/apache/kylin/server/NModelControllerWithRealServiceTest.java b/src/kylin-server-it/src/test/java/org/apache/kylin/server/NModelControllerWithRealServiceTest.java similarity index 100% rename from src/kylin-it/src/test/java/org/apache/kylin/server/NModelControllerWithRealServiceTest.java rename to src/kylin-server-it/src/test/java/org/apache/kylin/server/NModelControllerWithRealServiceTest.java diff --git a/src/kylin-server-it/src/test/resources/query/sql_pushdown.sql b/src/kylin-server-it/src/test/resources/query/sql_pushdown.sql new file mode 100644 index 0000000000..c1b70d4abb --- /dev/null +++ b/src/kylin-server-it/src/test/resources/query/sql_pushdown.sql @@ -0,0 +1,30 @@ +-- +-- 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. +-- + +select meta_categ_name, count(1) as cnt, sum(price) as GMV + + from test_kylin_fact + inner JOIN edw.test_cal_dt as test_cal_dt + ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt + left JOIN test_category_groupings + ON test_kylin_fact.leaf_categ_id = test_category_groupings.leaf_categ_id + left JOIN edw.test_sites as test_sites + ON test_kylin_fact.lstg_site_id = test_sites.site_id + + where not ( meta_categ_name not in ('', 'a','Computers') or meta_categ_name not in ('Crafts','Computers')) + group by meta_categ_name diff --git a/src/kylin-it/src/test/resources/springframework/conf/applicationContext.xml b/src/kylin-server-it/src/test/resources/springframework/conf/applicationContext.xml similarity index 100% rename from src/kylin-it/src/test/resources/springframework/conf/applicationContext.xml rename to src/kylin-server-it/src/test/resources/springframework/conf/applicationContext.xml diff --git a/src/kylin-it/src/test/resources/springframework/conf/kylinSecurity.xml b/src/kylin-server-it/src/test/resources/springframework/conf/kylinSecurity.xml similarity index 100% rename from src/kylin-it/src/test/resources/springframework/conf/kylinSecurity.xml rename to src/kylin-server-it/src/test/resources/springframework/conf/kylinSecurity.xml diff --git a/src/metadata-server/pom.xml b/src/metadata-server/pom.xml index 38ff80c59b..42bbb48a9b 100644 --- a/src/metadata-server/pom.xml +++ b/src/metadata-server/pom.xml @@ -69,12 +69,6 @@ <artifactId>spring-test</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-common-service</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> diff --git a/src/modeling-service/pom.xml b/src/modeling-service/pom.xml index c6c5a996f0..838a96531c 100644 --- a/src/modeling-service/pom.xml +++ b/src/modeling-service/pom.xml @@ -65,12 +65,6 @@ <type>test-jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-datasource-service</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-common-service</artifactId> diff --git a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java index e1e50e1dc9..aa7b481bbb 100644 --- a/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java +++ b/src/modeling-service/src/main/java/org/apache/kylin/rest/service/IndexPlanService.java @@ -1108,10 +1108,10 @@ public class IndexPlanService extends BasicService implements TableIndexPlanSupp @Transaction(project = 0) public BuildBaseIndexResponse updateBaseIndex(String project, CreateBaseIndexRequest request, - boolean createIfNotExistTableLayout, boolean createIfNotExistAggLayout, boolean isAuo) { + boolean createIfNotExistTableLayout, boolean createIfNotExistAggLayout, boolean isAuto) { aclEvaluate.checkProjectOperationDesignPermission(project); // update = delete + create - Set<Long> needDelete = checkNeedUpdateBaseIndex(project, request, isAuo); + Set<Long> needDelete = checkNeedUpdateBaseIndex(project, request, isAuto); List<LayoutEntity> needRetainAggLayout = getNeedRetainAggLayout(project, request, needDelete); deleteOrMarkTobeDelete(project, request.getModelId(), needDelete); removeFromBlackList(project, request, needDelete, needRetainAggLayout); diff --git a/src/query-server/pom.xml b/src/query-server/pom.xml index c1045d9614..371c054a11 100644 --- a/src/query-server/pom.xml +++ b/src/query-server/pom.xml @@ -25,7 +25,6 @@ <modelVersion>4.0.0</modelVersion> <name>Kylin - Query Server</name> - <groupId>org.apache.kylin</groupId> <artifactId>kylin-query-server</artifactId> <properties> @@ -50,11 +49,6 @@ <artifactId>kylin-data-loading-service</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-job-service</artifactId> - </dependency> - <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-common</artifactId> diff --git a/src/query-service/pom.xml b/src/query-service/pom.xml index 7f3301d207..d01b18c6fa 100644 --- a/src/query-service/pom.xml +++ b/src/query-service/pom.xml @@ -44,6 +44,10 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-query</artifactId> </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-core-metadata</artifactId> + </dependency> <!-- hadoop --> <dependency> @@ -93,14 +97,6 @@ </dependency> <!-- Test & Env --> - - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-core-metadata</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-modeling-service</artifactId> @@ -109,13 +105,13 @@ </dependency> <dependency> <groupId>org.apache.kylin</groupId> - <artifactId>kylin-common-service</artifactId> + <artifactId>kylin-core-metadata</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.kylin</groupId> - <artifactId>kylin-datasource-service</artifactId> + <artifactId>kylin-common-service</artifactId> <type>test-jar</type> <scope>test</scope> </dependency> diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/service/DashboardService.java b/src/query-service/src/main/java/org/apache/kylin/rest/service/DashboardService.java index 07c1511f93..1d70199234 100644 --- a/src/query-service/src/main/java/org/apache/kylin/rest/service/DashboardService.java +++ b/src/query-service/src/main/java/org/apache/kylin/rest/service/DashboardService.java @@ -20,7 +20,7 @@ package org.apache.kylin.rest.service; import lombok.extern.slf4j.Slf4j; import org.apache.kylin.common.response.MetricsResponse; -import org.apache.kylin.metadata.cube.realization.HybridRealization; +import org.apache.kylin.metadata.realization.HybridRealization; import org.apache.kylin.metadata.project.ProjectInstance; import org.apache.kylin.query.exception.UnsupportedQueryException; import org.apache.kylin.rest.constant.Constant; diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java b/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java index 3896737392..333dc2857b 100644 --- a/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java +++ b/src/query-service/src/main/java/org/apache/kylin/rest/service/QueryService.java @@ -153,7 +153,7 @@ import org.apache.kylin.rest.response.TableMetaCacheResultV2; import org.apache.kylin.rest.security.MutableAclRecord; import org.apache.kylin.rest.util.AclEvaluate; import org.apache.kylin.rest.util.AclPermissionUtil; -import org.apache.kylin.rest.util.PrepareSQLUtils; +import org.apache.kylin.query.util.PrepareSQLUtils; import org.apache.kylin.rest.util.QueryCacheSignatureUtil; import org.apache.kylin.rest.util.QueryRequestLimits; import org.apache.kylin.rest.util.QueryUtils; diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java b/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java index 0c922b603e..c9c782f8aa 100644 --- a/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java +++ b/src/query-service/src/main/java/org/apache/kylin/rest/util/QueryUtils.java @@ -25,6 +25,7 @@ import org.apache.kylin.common.util.Pair; import org.apache.kylin.metadata.project.NProjectManager; import org.apache.kylin.query.engine.PrepareSqlStateParam; import org.apache.kylin.query.engine.QueryExec; +import org.apache.kylin.query.util.PrepareSQLUtils; import org.apache.kylin.query.util.QueryParams; import org.apache.kylin.query.util.QueryUtil; import org.apache.kylin.query.util.TempStatementUtil; diff --git a/src/query-service/src/main/java/org/apache/kylin/rest/util/PrepareSQLUtils.java b/src/query/src/main/java/org/apache/kylin/query/util/PrepareSQLUtils.java similarity index 99% rename from src/query-service/src/main/java/org/apache/kylin/rest/util/PrepareSQLUtils.java rename to src/query/src/main/java/org/apache/kylin/query/util/PrepareSQLUtils.java index 2a91e79db4..e9de9e66e3 100644 --- a/src/query-service/src/main/java/org/apache/kylin/rest/util/PrepareSQLUtils.java +++ b/src/query/src/main/java/org/apache/kylin/query/util/PrepareSQLUtils.java @@ -16,7 +16,7 @@ * limitations under the License. */ -package org.apache.kylin.rest.util; +package org.apache.kylin.query.util; import java.math.BigDecimal; import java.sql.Date; diff --git a/src/query/src/test/java/org/apache/kylin/query/util/PrepareSQLUtilsTest.java b/src/query/src/test/java/org/apache/kylin/query/util/PrepareSQLUtilsTest.java new file mode 100644 index 0000000000..bf98cee2d1 --- /dev/null +++ b/src/query/src/test/java/org/apache/kylin/query/util/PrepareSQLUtilsTest.java @@ -0,0 +1,98 @@ +/* + * 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.kylin.query.util; + +import org.apache.kylin.common.util.NLocalFileMetadataTestCase; +import org.apache.kylin.query.engine.PrepareSqlStateParam; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +public class PrepareSQLUtilsTest extends NLocalFileMetadataTestCase { + + @Before + public void setUp() throws Exception { + this.createTestMetadata(); + } + + @After + public void after() throws Exception { + this.cleanupTestMetadata(); + } + + @Test + public void testFillInParams() { + testCase(String.class, "value1", "\'value1\'"); + testCase(Integer.class, "1", "1"); + testCase(Short.class, "1", "1"); + testCase(Long.class, "1", "1"); + testCase(Double.class, "1", "1.0"); + testCase(Float.class, "1", "1.0"); + testCase(Boolean.class, "true", "true"); + testCase(Byte.class, "1", "1"); + testCase(java.util.Date.class, "2023-04-19", "date\'2023-04-19\'"); + testCase(java.sql.Date.class, "2023-04-19", "date\'2023-04-19\'"); + testCase(java.sql.Time.class, "01:02:03", "01:02:03"); // it's a bug, fix it later + testCase(java.sql.Timestamp.class, "2023-04-19 01:02:03", "timestamp\'2023-04-19 01:02:03.000\'"); + } + + @Test + public void testFillInEmptyParams() { + testCase(String.class, "", "\'\'"); + testCase(Integer.class, "", "0"); + testCase(Short.class, "", "0"); + testCase(Long.class, "", "0"); + testCase(Double.class, "", "0.0"); + testCase(Float.class, "", "0.0"); + testCase(Boolean.class, "", "false"); + testCase(Byte.class, "", "0"); + testCase(java.util.Date.class, "", "NULL"); + testCase(java.sql.Date.class, "", "NULL"); + testCase(java.sql.Time.class, "", "NULL"); + testCase(java.sql.Timestamp.class, "", "NULL"); + } + + @Test + public void testFillInNullParams() { + testCase(String.class, null, "NULL"); + testCase(Integer.class, null, "0"); + testCase(Short.class, null, "0"); + testCase(Long.class, null, "0"); + testCase(Double.class, null, "0.0"); + testCase(Float.class, null, "0.0"); + testCase(Boolean.class, null, "false"); + testCase(Byte.class, null, "0"); + testCase(java.util.Date.class, null, "NULL"); + testCase(java.sql.Date.class, null, "NULL"); + testCase(java.sql.Time.class, null, "NULL"); + testCase(java.sql.Timestamp.class, null, "NULL"); + } + + private static final String SQL_PATTERN = "select * from mock_table where filter_value = "; + private static final String PLACE_HOLDER = "?"; + + private void testCase(Class typeClass, String value, String expected) { + String originalSql = SQL_PATTERN + PLACE_HOLDER; + String expectedSql = SQL_PATTERN + expected; + PrepareSqlStateParam param = new PrepareSqlStateParam(typeClass.getCanonicalName(), value); + String preparedSql = PrepareSQLUtils.fillInParams(originalSql, new PrepareSqlStateParam[] {param}); + Assert.assertEquals(expectedSql, preparedSql); + } +} diff --git a/src/second-storage/clickhouse-it/pom.xml b/src/second-storage/clickhouse-it/pom.xml index bf2a5cd262..6f85d66608 100644 --- a/src/second-storage/clickhouse-it/pom.xml +++ b/src/second-storage/clickhouse-it/pom.xml @@ -50,6 +50,13 @@ <artifactId>kap-second-storage-clickhouse</artifactId> </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-core-metadata</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> + <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-engine-spark</artifactId> @@ -246,6 +253,16 @@ <artifactId>kylin-data-loading-server</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-query-server</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-metadata-server</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build> diff --git a/src/server/pom.xml b/src/server/pom.xml index 1b24a133b6..006020503c 100644 --- a/src/server/pom.xml +++ b/src/server/pom.xml @@ -75,6 +75,12 @@ <groupId>org.apache.kylin</groupId> <artifactId>distributed-lock-ext</artifactId> </dependency> + <dependency> + <groupId>org.apache.kylin</groupId> + <artifactId>kylin-core-metadata</artifactId> + <type>test-jar</type> + <scope>test</scope> + </dependency> <!-- https://mvnrepository.com/artifact/org.scala-lang.modules/scala-xml --> <dependency> @@ -346,11 +352,6 @@ <artifactId>hive-common</artifactId> <scope>compile</scope> </dependency> - <dependency> - <groupId>org.apache.hive</groupId> - <artifactId>hive-exec</artifactId> - <scope>compile</scope> - </dependency> <dependency> <groupId>org.powermock</groupId> diff --git a/src/spark-project/engine-build-sdk/pom.xml b/src/spark-project/engine-build-sdk/pom.xml index 3eba2238dc..285a7cff5b 100644 --- a/src/spark-project/engine-build-sdk/pom.xml +++ b/src/spark-project/engine-build-sdk/pom.xml @@ -36,16 +36,6 @@ <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.12</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-spark-common</artifactId> - <exclusions> - <exclusion> - <groupId>*</groupId> - <artifactId>*</artifactId> - </exclusion> - </exclusions> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-common</artifactId> diff --git a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java index 9de5b85f8a..b087d758df 100644 --- a/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java +++ b/src/spark-project/engine-spark/src/main/java/org/apache/kylin/engine/spark/application/SparkApplication.java @@ -68,6 +68,7 @@ import org.apache.kylin.engine.spark.job.NSparkCubingUtil; import org.apache.kylin.engine.spark.job.ParamsConstants; import org.apache.kylin.engine.spark.job.ResourceDetect; import org.apache.kylin.engine.spark.job.RestfulJobProgressReport; +import org.apache.kylin.engine.spark.job.SegmentBuildJob; import org.apache.kylin.engine.spark.job.SparkJobConstants; import org.apache.kylin.engine.spark.job.UdfManager; import org.apache.kylin.engine.spark.scheduler.ClusterMonitor; @@ -105,10 +106,6 @@ import org.apache.spark.util.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.kylin.guava30.shaded.common.annotations.VisibleForTesting; -import org.apache.kylin.guava30.shaded.common.collect.Maps; - -import org.apache.kylin.engine.spark.job.SegmentBuildJob; import lombok.val; import scala.runtime.AbstractFunction1; import scala.runtime.BoxedUnit; diff --git a/src/spark-project/source-jdbc/pom.xml b/src/spark-project/source-jdbc/pom.xml index 0130a9cda2..7ed673707d 100644 --- a/src/spark-project/source-jdbc/pom.xml +++ b/src/spark-project/source-jdbc/pom.xml @@ -39,10 +39,6 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-datasource-sdk</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-core-job</artifactId> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-spark-common</artifactId> diff --git a/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala b/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala index ae2ab230ff..95ade3ef1d 100644 --- a/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala +++ b/src/spark-project/sparder/src/main/scala/org/apache/kylin/query/runtime/plan/TableScanPlan.scala @@ -27,17 +27,17 @@ import org.apache.kylin.guava30.shaded.common.collect.{Lists, Sets} import org.apache.kylin.metadata.cube.cuboid.NLayoutCandidate import org.apache.kylin.metadata.cube.gridtable.NLayoutToGridTableMapping import org.apache.kylin.metadata.cube.model.{LayoutEntity, NDataSegment, NDataflow} -import org.apache.kylin.metadata.model._ +import org.apache.kylin.metadata.model.{DeriveInfo, FunctionDesc, NTableMetadataManager, ParameterDesc, TblColRef} import org.apache.kylin.metadata.realization.{HybridRealization, IRealization} import org.apache.kylin.metadata.tuple.TupleInfo import org.apache.kylin.query.implicits.sessionToQueryContext import org.apache.kylin.query.relnode.{KapRel, OLAPContext} import org.apache.kylin.query.util.{RuntimeHelper, SparderDerivedUtil} -import org.apache.spark.sql._ +import org.apache.spark.sql.{Column, DataFrame, Row, SparderEnv, SparkOperation, SparkSession} import org.apache.spark.sql.execution.utils.SchemaProcessor import org.apache.spark.sql.functions.col import org.apache.spark.sql.manager.SparderLookupManager -import org.apache.spark.sql.types._ +import org.apache.spark.sql.types.{ArrayType, DataTypes, DoubleType, StringType, StructField, StructType} import org.apache.spark.sql.util.SparderTypeUtil import scala.collection.JavaConverters._ diff --git a/src/spark-project/spark-common/pom.xml b/src/spark-project/spark-common/pom.xml index 98cf5f29cd..798df45452 100644 --- a/src/spark-project/spark-common/pom.xml +++ b/src/spark-project/spark-common/pom.xml @@ -145,11 +145,6 @@ <artifactId>awaitility</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-soft-affinity-cache</artifactId> - <type>test-jar</type> - </dependency> <dependency> <groupId>org.apache.kylin</groupId> <artifactId>kylin-core-common</artifactId> diff --git a/src/streaming-service/pom.xml b/src/streaming-service/pom.xml index 766f0ae85f..759061c30d 100644 --- a/src/streaming-service/pom.xml +++ b/src/streaming-service/pom.xml @@ -24,7 +24,6 @@ </parent> <modelVersion>4.0.0</modelVersion> <name>Kylin - Streaming Service</name> - <groupId>org.apache.kylin</groupId> <artifactId>kylin-streaming-service</artifactId> <properties> @@ -58,24 +57,6 @@ <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-data-loading-service</artifactId> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-job-service</artifactId> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-query-service</artifactId> - <scope>test</scope> - </dependency> - <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> diff --git a/src/tool/pom.xml b/src/tool/pom.xml index e71b03e843..ef48efb4b7 100644 --- a/src/tool/pom.xml +++ b/src/tool/pom.xml @@ -40,10 +40,6 @@ <groupId>org.apache.kylin</groupId> <artifactId>kylin-streaming</artifactId> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-common-service</artifactId> - </dependency> <dependency> <groupId>org.springframework.security</groupId> @@ -135,12 +131,6 @@ <type>test-jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>org.apache.kylin</groupId> - <artifactId>kylin-common-service</artifactId> - <type>test-jar</type> - <scope>test</scope> - </dependency> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-api</artifactId> diff --git a/src/common-service/src/main/java/org/apache/kylin/helper/HelperConstants.java b/src/tool/src/main/java/org/apache/kylin/helper/HelperConstants.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/helper/HelperConstants.java rename to src/tool/src/main/java/org/apache/kylin/helper/HelperConstants.java diff --git a/src/common-service/src/main/java/org/apache/kylin/helper/MetadataToolHelper.java b/src/tool/src/main/java/org/apache/kylin/helper/MetadataToolHelper.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/helper/MetadataToolHelper.java rename to src/tool/src/main/java/org/apache/kylin/helper/MetadataToolHelper.java diff --git a/src/common-service/src/main/java/org/apache/kylin/helper/RoutineToolHelper.java b/src/tool/src/main/java/org/apache/kylin/helper/RoutineToolHelper.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/helper/RoutineToolHelper.java rename to src/tool/src/main/java/org/apache/kylin/helper/RoutineToolHelper.java diff --git a/src/common-service/src/main/java/org/apache/kylin/helper/UpdateUserAclToolHelper.java b/src/tool/src/main/java/org/apache/kylin/helper/UpdateUserAclToolHelper.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/helper/UpdateUserAclToolHelper.java rename to src/tool/src/main/java/org/apache/kylin/helper/UpdateUserAclToolHelper.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/HDFSMetadataTool.java b/src/tool/src/main/java/org/apache/kylin/tool/HDFSMetadataTool.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/HDFSMetadataTool.java rename to src/tool/src/main/java/org/apache/kylin/tool/HDFSMetadataTool.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/constant/DiagTypeEnum.java b/src/tool/src/main/java/org/apache/kylin/tool/constant/DiagTypeEnum.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/constant/DiagTypeEnum.java rename to src/tool/src/main/java/org/apache/kylin/tool/constant/DiagTypeEnum.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/constant/StageEnum.java b/src/tool/src/main/java/org/apache/kylin/tool/constant/StageEnum.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/constant/StageEnum.java rename to src/tool/src/main/java/org/apache/kylin/tool/constant/StageEnum.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/CheckResult.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/CheckResult.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/CheckResult.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/CheckResult.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/CheckStateEnum.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/CheckStateEnum.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/CheckStateEnum.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/CheckStateEnum.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/HealthChecker.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/HealthChecker.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/HealthChecker.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/HealthChecker.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/KapGuardianHATask.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/KapGuardianHATask.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/KapGuardianHATask.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/KapGuardianHATask.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/ServiceOpLevelEnum.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/ServiceOpLevelEnum.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/ServiceOpLevelEnum.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/ServiceOpLevelEnum.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/Worker.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/Worker.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/Worker.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/Worker.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/AbstractHealthChecker.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/AbstractHealthChecker.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/AbstractHealthChecker.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/AbstractHealthChecker.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/FullGCDurationChecker.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/FullGCDurationChecker.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/FullGCDurationChecker.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/FullGCDurationChecker.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/KEProcessChecker.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/KEProcessChecker.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/KEProcessChecker.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/KEProcessChecker.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/KEStatusChecker.java b/src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/KEStatusChecker.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/daemon/checker/KEStatusChecker.java rename to src/tool/src/main/java/org/apache/kylin/tool/daemon/checker/KEStatusChecker.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/garbage/ExecutableCleaner.java b/src/tool/src/main/java/org/apache/kylin/tool/garbage/ExecutableCleaner.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/garbage/ExecutableCleaner.java rename to src/tool/src/main/java/org/apache/kylin/tool/garbage/ExecutableCleaner.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/garbage/GarbageCleaner.java b/src/tool/src/main/java/org/apache/kylin/tool/garbage/GarbageCleaner.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/garbage/GarbageCleaner.java rename to src/tool/src/main/java/org/apache/kylin/tool/garbage/GarbageCleaner.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/garbage/IndexCleaner.java b/src/tool/src/main/java/org/apache/kylin/tool/garbage/IndexCleaner.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/garbage/IndexCleaner.java rename to src/tool/src/main/java/org/apache/kylin/tool/garbage/IndexCleaner.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/garbage/MetadataCleaner.java b/src/tool/src/main/java/org/apache/kylin/tool/garbage/MetadataCleaner.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/garbage/MetadataCleaner.java rename to src/tool/src/main/java/org/apache/kylin/tool/garbage/MetadataCleaner.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/garbage/SnapshotCleaner.java b/src/tool/src/main/java/org/apache/kylin/tool/garbage/SnapshotCleaner.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/garbage/SnapshotCleaner.java rename to src/tool/src/main/java/org/apache/kylin/tool/garbage/SnapshotCleaner.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/garbage/SourceUsageCleaner.java b/src/tool/src/main/java/org/apache/kylin/tool/garbage/SourceUsageCleaner.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/garbage/SourceUsageCleaner.java rename to src/tool/src/main/java/org/apache/kylin/tool/garbage/SourceUsageCleaner.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/garbage/StorageCleaner.java b/src/tool/src/main/java/org/apache/kylin/tool/garbage/StorageCleaner.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/garbage/StorageCleaner.java rename to src/tool/src/main/java/org/apache/kylin/tool/garbage/StorageCleaner.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/kerberos/DelegationTokenManager.java b/src/tool/src/main/java/org/apache/kylin/tool/kerberos/DelegationTokenManager.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/kerberos/DelegationTokenManager.java rename to src/tool/src/main/java/org/apache/kylin/tool/kerberos/DelegationTokenManager.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java b/src/tool/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java similarity index 96% rename from src/common-service/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java rename to src/tool/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java index 4b8ef3e211..1272ebc777 100644 --- a/src/common-service/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java +++ b/src/tool/src/main/java/org/apache/kylin/tool/kerberos/KerberosLoginUtil.java @@ -34,6 +34,7 @@ import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.security.UserGroupInformation; import org.apache.hadoop.security.authentication.util.KerberosUtil; import org.apache.kylin.common.util.Unsafe; +import org.apache.kylin.guava30.shaded.common.base.Preconditions; import org.apache.log4j.Logger; import sun.security.krb5.internal.ktab.KeyTab; @@ -202,20 +203,12 @@ public class KerberosLoginUtil { } public static void setJaasConf(String loginContextName, String principal, String keytabFile) throws IOException { - if ((loginContextName == null) || (loginContextName.length() <= 0)) { - LOG.error("input loginContextName is invalid."); - throw new IOException("input loginContextName is invalid."); - } - - if ((principal == null) || (principal.length() <= 0)) { - LOG.error("input principal is invalid."); - throw new IOException("input principal is invalid."); - } - - if ((keytabFile == null) || (keytabFile.length() <= 0)) { - LOG.error("input keytabFile is invalid."); - throw new IOException("input keytabFile is invalid."); - } + Preconditions.checkArgument((loginContextName == null) || (loginContextName.length() <= 0), + "input loginContextName is invalid."); + Preconditions.checkArgument((principal == null) || (principal.length() <= 0), + "input principal is invalid."); + Preconditions.checkArgument((keytabFile == null) || (keytabFile.length() <= 0), + "input keytabFile is invalid."); File userKeytabFile = new File(keytabFile); if (!userKeytabFile.exists()) { diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/util/LdapUtils.java b/src/tool/src/main/java/org/apache/kylin/tool/util/LdapUtils.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/util/LdapUtils.java rename to src/tool/src/main/java/org/apache/kylin/tool/util/LdapUtils.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelper.java b/src/tool/src/main/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelper.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelper.java rename to src/tool/src/main/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelper.java diff --git a/src/common-service/src/main/java/org/apache/kylin/tool/util/ToolUtil.java b/src/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java similarity index 100% rename from src/common-service/src/main/java/org/apache/kylin/tool/util/ToolUtil.java rename to src/tool/src/main/java/org/apache/kylin/tool/util/ToolUtil.java diff --git a/src/common-service/src/test/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelperTest.java b/src/tool/src/test/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelperTest.java similarity index 100% rename from src/common-service/src/test/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelperTest.java rename to src/tool/src/test/java/org/apache/kylin/tool/util/ProjectTemporaryTableCleanerHelperTest.java diff --git a/src/common-service/src/test/java/org/apache/kylin/tool/util/ToolUtilTest.java b/src/tool/src/test/java/org/apache/kylin/tool/util/ToolUtilTest.java similarity index 100% rename from src/common-service/src/test/java/org/apache/kylin/tool/util/ToolUtilTest.java rename to src/tool/src/test/java/org/apache/kylin/tool/util/ToolUtilTest.java