Skip to content

Commit 7f190da

Browse files
carovelcarovel-lg
andauthored
Adding database input to driver session (#27)
Co-authored-by: carolinavelasquez <[email protected]>
1 parent 8a03992 commit 7f190da

File tree

4 files changed

+44
-11
lines changed

4 files changed

+44
-11
lines changed

database/neo4j/src/main/java/com/albertoventurini/graphdbplugin/database/neo4j/bolt/Neo4jBoltConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class Neo4jBoltConfiguration {
1717
public static final String AUTH_TYPE = "authType";
1818
public static final String USER = "user";
1919
public static final String PASSWORD = "password";
20+
public static final String DATABASE = "database";
2021

2122
private final Map<String, String> configuration;
2223

@@ -32,6 +33,7 @@ public Integer getPort() {
3233
return Integer.valueOf(configuration.getOrDefault(PORT, "7687"));
3334
}
3435

36+
public String getDatabase() { return configuration.get(DATABASE); }
3537
public String getUser() {
3638
return configuration.get(USER);
3739
}

database/neo4j/src/main/java/com/albertoventurini/graphdbplugin/database/neo4j/bolt/Neo4jBoltDatabase.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.neo4j.driver.Record;
1818
import org.neo4j.driver.Result;
1919
import org.neo4j.driver.Session;
20+
import org.neo4j.driver.SessionConfig;
2021
import org.neo4j.driver.exceptions.ClientException;
2122

2223
import java.nio.channels.UnresolvedAddressException;
@@ -30,6 +31,7 @@ public class Neo4jBoltDatabase implements GraphDatabaseApi {
3031

3132
private final String url;
3233
private final AuthToken auth;
34+
private final SessionConfig dbConfig;
3335

3436
public Neo4jBoltDatabase(Map<String, String> configuration) {
3537
this(new Neo4jBoltConfiguration(configuration));
@@ -59,6 +61,12 @@ public Neo4jBoltDatabase(Neo4jBoltConfiguration configuration) {
5961
} else {
6062
auth = AuthTokens.none();
6163
}
64+
65+
if (configuration.getDatabase() != null) {
66+
dbConfig = SessionConfig.forDatabase(configuration.getDatabase());
67+
} else {
68+
dbConfig = SessionConfig.defaultConfig();
69+
}
6270
}
6371

6472
@Override
@@ -72,7 +80,7 @@ public GraphQueryResult execute(String query, Map<String, Object> statementParam
7280
// TODO: driver can be instantiated when this object is constructed. No need to create a new driver every time a query is executed.
7381
Driver driver = GraphDatabase.driver(url, auth);
7482
try {
75-
try (Session session = driver.session()) {
83+
try (Session session = driver.session(dbConfig)) {
7684

7785
Neo4jBoltBuffer buffer = new Neo4jBoltBuffer();
7886

ui/jetbrains/src/main/java/com/albertoventurini/graphdbplugin/jetbrains/ui/datasource/interactions/neo4j/bolt/Neo4jBoltDataSourceDialog.form

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
<properties/>
4646
<border type="none"/>
4747
<children>
48-
<grid id="ab71c" layout-manager="GridLayoutManager" row-count="7" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
48+
<grid id="ab71c" layout-manager="GridLayoutManager" row-count="8" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
4949
<margin top="0" left="0" bottom="0" right="0"/>
5050
<constraints>
5151
<tabbedpane title="General"/>
@@ -63,15 +63,15 @@
6363
</component>
6464
<component id="8ff6" class="javax.swing.JLabel">
6565
<constraints>
66-
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
66+
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
6767
</constraints>
6868
<properties>
6969
<text value="User"/>
7070
</properties>
7171
</component>
7272
<component id="43517" class="javax.swing.JLabel">
7373
<constraints>
74-
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
74+
<grid row="6" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
7575
</constraints>
7676
<properties>
7777
<text value="Password"/>
@@ -87,19 +87,19 @@
8787
</component>
8888
<component id="38ac4" class="com.intellij.ui.components.JBTextField" binding="userField">
8989
<constraints>
90-
<grid row="4" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
90+
<grid row="5" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
9191
</constraints>
9292
<properties/>
9393
</component>
9494
<component id="bb1eb" class="com.intellij.ui.components.JBPasswordField" binding="passwordField">
9595
<constraints>
96-
<grid row="5" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
96+
<grid row="6" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
9797
</constraints>
9898
<properties/>
9999
</component>
100100
<component id="c6d40" class="javax.swing.JButton" binding="testConnectionButton" default-binding="true">
101101
<constraints>
102-
<grid row="6" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
102+
<grid row="7" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
103103
</constraints>
104104
<properties>
105105
<text value="Test connection"/>
@@ -124,7 +124,7 @@
124124
<grid id="d111d" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
125125
<margin top="0" left="0" bottom="0" right="0"/>
126126
<constraints>
127-
<grid row="6" column="2" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
127+
<grid row="7" column="2" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
128128
</constraints>
129129
<properties/>
130130
<border type="none"/>
@@ -156,7 +156,7 @@
156156
</grid>
157157
<component id="681df" class="javax.swing.JLabel">
158158
<constraints>
159-
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
159+
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
160160
</constraints>
161161
<properties>
162162
<text value="Authentication"/>
@@ -188,7 +188,7 @@
188188
</component>
189189
<component id="f5648" class="javax.swing.JComboBox" binding="authTypeComboBox" default-binding="true">
190190
<constraints>
191-
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
191+
<grid row="4" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
192192
</constraints>
193193
<properties>
194194
<model>
@@ -197,6 +197,22 @@
197197
</model>
198198
</properties>
199199
</component>
200+
<component id="f550a" class="javax.swing.JLabel">
201+
<constraints>
202+
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
203+
</constraints>
204+
<properties>
205+
<text value="Database"/>
206+
</properties>
207+
</component>
208+
<component id="1ee31" class="com.intellij.ui.components.JBTextField" binding="databaseField">
209+
<constraints>
210+
<grid row="3" column="1" row-span="1" col-span="2" vsize-policy="3" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
211+
</constraints>
212+
<properties>
213+
<text value=""/>
214+
</properties>
215+
</component>
200216
</children>
201217
</grid>
202218
</children>

ui/jetbrains/src/main/java/com/albertoventurini/graphdbplugin/jetbrains/ui/datasource/interactions/neo4j/bolt/Neo4jBoltDataSourceDialog.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class Neo4jBoltDataSourceDialog extends DataSourceDialog {
3838
private JBTextField hostField;
3939
private JBTextField portField;
4040
private JBTextField userField;
41+
private JBTextField databaseField;
4142
private JBPasswordField passwordField;
4243
private JButton testConnectionButton;
4344
private JPanel loadingPanel;
@@ -95,6 +96,7 @@ protected JComponent createCenterPanel() {
9596
String host = conf.get(Neo4jBoltConfiguration.HOST);
9697
String port = conf.get(Neo4jBoltConfiguration.PORT);
9798
String authType = conf.get(Neo4jBoltConfiguration.AUTH_TYPE);
99+
String database = conf.get(Neo4jBoltConfiguration.DATABASE);
98100
String user = conf.get(Neo4jBoltConfiguration.USER);
99101
String password = conf.get(Neo4jBoltConfiguration.PASSWORD);
100102

@@ -116,6 +118,7 @@ protected JComponent createCenterPanel() {
116118

117119
hostField.setText(host);
118120
portField.setText(port);
121+
databaseField.setText(database);
119122
userField.setText(user);
120123
passwordField.setText(password);
121124
}
@@ -146,6 +149,7 @@ public DataSourceApi constructDataSource() {
146149
configuration.put(Neo4jBoltConfiguration.PORT, data.port);
147150
configuration.put(Neo4jBoltConfiguration.USER, data.user);
148151
configuration.put(Neo4jBoltConfiguration.PASSWORD, data.password);
152+
configuration.put(Neo4jBoltConfiguration.DATABASE, data.database);
149153

150154
return dataSourcesComponent.getDataSourceContainer().createDataSource(
151155
dataSourceToEdit,
@@ -176,6 +180,7 @@ private Data extractData() {
176180
hostField.getText(),
177181
portField.getText(),
178182
authTypeComboBox.getItemAt(authTypeComboBox.getSelectedIndex()),
183+
databaseField.getText(),
179184
userField.getText(),
180185
String.valueOf(passwordField.getPassword()) // TODO: use password API?
181186
);
@@ -192,15 +197,17 @@ private static final class Data {
192197
private final String host;
193198
private final String port;
194199
private final String authType;
200+
private final String database;
195201
private final String user;
196202
private final String password;
197203

198-
public Data(String dataSourceName, String protocol, String host, String port, String authType, String user, String password) {
204+
public Data(String dataSourceName, String protocol, String host, String port, String authType, String database, String user, String password) {
199205
this.dataSourceName = dataSourceName;
200206
this.protocol = protocol;
201207
this.host = host;
202208
this.port = port;
203209
this.authType = authType;
210+
this.database = database;
204211
this.user = user;
205212
this.password = password;
206213
}

0 commit comments

Comments
 (0)