Skip to content

Commit 529131a

Browse files
authored
Merge pull request #320 from eclipse-jnosql/update-neo4j-driver
Update neo4j driver
2 parents a1703a8 + 3bc5643 commit 529131a

File tree

4 files changed

+76
-9
lines changed

4 files changed

+76
-9
lines changed

jnosql-neo4j/src/main/java/org/eclipse/jnosql/databases/neo4j/mapping/GraphManagerSupplier.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,21 @@
1414
*/
1515
package org.eclipse.jnosql.databases.neo4j.mapping;
1616

17-
import jakarta.annotation.Priority;
1817
import jakarta.enterprise.context.ApplicationScoped;
19-
import jakarta.enterprise.inject.Alternative;
2018
import jakarta.enterprise.inject.Disposes;
2119
import jakarta.enterprise.inject.Produces;
22-
import jakarta.interceptor.Interceptor;
20+
import jakarta.enterprise.inject.Typed;
2321
import org.eclipse.jnosql.communication.Settings;
2422
import org.eclipse.jnosql.databases.neo4j.communication.Neo4JConfiguration;
2523
import org.eclipse.jnosql.databases.neo4j.communication.Neo4JDatabaseManager;
26-
import org.eclipse.jnosql.databases.neo4j.communication.Neo4JDatabaseManagerFactory;
24+
import org.eclipse.jnosql.mapping.core.config.MappingConfigurations;
2725
import org.eclipse.jnosql.mapping.core.config.MicroProfileSettings;
2826

2927
import java.util.function.Supplier;
3028
import java.util.logging.Level;
3129
import java.util.logging.Logger;
3230

