Skip to content

Commit f8fd7fc

Browse files
iting0321iting0321
authored andcommitted
refactor lineage SPI into extensions
1 parent de80910 commit f8fd7fc

33 files changed

Lines changed: 499 additions & 204 deletions

bom/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ dependencies {
9191
api(project(":polaris-config-docs-generator"))
9292

9393
api(project(":polaris-core"))
94+
api(project(":polaris-extensions-lineage"))
9495

9596
api(project(":polaris-relational-jdbc"))
9697

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one
3+
* or more contributor license agreements. See the NOTICE file
4+
* distributed with this work for additional information
5+
* regarding copyright ownership. The ASF licenses this file
6+
* to you under the Apache License, Version 2.0 (the
7+
* "License"); you may not use this file except in compliance
8+
* with the License. You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing,
13+
* software distributed under the License is distributed on an
14+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
* KIND, either express or implied. See the License for the
16+
* specific language governing permissions and limitations
17+
* under the License.
18+
*/
19+
20+
plugins {
21+
id("polaris-client")
22+
id("org.kordamp.gradle.jandex")
23+
}
24+
25+
dependencies {
26+
implementation(project(":polaris-core"))
27+
28+
compileOnly(platform(libs.quarkus.bom))
29+
compileOnly("io.quarkus:quarkus-arc")
30+
compileOnly(libs.jakarta.enterprise.cdi.api)
31+
compileOnly(libs.jakarta.inject.api)
32+
compileOnly(libs.smallrye.config.core)
33+
34+
testImplementation(platform(libs.junit.bom))
35+
testImplementation("org.junit.jupiter:junit-jupiter")
36+
testImplementation(libs.assertj.core)
37+
testImplementation(libs.mockito.core)
38+
}
39+
40+
tasks.named("javadoc") { dependsOn("jandex") }

runtime/service/src/main/java/org/apache/polaris/service/lineage/DefaultLineageService.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/DefaultPolarisLineageHandler.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,49 +16,46 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.service.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
import jakarta.enterprise.context.RequestScoped;
2222
import jakarta.inject.Inject;
2323
import java.time.Instant;
2424
import org.apache.polaris.core.config.FeatureConfiguration;
2525
import org.apache.polaris.core.context.CallContext;
2626
import org.apache.polaris.core.context.RealmContext;
27-
import org.apache.polaris.core.lineage.LineageGraph;
28-
import org.apache.polaris.core.lineage.LineageIngestRequest;
29-
import org.apache.polaris.core.lineage.LineagePersistence;
30-
import org.apache.polaris.core.lineage.LineageQueryRequest;
31-
import org.apache.polaris.core.lineage.LineageService;
3227

3328
@RequestScoped
34-
public class DefaultLineageService implements LineageService {
29+
public class DefaultPolarisLineageHandler implements PolarisLineageHandler {
3530
private final CallContext callContext;
3631
private final LineageConfiguration configuration;
37-
private final LineagePersistence persistence;
32+
private final LineageStoreManager storeManager;
3833

3934
@Inject
40-
public DefaultLineageService(
41-
CallContext callContext, LineageConfiguration configuration, LineagePersistence persistence) {
35+
public DefaultPolarisLineageHandler(
36+
CallContext callContext,
37+
LineageConfiguration configuration,
38+
LineageStoreManager storeManager) {
4239
this.callContext = callContext;
4340
this.configuration = configuration;
44-
this.persistence = persistence;
41+
this.storeManager = storeManager;
4542
}
4643

4744
@Override
4845
public void ingest(LineageIngestRequest request) {
4946
ensureEnabled();
5047
RealmContext realmContext = callContext.getRealmContext();
5148
Instant lastEventAt = request.eventTime().orElseGet(Instant::now);
52-
persistence.upsertDatasets(realmContext, request.datasets());
53-
persistence.replaceDatasetEdges(
49+
storeManager.upsertDatasets(realmContext, request.datasets());
50+
storeManager.replaceDatasetEdges(
5451
realmContext, request.targetDatasets(), request.edges(), lastEventAt);
55-
persistence.upsertColumnEdges(realmContext, request.columnEdges(), lastEventAt);
52+
storeManager.upsertColumnEdges(realmContext, request.columnEdges(), lastEventAt);
5653
}
5754

5855
@Override
5956
public LineageGraph query(LineageQueryRequest request) {
6057
ensureEnabled();
61-
return persistence.loadLineage(callContext.getRealmContext(), request);
58+
return storeManager.loadLineage(callContext.getRealmContext(), request);
6259
}
6360

6461
private void ensureEnabled() {

polaris-core/src/main/java/org/apache/polaris/core/lineage/LineageColumnEdge.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/LineageColumnEdge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.core.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
import java.util.Objects;
2222

runtime/service/src/main/java/org/apache/polaris/service/lineage/LineageConfiguration.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/LineageConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.service.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
import io.smallrye.config.ConfigMapping;
2222
import io.smallrye.config.WithDefault;

polaris-core/src/main/java/org/apache/polaris/core/lineage/LineageData.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/LineageData.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.core.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
import java.util.Objects;
2222
import java.util.OptionalLong;

polaris-core/src/main/java/org/apache/polaris/core/lineage/LineageDataset.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/LineageDataset.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.core.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
import java.util.Objects;
2222
import java.util.OptionalLong;

polaris-core/src/main/java/org/apache/polaris/core/lineage/LineageDirection.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/LineageDirection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.core.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
/** Supported directions for lineage queries. */
2222
public enum LineageDirection {

polaris-core/src/main/java/org/apache/polaris/core/lineage/LineageEdge.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/LineageEdge.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.core.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
import java.util.Objects;
2222

polaris-core/src/main/java/org/apache/polaris/core/lineage/LineageFieldMapping.java renamed to extensions/lineage/src/main/java/org/apache/polaris/extensions/lineage/LineageFieldMapping.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* specific language governing permissions and limitations
1717
* under the License.
1818
*/
19-
package org.apache.polaris.core.lineage;
19+
package org.apache.polaris.extensions.lineage;
2020

2121
import java.util.Objects;
2222

0 commit comments

Comments
 (0)