This is an automated email from the ASF dual-hosted git repository. yuqi4733 pushed a commit to branch internal-main in repository https://gitbox.apache.org/repos/asf/gravitino.git
commit da7f4ab37f2cc82874dcf030fb739893ad689d9f Author: geyanggang <[email protected]> AuthorDate: Wed Jan 28 20:31:30 2026 +0800 [#126] Add skeleton for MaxComputer catalog. (#127) * Add skeleton for MaxComputer catalog. * Add skeleton for MaxComputer catalog. * Add skeleton for MaxComputer catalog. --- catalogs/catalog-jdbc-maxcompute/build.gradle.kts | 105 +++++++++++++++++++++ .../catalog/maxcompute/MaxComputeCatalog.java | 94 ++++++++++++++++++ .../maxcompute/MaxComputeCatalogCapability.java | 24 +++++ .../MaxComputeSchemaPropertiesMetadata.java | 33 +++++++ .../MaxComputeTablePropertiesMetadata.java | 33 +++++++ .../MaxComputeColumnDefaultValueConverter.java | 24 +++++ .../converter/MaxComputeExceptionConverter.java | 33 +++++++ .../converter/MaxComputeTypeConverter.java | 36 +++++++ .../operation/MaxComputeDatabaseOperations.java | 49 ++++++++++ .../operation/MaxComputeTableOperations.java | 64 +++++++++++++ .../services/org.apache.gravitino.CatalogProvider | 19 ++++ .../src/main/resources/jdbc-maxcompute.conf | 22 +++++ .../catalog/maxcompute/TestMaxComputeCatalog.java | 42 +++++++++ settings.gradle.kts | 1 + 14 files changed, 579 insertions(+) diff --git a/catalogs/catalog-jdbc-maxcompute/build.gradle.kts b/catalogs/catalog-jdbc-maxcompute/build.gradle.kts new file mode 100644 index 0000000000..270eb50a97 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/build.gradle.kts @@ -0,0 +1,105 @@ +/* + * 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. + */ +description = "catalog-jdbc-maxcompute" + +plugins { + `maven-publish` + id("java") + id("idea") +} + +dependencies { + implementation(project(":api")) { + exclude(group = "*") + } + implementation(project(":catalogs:catalog-jdbc-common")) { + exclude(group = "*") + } + implementation(project(":common")) { + exclude(group = "*") + } + implementation(project(":core")) { + exclude(group = "*") + } + + implementation(libs.bundles.log4j) + implementation(libs.commons.collections4) + implementation(libs.commons.lang3) + implementation(libs.guava) + + testImplementation(project(":catalogs:catalog-jdbc-common", "testArtifacts")) + testImplementation(project(":clients:client-java")) + testImplementation(project(":integration-test-common", "testArtifacts")) + testImplementation(project(":server")) + testImplementation(project(":server-common")) + + testImplementation(libs.junit.jupiter.api) + testImplementation(libs.junit.jupiter.params) + testImplementation(libs.mockito.core) + testImplementation(libs.testcontainers) + + testRuntimeOnly(libs.junit.jupiter.engine) +} + +tasks { + register("runtimeJars", Copy::class) { + from(configurations.runtimeClasspath) + into("build/libs") + } + val copyCatalogLibs by registering(Copy::class) { + dependsOn("jar", "runtimeJars") + from("build/libs") { + exclude("guava-*.jar") + exclude("log4j-*.jar") + exclude("slf4j-*.jar") + } + into("$rootDir/distribution/package/catalogs/jdbc-maxcompute/libs") + } + + val copyCatalogConfig by registering(Copy::class) { + from("src/main/resources") + into("$rootDir/distribution/package/catalogs/jdbc-maxcompute/conf") + + include("jdbc-maxcompute.conf") + + exclude { details -> + details.file.isDirectory() + } + + fileMode = 0b111101101 + } + + register("copyLibAndConfig", Copy::class) { + dependsOn(copyCatalogLibs, copyCatalogConfig) + } +} + +tasks.test { + val skipITs = project.hasProperty("skipITs") + if (skipITs) { + // Exclude integration tests + exclude("**/integration/test/**") + } else { + dependsOn(tasks.jar) + } +} + +tasks.getByName("generateMetadataFileForMavenJavaPublication") { + dependsOn("runtimeJars") +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeCatalog.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeCatalog.java new file mode 100644 index 0000000000..8d19d65b61 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeCatalog.java @@ -0,0 +1,94 @@ +/* + * 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.gravitino.catalog.maxcompute; + +import java.util.Map; +import org.apache.gravitino.catalog.jdbc.JdbcCatalog; +import org.apache.gravitino.catalog.jdbc.JdbcCatalogOperations; +import org.apache.gravitino.catalog.jdbc.converter.JdbcColumnDefaultValueConverter; +import org.apache.gravitino.catalog.jdbc.converter.JdbcExceptionConverter; +import org.apache.gravitino.catalog.jdbc.converter.JdbcTypeConverter; +import org.apache.gravitino.catalog.jdbc.operation.JdbcDatabaseOperations; +import org.apache.gravitino.catalog.jdbc.operation.JdbcTableOperations; +import org.apache.gravitino.catalog.maxcompute.converter.MaxComputeColumnDefaultValueConverter; +import org.apache.gravitino.catalog.maxcompute.converter.MaxComputeExceptionConverter; +import org.apache.gravitino.catalog.maxcompute.converter.MaxComputeTypeConverter; +import org.apache.gravitino.catalog.maxcompute.operation.MaxComputeDatabaseOperations; +import org.apache.gravitino.catalog.maxcompute.operation.MaxComputeTableOperations; +import org.apache.gravitino.connector.CatalogOperations; +import org.apache.gravitino.connector.PropertiesMetadata; +import org.apache.gravitino.connector.capability.Capability; + +/** MaxCompute catalog implementation. */ +public class MaxComputeCatalog extends JdbcCatalog { + + public static final MaxComputeTablePropertiesMetadata MAXCOMPUTE_TABLE_PROPERTIES_META = + new MaxComputeTablePropertiesMetadata(); + + @Override + public String shortName() { + return "jdbc-maxcompute"; + } + + @Override + protected CatalogOperations newOps(Map<String, String> config) { + JdbcTypeConverter jdbcTypeConverter = createJdbcTypeConverter(); + return new JdbcCatalogOperations( + createExceptionConverter(), + jdbcTypeConverter, + createJdbcDatabaseOperations(), + createJdbcTableOperations(), + createJdbcColumnDefaultValueConverter()); + } + + @Override + public Capability newCapability() { + return new MaxComputeCatalogCapability(); + } + + @Override + protected JdbcExceptionConverter createExceptionConverter() { + return new MaxComputeExceptionConverter(); + } + + @Override + protected JdbcTypeConverter createJdbcTypeConverter() { + return new MaxComputeTypeConverter(); + } + + @Override + protected JdbcDatabaseOperations createJdbcDatabaseOperations() { + return new MaxComputeDatabaseOperations(); + } + + @Override + protected JdbcTableOperations createJdbcTableOperations() { + return new MaxComputeTableOperations(); + } + + @Override + protected JdbcColumnDefaultValueConverter createJdbcColumnDefaultValueConverter() { + return new MaxComputeColumnDefaultValueConverter(); + } + + @Override + public PropertiesMetadata tablePropertiesMetadata() throws UnsupportedOperationException { + return MAXCOMPUTE_TABLE_PROPERTIES_META; + } +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeCatalogCapability.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeCatalogCapability.java new file mode 100644 index 0000000000..f4f0311dbb --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeCatalogCapability.java @@ -0,0 +1,24 @@ +/* + * 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.gravitino.catalog.maxcompute; + +import org.apache.gravitino.connector.capability.Capability; + +/** Capability for MaxCompute catalog. */ +public class MaxComputeCatalogCapability implements Capability {} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeSchemaPropertiesMetadata.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeSchemaPropertiesMetadata.java new file mode 100644 index 0000000000..b244e2ef7c --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeSchemaPropertiesMetadata.java @@ -0,0 +1,33 @@ +/* + * 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.gravitino.catalog.maxcompute; + +import com.google.common.collect.ImmutableMap; +import java.util.Map; +import org.apache.gravitino.catalog.jdbc.JdbcSchemaPropertiesMetadata; +import org.apache.gravitino.connector.PropertyEntry; + +/** Schema properties metadata for MaxCompute. */ +public class MaxComputeSchemaPropertiesMetadata extends JdbcSchemaPropertiesMetadata { + + @Override + protected Map<String, PropertyEntry<?>> specificPropertyEntries() { + return ImmutableMap.of(); + } +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeTablePropertiesMetadata.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeTablePropertiesMetadata.java new file mode 100644 index 0000000000..e7ad112b31 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/MaxComputeTablePropertiesMetadata.java @@ -0,0 +1,33 @@ +/* + * 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.gravitino.catalog.maxcompute; + +import com.google.common.collect.ImmutableMap; +import java.util.Map; +import org.apache.gravitino.catalog.jdbc.JdbcTablePropertiesMetadata; +import org.apache.gravitino.connector.PropertyEntry; + +/** Table properties metadata for MaxCompute. */ +public class MaxComputeTablePropertiesMetadata extends JdbcTablePropertiesMetadata { + + @Override + protected Map<String, PropertyEntry<?>> specificPropertyEntries() { + return ImmutableMap.of(); + } +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeColumnDefaultValueConverter.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeColumnDefaultValueConverter.java new file mode 100644 index 0000000000..3b9c7ab4d4 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeColumnDefaultValueConverter.java @@ -0,0 +1,24 @@ +/* + * 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.gravitino.catalog.maxcompute.converter; + +import org.apache.gravitino.catalog.jdbc.converter.JdbcColumnDefaultValueConverter; + +/** Column default value converter for MaxCompute. */ +public class MaxComputeColumnDefaultValueConverter extends JdbcColumnDefaultValueConverter {} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeExceptionConverter.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeExceptionConverter.java new file mode 100644 index 0000000000..abc69e8de9 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeExceptionConverter.java @@ -0,0 +1,33 @@ +/* + * 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.gravitino.catalog.maxcompute.converter; + +import java.sql.SQLException; +import org.apache.gravitino.catalog.jdbc.converter.JdbcExceptionConverter; +import org.apache.gravitino.exceptions.GravitinoRuntimeException; + +/** Exception converter for MaxCompute. */ +public class MaxComputeExceptionConverter extends JdbcExceptionConverter { + + @SuppressWarnings("FormatStringAnnotation") + @Override + public GravitinoRuntimeException toGravitinoException(SQLException se) { + return new GravitinoRuntimeException(se, se.getMessage()); + } +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeTypeConverter.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeTypeConverter.java new file mode 100644 index 0000000000..2df35ff88e --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/converter/MaxComputeTypeConverter.java @@ -0,0 +1,36 @@ +/* + * 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.gravitino.catalog.maxcompute.converter; + +import org.apache.gravitino.catalog.jdbc.converter.JdbcTypeConverter; +import org.apache.gravitino.rel.types.Type; + +/** Type converter for MaxCompute. */ +public class MaxComputeTypeConverter extends JdbcTypeConverter { + + @Override + public Type toGravitino(JdbcTypeBean typeBean) { + throw new UnsupportedOperationException("Not implemented yet"); + } + + @Override + public String fromGravitino(Type type) { + throw new UnsupportedOperationException("Not implemented yet"); + } +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/operation/MaxComputeDatabaseOperations.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/operation/MaxComputeDatabaseOperations.java new file mode 100644 index 0000000000..86312413dd --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/operation/MaxComputeDatabaseOperations.java @@ -0,0 +1,49 @@ +/* + * 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.gravitino.catalog.maxcompute.operation; + +import com.google.common.collect.ImmutableSet; +import java.util.Map; +import java.util.Set; +import org.apache.gravitino.catalog.jdbc.operation.JdbcDatabaseOperations; + +/** Database operations for MaxCompute. */ +public class MaxComputeDatabaseOperations extends JdbcDatabaseOperations { + + @Override + public String generateCreateDatabaseSql( + String databaseName, String comment, Map<String, String> properties) { + throw new UnsupportedOperationException("Not implemented yet"); + } + + @Override + public String generateDropDatabaseSql(String databaseName, boolean cascade) { + throw new UnsupportedOperationException("Not implemented yet"); + } + + @Override + protected boolean supportSchemaComment() { + return false; + } + + @Override + protected Set<String> createSysDatabaseNameSet() { + return ImmutableSet.of("information_schema"); + } +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/operation/MaxComputeTableOperations.java b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/operation/MaxComputeTableOperations.java new file mode 100644 index 0000000000..bf6ee4fed6 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/java/org/apache/gravitino/catalog/maxcompute/operation/MaxComputeTableOperations.java @@ -0,0 +1,64 @@ +/* + * 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.gravitino.catalog.maxcompute.operation; + +import java.util.Map; +import org.apache.gravitino.catalog.jdbc.JdbcColumn; +import org.apache.gravitino.catalog.jdbc.operation.JdbcTableOperations; +import org.apache.gravitino.rel.TableChange; +import org.apache.gravitino.rel.expressions.distributions.Distribution; +import org.apache.gravitino.rel.expressions.transforms.Transform; +import org.apache.gravitino.rel.indexes.Index; + +/** Table operations for MaxCompute. */ +public class MaxComputeTableOperations extends JdbcTableOperations { + + @Override + protected String generateCreateTableSql( + String tableName, + JdbcColumn[] columns, + String comment, + Map<String, String> properties, + Transform[] partitioning, + Distribution distribution, + Index[] indexes) { + throw new UnsupportedOperationException("Not implemented yet"); + } + + @Override + protected String generateAlterTableSql( + String databaseName, String tableName, TableChange... changes) { + throw new UnsupportedOperationException("Not implemented yet"); + } + + @Override + protected String generateRenameTableSql(String oldTableName, String newTableName) { + throw new UnsupportedOperationException("Not implemented yet"); + } + + @Override + protected String generateDropTableSql(String tableName) { + throw new UnsupportedOperationException("Not implemented yet"); + } + + @Override + protected String generatePurgeTableSql(String tableName) { + throw new UnsupportedOperationException("Not implemented yet"); + } +} diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/resources/META-INF/services/org.apache.gravitino.CatalogProvider b/catalogs/catalog-jdbc-maxcompute/src/main/resources/META-INF/services/org.apache.gravitino.CatalogProvider new file mode 100644 index 0000000000..877730cdf0 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/resources/META-INF/services/org.apache.gravitino.CatalogProvider @@ -0,0 +1,19 @@ +# +# 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. +# +org.apache.gravitino.catalog.maxcompute.MaxComputeCatalog diff --git a/catalogs/catalog-jdbc-maxcompute/src/main/resources/jdbc-maxcompute.conf b/catalogs/catalog-jdbc-maxcompute/src/main/resources/jdbc-maxcompute.conf new file mode 100644 index 0000000000..be566a5920 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/main/resources/jdbc-maxcompute.conf @@ -0,0 +1,22 @@ +# +# 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. +# +# jdbc-url = jdbc:odps:http://service.cn-hangzhou.maxcompute.aliyun.com/api?project=your_project +# jdbc-user = your_access_key_id +# jdbc-password = your_access_key_secret +# jdbc-driver = com.aliyun.odps.jdbc.OdpsDriver diff --git a/catalogs/catalog-jdbc-maxcompute/src/test/java/org/apache/gravitino/catalog/maxcompute/TestMaxComputeCatalog.java b/catalogs/catalog-jdbc-maxcompute/src/test/java/org/apache/gravitino/catalog/maxcompute/TestMaxComputeCatalog.java new file mode 100644 index 0000000000..f444fa4ae6 --- /dev/null +++ b/catalogs/catalog-jdbc-maxcompute/src/test/java/org/apache/gravitino/catalog/maxcompute/TestMaxComputeCatalog.java @@ -0,0 +1,42 @@ +/* + * 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.gravitino.catalog.maxcompute; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; + +/** Unit tests for MaxComputeCatalog. */ +class TestMaxComputeCatalog { + + @Test + void testShortName() { + MaxComputeCatalog catalog = new MaxComputeCatalog(); + assertEquals("jdbc-maxcompute", catalog.shortName()); + } + + @Test + void testNewCapability() { + MaxComputeCatalog catalog = new MaxComputeCatalog(); + assertNotNull(catalog.newCapability()); + assertTrue(catalog.newCapability() instanceof MaxComputeCatalogCapability); + } +} diff --git a/settings.gradle.kts b/settings.gradle.kts index 3d11606aad..20829568e1 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -38,6 +38,7 @@ include( "catalogs:catalog-jdbc-common", "catalogs:catalog-jdbc-bigquery", "catalogs:catalog-jdbc-doris", + "catalogs:catalog-jdbc-maxcompute", "catalogs:catalog-jdbc-mysql", "catalogs:catalog-jdbc-postgresql", "catalogs:catalog-jdbc-oceanbase",