3331
@ApplicationScoped
34-
@Alternative
35-
@Priority(Interceptor.Priority.LIBRARY_BEFORE)
3632
class GraphManagerSupplier implements Supplier<Neo4JDatabaseManager> {
3733

3834
private static final String DATABASE_DEFAULT = "neo4j";
@@ -42,12 +38,13 @@ class GraphManagerSupplier implements Supplier<Neo4JDatabaseManager> {
4238
@Override
4339
@Produces
4440
@ApplicationScoped
41+
@Typed(Neo4JDatabaseManager.class)
4542
public Neo4JDatabaseManager get() {
4643
LOGGER.fine(() -> "Creating a Neo4JDatabaseManager bean");
4744
Settings settings = MicroProfileSettings.INSTANCE;
4845
var configuration = new Neo4JConfiguration();
49-
Neo4JDatabaseManagerFactory managerFactory = configuration.apply(settings);
50-
var database = settings.getOrDefault("database", DATABASE_DEFAULT);
46+
var managerFactory = configuration.apply(settings);
47+
var database = settings.getOrDefault(MappingConfigurations.GRAPH_DATABASE, DATABASE_DEFAULT);
5148
LOGGER.fine(() -> "Creating a Neo4JDatabaseManager bean with database: " + database);
5249
return managerFactory.apply(database);
5350
}

jnosql-neo4j/src/test/java/org/eclipse/jnosql/databases/neo4j/integration/GraphTemplateIntegrationTest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,12 @@
1717
import jakarta.inject.Inject;
1818
import org.assertj.core.api.SoftAssertions;
1919
import org.eclipse.jnosql.databases.neo4j.communication.DatabaseContainer;
20+
import org.eclipse.jnosql.databases.neo4j.communication.Neo4JConfiguration;
2021
import org.eclipse.jnosql.databases.neo4j.communication.Neo4JConfigurations;
2122
import org.eclipse.jnosql.databases.neo4j.mapping.Neo4JTemplate;
2223
import org.eclipse.jnosql.mapping.Database;
2324
import org.eclipse.jnosql.mapping.core.Converters;
25+
import org.eclipse.jnosql.mapping.core.config.MappingConfigurations;
2426
import org.eclipse.jnosql.mapping.graph.Edge;
2527
import org.eclipse.jnosql.mapping.graph.GraphTemplate;
2628
import org.eclipse.jnosql.mapping.reflection.Reflections;
@@ -54,6 +56,8 @@ public class GraphTemplateIntegrationTest {
5456
DatabaseContainer.INSTANCE.host();
5557
System.setProperty(Neo4JConfigurations.URI.get(), DatabaseContainer.INSTANCE.host());
5658
System.setProperty(Neo4JConfigurations.DATABASE.get(), "neo4j");
59+
System.setProperty(MappingConfigurations.GRAPH_PROVIDER.get(), Neo4JConfiguration.class.getName());
60+
System.setProperty(MappingConfigurations.GRAPH_DATABASE.get(), "neo4j");
5761
}
5862

5963
@Inject

jnosql-neo4j/src/test/java/org/eclipse/jnosql/databases/neo4j/integration/RepositoryIntegrationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public class RepositoryIntegrationTest {
5151
}
5252

5353
@Inject
54-
private MagazineRepository repository;
54+
private MagazineRepository repository;
5555

5656
@Test
5757
void shouldSave() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
* Copyright (c) 2025 Contributors to the Eclipse Foundation
3+
* All rights reserved. This program and the accompanying materials
4+
* are made available under the terms of the Eclipse Public License v1.0
5+
* and Apache License v2.0 which accompanies this distribution.
6+
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
7+
* and the Apache License v2.0 is available at http://www.opensource.org/licenses/apache2.0.php.
8+
*
9+
* You may elect to redistribute this code under either of these licenses.
10+
*
11+
* Contributors:
12+
*
13+
* Otavio Santana
14+
*/
15+
package org.eclipse.jnosql.databases.tinkerpop.communication;
16+
17+
import org.apache.tinkerpop.gremlin.structure.Graph;
18+
import org.eclipse.jnosql.communication.Settings;
19+
import org.eclipse.jnosql.communication.semistructured.DatabaseConfiguration;
20+
import org.eclipse.jnosql.communication.semistructured.DatabaseManager;
21+
import org.eclipse.jnosql.communication.semistructured.DatabaseManagerFactory;
22+
23+
import java.util.logging.Logger;
24+
25+
/**
26+
* Adapter class that integrates both DatabaseConfiguration and GraphConfiguration.
27+
* This class is responsible for creating a DatabaseManagerFactory based on the provided settings.
28+
* It utilizes the GraphConfiguration SPI to create a Graph instance and then wraps it in a DatabaseManagerFactory.
29+
*/
30+
public class DatabaseConfigurationAdapter implements DatabaseConfiguration {
31+
32+
33+
private static final Logger LOGGER = Logger.getLogger(DatabaseConfigurationAdapter.class.getName());
34+
35+
@Override
36+
public DatabaseManagerFactory apply(Settings settings) {
37+
LOGGER.fine(() -> "Creating graph database manager based on settings and GraphConfiguration SPI");
38+
var configuration = GraphConfiguration.getConfiguration();
39+
var graph = configuration.apply(settings);
40+
return GraphDatabaseManagerFactory.of(graph);
41+
}
42+
43+
static class GraphDatabaseManagerFactory implements DatabaseManagerFactory {
44+
45+
private final Graph graph;
46+
47+
private GraphDatabaseManagerFactory(Graph graph) {
48+
this.graph = graph;
49+
}
50+
51+
@Override
52+
public void close() {
53+
54+
}
55+
56+
@Override
57+
public DatabaseManager apply(String database) {
58+
LOGGER.fine(() -> "Creating graph database manager where we will ignore the database name: " + database);
59+
return TinkerpopGraphDatabaseManager.of(graph);
60+
}
61+
62+
public static GraphDatabaseManagerFactory of(Graph graph) {
63+
return new GraphDatabaseManagerFactory(graph);
64+
}
65+
}
66+
}

0 commit comments

Comments
 (0)