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

Lines changed: 2 additions & 2 deletions
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
public static void processCommandLineArgs() {
4546
if (!processedCommandLineArgs) {
4647
String[] args = Ide.getIdeArgs().getArgs();
4748
boolean persist = ConnectionHelperPreferenceModel.getInstance().isPersistCommandLineConnections();
4849
for (String arg : 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
public static void processPotentialConnectionRequest(String arg) {
6161
processPotentialConnectionArgument(arg, ConnectionHelperPreferenceModel.getInstance().isPersistExternalConnectionServerConnections());

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

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,17 @@
1616

1717
package oracle.db.example.sqldeveloper.extension.connectionHelper;
1818

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

2531
/**
2632
* ConnectionHelperAddin
@@ -30,13 +36,10 @@
3036
*/
3137
public class ConnectionHelperAddin implements Addin {
3238

33-
/* (non-Javadoc)
34-
* @see oracle.ide.Addin#initialize()
35-
*/
3639
@Override
3740
public void initialize() {
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
public void mainWindowOpened(IdeEvent e) {
48-
if (ConnectionHelperPreferenceModel.getInstance().isAcceptCommandLineConnections()) {
51+
ConnectionHelperPreferenceModel model = 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
public void mainWindowClosing(IdeEvent e) {} // Don't care
6064
});
6165
}
66+
67+
private void addPreferenceListener() {
68+
ConnectionHelperPreferenceModel.getInstance().addStructureChangeListener(new StructureChangeListener() {
69+
@Override
70+
public void structureValuesChanged(StructureChangeEvent e) {
71+
for (ChangeInfo change : e.getChangeDetails()) {
72+
switch(change.getPropertyName()) {
73+
case COMMAND_LINE_ACCEPT_CONN:
74+
if (change.getNewValueAsBoolean()) {
75+
ConnectionHelper.processCommandLineArgs();
76+
}
77+
break;
78+
case EXT_CONN_SVR_AUTOSTART:
79+
if (change.getNewValueAsBoolean()) {
80+
ConnectionHelperServer.start();
81+
}
82+
break;
83+
case EXT_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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@
2929
*/
3030
public class ConnectionHelperPreferenceModel extends HashStructureAdapter {
3131

32-
private static final String DATA_KEY = ConnectionHelperPreferenceModel.class.getName();
32+
static final String DATA_KEY = ConnectionHelperPreferenceModel.class.getName();
3333

34-
private static final String COMMAND_LINE_ACCEPT_CONN = "COMMAND_LINE_ACCEPT_CONN"; //$NON-NLS-1$
35-
private static final String COMMAND_LINE_PERSIST_CONN = "COMMAND_LINE_PERSIST_CONN"; //$NON-NLS-1$
34+
static final String COMMAND_LINE_ACCEPT_CONN = "COMMAND_LINE_ACCEPT_CONN"; //$NON-NLS-1$
35+
static final String COMMAND_LINE_PERSIST_CONN = "COMMAND_LINE_PERSIST_CONN"; //$NON-NLS-1$
3636

37-
private static final String EXT_CONN_SVR_PORT = "EXT_CONN_SVR_PORT"; //$NON-NLS-1$
38-
private static final Integer EXT_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-
private static final String EXT_CONN_SVR_AUTOSTART = "EXT_CONN_SVR_AUTOSTART"; //$NON-NLS-1$
40-
private static final String EXT_CONN_SVR_PERSIST_CONN = "EXT_CONN_SVR_PERSIST_CONN"; //$NON-NLS-1$
37+
static final String EXT_CONN_SVR_PORT = "EXT_CONN_SVR_PORT"; //$NON-NLS-1$
38+
static final Integer EXT_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+
static final String EXT_CONN_SVR_AUTOSTART = "EXT_CONN_SVR_AUTOSTART"; //$NON-NLS-1$
40+
static final String EXT_CONN_SVR_PERSIST_CONN = "EXT_CONN_SVR_PERSIST_CONN"; //$NON-NLS-1$
4141

4242
private ConnectionHelperPreferenceModel(HashStructure hash) {
4343
super(hash);

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

Lines changed: 10 additions & 10 deletions
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
final FieldLayoutBuilder builder = new FieldLayoutBuilder(this);
7777
builder.setAlignLabelsLeft(true);

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

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,12 @@ public class ConnectionHelperServer {
4343
private static final String NAME_TEMPLATE = "%s-%d"; //$NON-NLS-1$
4444

4545
public static void start() {
46-
stop();
47-
int port = ConnectionHelperPreferenceModel.getInstance().getExternalConnectionServerPort();
48-
serverTask = new ServerTask(String.format(NAME_TEMPLATE, ConnectionHelperServer.class.getSimpleName(), port), port);
49-
listening = true;
50-
RaptorTaskManager.getInstance().addTask(serverTask);
46+
if (!listening) {
47+
int port = ConnectionHelperPreferenceModel.getInstance().getExternalConnectionServerPort();
48+
serverTask = new ServerTask(String.format(NAME_TEMPLATE, ConnectionHelperServer.class.getSimpleName(), port), port);
49+
listening = true;
50+
RaptorTaskManager.getInstance().addTask(serverTask);
51+
}
5152
}
5253

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

61+
public static boolean isRunning() {
62+
return listening && null == serverTask;
63+
}
64+
6065
private static class ServerTask extends RaptorTask<Void> {
6166
private int port;
6267
private ServerSocket socket; // reference for cancel()
@@ -73,6 +78,8 @@ public ServerTask(String name, int port) {
7378
public boolean cancel() {
7479
if (socket != null) {
7580
try {
81+
listening = false;
82+
serverTask = null;
7683
socket.close();
7784
} catch (IOException e) {
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
ConnectionHelperTask helperTask = new ConnectionHelperTask(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-
public static TaskException asTaskException(Throwable t) {
157+
private static TaskException asTaskException(Throwable t) {
149158
if (t instanceof TaskException) {
150159
return (TaskException)t;
151160
} else {

0 commit comments

Comments
 (0)