Skip to content

Commit 034ab18

Browse files
authored
chore: merge release into master (#3879)
2 parents 003485a + e15867b commit 034ab18

133 files changed

Lines changed: 1445 additions & 971 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/create-image.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ jobs:
3939
# Fetch all tags
4040
fetch-depth: 0
4141
- name: Log in to the Container registry
42-
uses: docker/login-action@v3
42+
uses: docker/login-action@v4
4343
with:
4444
registry: ${{ env.REGISTRY }}
4545
username: ${{ github.actor }}
4646
password: ${{ secrets.GITHUB_TOKEN }}
4747

4848
- name: Extract metadata (tags, labels) for Docker
4949
id: meta
50-
uses: docker/metadata-action@v5
50+
uses: docker/metadata-action@v6
5151
with:
5252
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
5353
tags: |
@@ -81,15 +81,15 @@ jobs:
8181
fetch-depth: 0
8282

8383
- name: Log in to the Container registry
84-
uses: docker/login-action@v3
84+
uses: docker/login-action@v4
8585
with:
8686
registry: ${{ env.REGISTRY }}
8787
username: ${{ github.actor }}
8888
password: ${{ secrets.GITHUB_TOKEN }}
8989

9090
- name: Extract metadata (tags, labels) for Docker
9191
id: meta
92-
uses: docker/metadata-action@v5
92+
uses: docker/metadata-action@v6
9393
with:
9494
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
9595
tags: |

.github/workflows/test_cypress.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ jobs:
5858
start: bash ./scripts/run_e2e_all.sh
5959
wait-on: "http://localhost:8000"
6060

61-
- uses: actions/upload-artifact@v4
61+
- uses: actions/upload-artifact@v5
6262
if: failure()
6363
with:
6464
name: cypress-screenshots
6565
path: cypress/screenshots
6666
if-no-files-found: ignore
6767

68-
- uses: actions/upload-artifact@v4
68+
- uses: actions/upload-artifact@v5
6969
if: failure()
7070
with:
7171
name: cypress-videos

autodoc/src/main/java/com/bakdata/conquery/Constants.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import com.bakdata.conquery.models.config.CSVConfig;
3939
import com.bakdata.conquery.models.config.ClusterConfig;
4040
import com.bakdata.conquery.models.config.ConqueryConfig;
41-
import com.bakdata.conquery.models.config.DatabaseConfig;
41+
import com.bakdata.conquery.models.config.DatabaseConnectionConfig;
4242
import com.bakdata.conquery.models.config.Dialect;
4343
import com.bakdata.conquery.models.config.FrontendConfig;
4444
import com.bakdata.conquery.models.config.LocaleConfig;
@@ -129,7 +129,7 @@ public class Constants {
129129
.otherClass(MinaConfig.class)
130130
.otherClass(FrontendConfig.CurrencyConfig.class)
131131
.otherClass(XodusConfig.class)
132-
.otherClasses(List.of(SqlConnectorConfig.class, DatabaseConfig.class, Dialect.class))
132+
.otherClasses(List.of(SqlConnectorConfig.class, DatabaseConnectionConfig.class, Dialect.class))
133133
.hide(Charset.class)
134134
.hide(Currency.class)
135135
.hide(InetAddress.class)

backend/pom.xml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<properties>
1414
<mock-server.version>5.11.1</mock-server.version>
1515
<apache-poi.version>5.4.0</apache-poi.version>
16-
<apache-arrow.version>16.0.0</apache-arrow.version>
16+
<apache-arrow.version>16.0.0</apache-arrow.version>
1717
<apache-parquet.version>1.12.3</apache-parquet.version>
1818
<prometheus-metrics.version>1.3.5</prometheus-metrics.version>
1919
<openapi-generator.version>7.9.0</openapi-generator.version>
@@ -220,7 +220,7 @@
220220
<dependency>
221221
<groupId>org.apache.shiro</groupId>
222222
<artifactId>shiro-core</artifactId>
223-
<version>2.0.2</version>
223+
<version>2.1.0</version>
224224
<exclusions>
225225
<!-- All these transitive deps are already bundled in shiro core-->
226226
<exclusion>
@@ -361,25 +361,21 @@
361361
<dependency>
362362
<groupId>org.testcontainers</groupId>
363363
<artifactId>testcontainers</artifactId>
364-
<version>1.21.0</version>
365364
<scope>test</scope>
366365
</dependency>
367366
<dependency>
368367
<groupId>org.testcontainers</groupId>
369-
<artifactId>junit-jupiter</artifactId>
370-
<version>1.20.6</version>
368+
<artifactId>testcontainers-junit-jupiter</artifactId>
371369
<scope>test</scope>
372370
</dependency>
373371
<dependency>
374372
<groupId>org.testcontainers</groupId>
375-
<artifactId>postgresql</artifactId>
376-
<version>1.20.1</version>
373+
<artifactId>testcontainers-postgresql</artifactId>
377374
<scope>test</scope>
378375
</dependency>
379376
<dependency>
380377
<groupId>org.testcontainers</groupId>
381-
<artifactId>solr</artifactId>
382-
<version>1.20.6</version>
378+
<artifactId>testcontainers-solr</artifactId>
383379
<scope>test</scope>
384380
</dependency>
385381
<dependency>
@@ -431,7 +427,7 @@
431427
<dependency>
432428
<groupId>org.apache.solr</groupId>
433429
<artifactId>solr-solrj</artifactId>
434-
<version>9.8.0</version>
430+
<version>9.10.1</version>
435431
</dependency>
436432
</dependencies>
437433
</project>

backend/src/main/java/com/bakdata/conquery/Conquery.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bakdata.conquery;
22

3+
import java.time.Clock;
34
import jakarta.validation.Validator;
45

56
import ch.qos.logback.classic.Level;
@@ -39,6 +40,10 @@ public class Conquery extends Application<ConqueryConfig> {
3940

4041
private final String name;
4142

43+
protected Clock getQueryClock() {
44+
return Clock.systemDefaultZone();
45+
}
46+
4247
public Conquery() {
4348
this("Conquery");
4449
}
@@ -103,7 +108,7 @@ protected Level bootstrapLogLevel() {
103108
@Override
104109
public void run(ConqueryConfig configuration, Environment environment) throws Exception {
105110
ManagerProvider provider = configuration.getSqlConnectorConfig().isEnabled() ?
106-
new LocalManagerProvider() : new ClusterManagerProvider();
111+
new LocalManagerProvider(getQueryClock()) : new ClusterManagerProvider();
107112
Manager manager = provider.provideManager(configuration, environment);
108113

109114
ManagerNode managerNode = new ManagerNode();

backend/src/main/java/com/bakdata/conquery/commands/DistributedStandaloneCommand.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.bakdata.conquery.commands;
22

33
import java.nio.file.Path;
4+
import java.time.Clock;
45
import java.util.List;
56
import java.util.Vector;
67

@@ -13,6 +14,7 @@
1314
import io.dropwizard.core.cli.ServerCommand;
1415
import io.dropwizard.core.setup.Environment;
1516
import lombok.Getter;
17+
import lombok.Setter;
1618
import lombok.extern.slf4j.Slf4j;
1719
import net.sourceforge.argparse4j.inf.Namespace;
1820

@@ -24,6 +26,9 @@ public class DistributedStandaloneCommand extends ServerCommand<ConqueryConfig>
2426
private final List<ShardNode> shardNodes = new Vector<>();
2527
private ClusterManager manager;
2628

29+
@Setter
30+
private Clock clock = Clock.systemDefaultZone();
31+
2732
public DistributedStandaloneCommand() {
2833
super(new NoOpConquery(), "standalone", "starts a manager node and shard node(s) at the same time in a single JVM.");
2934
}
@@ -46,6 +51,7 @@ protected void run(Environment environment, Namespace namespace, ConqueryConfig
4651
for (int id = 0; id < configuration.getStandalone().getNumberOfShardNodes(); id++) {
4752

4853
ShardNode sc = new ShardNode(ShardNode.DEFAULT_NAME + id);
54+
sc.setClock(clock);
4955

5056
shardNodes.add(sc);
5157

backend/src/main/java/com/bakdata/conquery/commands/ShardNode.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bakdata.conquery.commands;
22

3+
import java.time.Clock;
34
import java.util.Collection;
45
import java.util.Queue;
56
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -36,6 +37,8 @@ public class ShardNode implements ConfiguredBundle<ConqueryConfig> {
3637
@Setter
3738
private ShardWorkers workers;
3839
private ClusterConnectionShard clusterConnection;
40+
@Setter
41+
private Clock clock = Clock.systemDefaultZone();
3942

4043
public ShardNode() {
4144
this(DEFAULT_NAME);
@@ -55,7 +58,8 @@ public void run(ConqueryConfig config, Environment environment) throws Exception
5558
workers = new ShardWorkers(
5659
config.getQueries().getExecutionPool(),
5760
internalMapperFactory,
58-
config.getQueries().getSecondaryIdSubPlanRetention()
61+
config.getQueries().getSecondaryIdSubPlanRetention(),
62+
clock
5963
);
6064

6165
lifecycle.manage(workers);

backend/src/main/java/com/bakdata/conquery/commands/StandaloneCommand.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bakdata.conquery.commands;
22

3+
import java.time.Clock;
34
import java.util.List;
45

56
import com.bakdata.conquery.mode.Manager;
@@ -15,4 +16,7 @@ public interface StandaloneCommand {
1516

1617
Environment getEnvironment();
1718

19+
void setClock(Clock clock);
20+
Clock getClock();
21+
1822
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.bakdata.conquery.mode.local;
2+
3+
import java.util.HashMap;
4+
import java.util.Map;
5+
import java.util.Objects;
6+
7+
import com.bakdata.conquery.models.datasets.Dataset;
8+
import lombok.AccessLevel;
9+
import lombok.Data;
10+
import lombok.Getter;
11+
import org.jooq.DSLContext;
12+
13+
@Data
14+
public class ConnectionManager {
15+
@Getter(AccessLevel.NONE)
16+
private final Map<String, ManagedConnection> connections = new HashMap<>();
17+
18+
public void addConnection(String name, ManagedConnection connection) {
19+
connections.put(name, connection);
20+
}
21+
22+
public DSLContext connect(Dataset dataset) {
23+
return getConnection(dataset).connect();
24+
}
25+
26+
public ManagedConnection getConnection(Dataset dataset) {
27+
return Objects.requireNonNull(connections.get(dataset.getDataSource()), () -> "No connection available for datset=%s, dataSource=%s".formatted(dataset.getName(), dataset.getDataSource()));
28+
}
29+
30+
}

backend/src/main/java/com/bakdata/conquery/mode/local/LocalManagerProvider.java

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.bakdata.conquery.mode.local;
22

3+
import java.time.Clock;
34
import java.util.Collection;
45
import java.util.Collections;
56
import java.util.List;
@@ -14,31 +15,25 @@
1415
import com.bakdata.conquery.models.worker.DatasetRegistry;
1516
import com.bakdata.conquery.models.worker.LocalNamespace;
1617
import com.bakdata.conquery.models.worker.ShardNodeInformation;
17-
import com.bakdata.conquery.sql.conversion.dialect.SqlDialectFactory;
1818
import io.dropwizard.core.setup.Environment;
19+
import lombok.RequiredArgsConstructor;
1920

21+
@RequiredArgsConstructor
2022
public class LocalManagerProvider implements ManagerProvider {
2123

2224
private static final Supplier<Collection<ShardNodeInformation>> EMPTY_NODE_PROVIDER = Collections::emptyList;
25+
private final Clock clock;
2326

24-
private final SqlDialectFactory dialectFactory;
25-
26-
public LocalManagerProvider() {
27-
this.dialectFactory = new SqlDialectFactory();
28-
}
29-
30-
public LocalManagerProvider(SqlDialectFactory dialectFactory) {
31-
this.dialectFactory = dialectFactory;
32-
}
33-
27+
@Override
3428
public DelegateManager<LocalNamespace> provideManager(ConqueryConfig config, Environment environment) {
3529

30+
final ConnectionManager connectionManager = config.getSqlConnectorConfig().toConnectionManager(environment);
31+
3632
final MetaStorage storage = new MetaStorage(config.getStorage());
3733
final InternalMapperFactory internalMapperFactory = new InternalMapperFactory(config, environment.getValidator());
38-
final NamespaceHandler<LocalNamespace> namespaceHandler = new LocalNamespaceHandler(config, internalMapperFactory, dialectFactory);
34+
final NamespaceHandler<LocalNamespace> namespaceHandler = new LocalNamespaceHandler(config, internalMapperFactory, connectionManager, clock);
3935
final DatasetRegistry<LocalNamespace> datasetRegistry = ManagerProvider.createDatasetRegistry(namespaceHandler, config, internalMapperFactory);
4036

41-
4237
return new DelegateManager<>(
4338
config,
4439
environment,

0 commit comments

Comments
 (0)