Skip to content

Commit 6bcd97c

Browse files
committed
SQLDEV-2076 More cleanup
1 parent ff3adb3 commit 6bcd97c

File tree

5 files changed

+77
-33
lines changed

5 files changed

+77
-33
lines changed

sqldeveloper/extension/java/ConnectionHelper/src/oracle/db/example/sqldeveloper/extension/connectionHelper/ConnectionHelper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ public class ConnectionHelper {
4040

4141
/**
4242
* Process each command line argument as a potential connection request
43+
* looking for -conName=user[/[pw]]@host:port(:sid|/svc)[#role]
4344
*/
4445
publicstaticvoidprocessCommandLineArgs() {
4546
if (!processedCommandLineArgs) {
4647
String[] args = Ide.getIdeArgs().getArgs();
4748
booleanpersist = ConnectionHelperPreferenceModel.getInstance().isPersistCommandLineConnections();
4849
for (Stringarg : args) {
49-
System.out.println(arg);
5050
ConnectionHelper.processPotentialConnectionArgument(arg, persist);
5151
}
5252
processedCommandLineArgs = true;
@@ -55,7 +55,7 @@ public static void processCommandLineArgs() {
5555

5656
/**
5757
* Process the string received by the ConnectionHelperServer as a potential connection request
58-
* @param arg
58+
* @param arg connection info. format = -conName=user[/[pw]]@host:port(:sid|/svc)[#role]
5959
*/
6060
publicstaticvoidprocessPotentialConnectionRequest(Stringarg) {
6161
processPotentialConnectionArgument(arg, ConnectionHelperPreferenceModel.getInstance().isPersistExternalConnectionServerConnections());

sqldeveloper/extension/java/ConnectionHelper/src/oracle/db/example/sqldeveloper/extension/connectionHelper/ConnectionHelperAddin.java

+43-8
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,17 @@
1616

1717
packageoracle.db.example.sqldeveloper.extension.connectionHelper;
1818

19-
importoracle.dbtools.util.Logger;
19+
importstaticoracle.db.example.sqldeveloper.extension.connectionHelper.ConnectionHelperPreferenceModel.COMMAND_LINE_ACCEPT_CONN;
20+
importstaticoracle.db.example.sqldeveloper.extension.connectionHelper.ConnectionHelperPreferenceModel.EXT_CONN_SVR_AUTOSTART;
21+
importstaticoracle.db.example.sqldeveloper.extension.connectionHelper.ConnectionHelperPreferenceModel.EXT_CONN_SVR_PORT;
22+
2023
importoracle.ide.Addin;
2124
importoracle.ide.Ide;
2225
importoracle.ide.IdeEvent;
2326
importoracle.ide.IdeListener;
27+
importoracle.javatools.data.ChangeInfo;
28+
importoracle.javatools.data.StructureChangeEvent;
29+
importoracle.javatools.data.StructureChangeListener;
2430

2531
/**
2632
* ConnectionHelperAddin
@@ -30,13 +36,10 @@
3036
*/
3137
publicclassConnectionHelperAddinimplementsAddin {
3238

33-
/* (non-Javadoc)
34-
* @see oracle.ide.Addin#initialize()
35-
*/
3639
@Override
3740
publicvoidinitialize() {
38-
Logger.info(getClass(), "Initialize"); // TODO REMOVE
39-
addIdeListener();// Don't do any checking now, need system initialized first.
41+
addIdeListener();
42+
addPreferenceListener();
4043
}
4144

4245
@SuppressWarnings("deprecation")
@@ -45,10 +48,11 @@ private void addIdeListener() {
4548

4649
@Override
4750
publicvoidmainWindowOpened(IdeEvente) {
48-
if (ConnectionHelperPreferenceModel.getInstance().isAcceptCommandLineConnections()) {
51+
ConnectionHelperPreferenceModelmodel = ConnectionHelperPreferenceModel.getInstance();
52+
if (model.isAcceptCommandLineConnections()) {
4953
ConnectionHelper.processCommandLineArgs();
5054
}
51-
if (ConnectionHelperPreferenceModel.getInstance().isAutostartExternalConnectionServer()) {
55+
if (model.isAutostartExternalConnectionServer()) {
5256
ConnectionHelperServer.start();
5357
}
5458
}
@@ -59,4 +63,35 @@ public void addinsLoaded(IdeEvent e) {} // No longer fired see IdeEvent.IDE_ADDI
5963
publicvoidmainWindowClosing(IdeEvente) {} // Don't care
6064
});
6165
}
66+
67+
privatevoidaddPreferenceListener() {
68+
ConnectionHelperPreferenceModel.getInstance().addStructureChangeListener(newStructureChangeListener() {
69+
@Override
70+
publicvoidstructureValuesChanged(StructureChangeEvente) {
71+
for (ChangeInfochange : e.getChangeDetails()) {
72+
switch(change.getPropertyName()) {
73+
caseCOMMAND_LINE_ACCEPT_CONN:
74+
if (change.getNewValueAsBoolean()) {
75+
ConnectionHelper.processCommandLineArgs();
76+
}
77+
break;
78+
caseEXT_CONN_SVR_AUTOSTART:
79+
if (change.getNewValueAsBoolean()) {
80+
ConnectionHelperServer.start();
81+
}
82+
break;
83+
caseEXT_CONN_SVR_PORT:
84+
if (ConnectionHelperServer.isRunning()) {
85+
ConnectionHelperServer.stop();
86+
ConnectionHelperServer.start();
87+
}
88+
break;
89+
default:
90+
break; // nothing
91+
}
92+
}
93+
}
94+
});
95+
}
96+
6297
}

sqldeveloper/extension/java/ConnectionHelper/src/oracle/db/example/sqldeveloper/extension/connectionHelper/ConnectionHelperPreferenceModel.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@
2929
*/
3030
publicclassConnectionHelperPreferenceModelextendsHashStructureAdapter {
3131

32-
privatestaticfinalStringDATA_KEY = ConnectionHelperPreferenceModel.class.getName();
32+
staticfinalStringDATA_KEY = ConnectionHelperPreferenceModel.class.getName();
3333

34-
privatestaticfinalStringCOMMAND_LINE_ACCEPT_CONN = "COMMAND_LINE_ACCEPT_CONN"; //$NON-NLS-1$
35-
privatestaticfinalStringCOMMAND_LINE_PERSIST_CONN = "COMMAND_LINE_PERSIST_CONN"; //$NON-NLS-1$
34+
staticfinalStringCOMMAND_LINE_ACCEPT_CONN = "COMMAND_LINE_ACCEPT_CONN"; //$NON-NLS-1$
35+
staticfinalStringCOMMAND_LINE_PERSIST_CONN = "COMMAND_LINE_PERSIST_CONN"; //$NON-NLS-1$
3636

37-
privatestaticfinalStringEXT_CONN_SVR_PORT = "EXT_CONN_SVR_PORT"; //$NON-NLS-1$
38-
privatestaticfinalIntegerEXT_CONN_SVR_DEFAULT_PORT = 51521; // 49152-65535 https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=1&page=24
39-
privatestaticfinalStringEXT_CONN_SVR_AUTOSTART = "EXT_CONN_SVR_AUTOSTART"; //$NON-NLS-1$
40-
privatestaticfinalStringEXT_CONN_SVR_PERSIST_CONN = "EXT_CONN_SVR_PERSIST_CONN"; //$NON-NLS-1$
37+
staticfinalStringEXT_CONN_SVR_PORT = "EXT_CONN_SVR_PORT"; //$NON-NLS-1$
38+
staticfinalIntegerEXT_CONN_SVR_DEFAULT_PORT = 51521; // 49152-65535 https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=1&page=24
39+
staticfinalStringEXT_CONN_SVR_AUTOSTART = "EXT_CONN_SVR_AUTOSTART"; //$NON-NLS-1$
40+
staticfinalStringEXT_CONN_SVR_PERSIST_CONN = "EXT_CONN_SVR_PERSIST_CONN"; //$NON-NLS-1$
4141

4242
privateConnectionHelperPreferenceModel(HashStructurehash) {
4343
super(hash);

sqldeveloper/extension/java/ConnectionHelper/src/oracle/db/example/sqldeveloper/extension/connectionHelper/ConnectionHelperPreferencePanel.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,16 @@ private void layoutControls() {
6262
// The more I think about it, I like this better than buttons. Maybe better than
6363
// the listener but the listener would also demonstrate how to listen for preference
6464
// changes.
65-
clAcceptConn.addActionListener(e -> {
66-
if (clAcceptConn.isSelected()) {
67-
ConnectionHelper.processCommandLineArgs();
68-
}
69-
});
70-
svrAutostart.addActionListener(e -> {
71-
if (svrAutostart.isSelected()) {
72-
ConnectionHelperServer.start();
73-
}
74-
});
65+
// clAcceptConn.addActionListener(e -> {
66+
// if (clAcceptConn.isSelected()) {
67+
// ConnectionHelper.processCommandLineArgs();
68+
// }
69+
// });
70+
// svrAutostart.addActionListener(e -> {
71+
// if (svrAutostart.isSelected()) {
72+
// ConnectionHelperServer.start();
73+
// }
74+
// });
7575

7676
finalFieldLayoutBuilderbuilder = newFieldLayoutBuilder(this);
7777
builder.setAlignLabelsLeft(true);

sqldeveloper/extension/java/ConnectionHelper/src/oracle/db/example/sqldeveloper/extension/connectionHelper/ConnectionHelperServer.java

+15-6
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,12 @@ public class ConnectionHelperServer {
4343
privatestaticfinalStringNAME_TEMPLATE = "%s-%d"; //$NON-NLS-1$
4444

4545
publicstaticvoidstart() {
46-
stop();
47-
intport = ConnectionHelperPreferenceModel.getInstance().getExternalConnectionServerPort();
48-
serverTask = newServerTask(String.format(NAME_TEMPLATE, ConnectionHelperServer.class.getSimpleName(), port), port);
49-
listening = true;
50-
RaptorTaskManager.getInstance().addTask(serverTask);
46+
if (!listening) {
47+
intport = ConnectionHelperPreferenceModel.getInstance().getExternalConnectionServerPort();
48+
serverTask = newServerTask(String.format(NAME_TEMPLATE, ConnectionHelperServer.class.getSimpleName(), port), port);
49+
listening = true;
50+
RaptorTaskManager.getInstance().addTask(serverTask);
51+
}
5152
}
5253

5354
publicstaticvoidstop() {
@@ -57,6 +58,10 @@ public static void stop() {
5758
}
5859
}
5960

61+
publicstaticbooleanisRunning() {
62+
returnlistening && null == serverTask;
63+
}
64+
6065
privatestaticclassServerTaskextendsRaptorTask<Void> {
6166
privateintport;
6267
privateServerSocketsocket; // reference for cancel()
@@ -73,6 +78,8 @@ public ServerTask(String name, int port) {
7378
publicbooleancancel() {
7479
if (socket != null) {
7580
try {
81+
listening = false;
82+
serverTask = null;
7683
socket.close();
7784
} catch (IOExceptione) {
7885
Logger.ignore(getClass(), e);
@@ -88,6 +95,8 @@ protected Void doWork() throws TaskException {
8895
while (listening) {
8996
checkCanProceed();
9097
this.setMessage("Waiting for connection");
98+
// accept() listens for a connection to be made to this socket and accepts it.
99+
// The method blocks until a connection is made.
91100
ConnectionHelperTaskhelperTask = newConnectionHelperTask(serverSocket.accept());
92101
this.setMessage("Initializing ConnectionHelperTask");
93102
RaptorTaskManager.getInstance().addTask(helperTask);
@@ -145,7 +154,7 @@ protected Void doWork() throws TaskException {
145154

146155
}
147156

148-
publicstaticTaskExceptionasTaskException(Throwablet) {
157+
privatestaticTaskExceptionasTaskException(Throwablet) {
149158
if (tinstanceofTaskException) {
150159
return (TaskException)t;
151160
} else {

0 commit comments

Comments
 (0)
close