Skip to content

Commit 310628c

Browse files
No Globals
Removed the global getter for VCellApiConnection, forcing proper communication methods instead of bypassing layers.
1 parent ecb19b6 commit 310628c

6 files changed

Lines changed: 23 additions & 19 deletions

File tree

vcell-apiclient/src/main/java/org/vcell/api/client/VCellApiClient.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,11 +121,7 @@ public String handleResponse(HttpResponse response) throws HttpResponseException
121121
}
122122

123123
public VCellApiClient(String host, int port, String pathPrefix_v0) throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException {
124-
this(host, port, pathPrefix_v0, false, false);
125-
}
126-
127-
public VCellApiClient(String host, int port, String pathPrefix_v0, boolean bIgnoreCertProblems, boolean bIgnoreHostMismatch) throws KeyManagementException, NoSuchAlgorithmException, KeyStoreException{
128-
this(host, port, pathPrefix_v0, false, bIgnoreCertProblems, bIgnoreHostMismatch);
124+
this(host, port, pathPrefix_v0, false, false, false);
129125
}
130126

131127
public VCellApiClient(String host, int port, String pathPrefix_v0, boolean bSkipSSL, boolean bIgnoreCertProblems, boolean bIgnoreHostMismatch) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException {

vcell-apiclient/src/main/java/org/vcell/api/server/ClientServerManager.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import cbit.vcell.simdata.VCDataManager;
2424
import org.apache.logging.log4j.LogManager;
2525
import org.apache.logging.log4j.Logger;
26+
import org.vcell.api.client.VCellApiClient;
2627
import org.vcell.api.messaging.RemoteProxyVCellConnectionFactory;
2728
import org.vcell.api.utils.Auth0ConnectionUtils;
2829
import org.vcell.util.Compare;
@@ -822,4 +823,11 @@ void setDisconnected() {
822823
setConnectionStatus(new ClientConnectionStatus(getClientServerInfo().getUsername(), getClientServerInfo().getApihost(), getClientServerInfo().getApiport(), ConnectionStatus.DISCONNECTED));
823824
}
824825

826+
public VCellApiClient getVCellApiClient(){
827+
if (vcellConnectionFactory instanceof RemoteProxyVCellConnectionFactory remoteProxyVCellConnectionFactory){
828+
return remoteProxyVCellConnectionFactory.getVCellApiClient();
829+
}
830+
throw new UnsupportedOperationException("This function should only be called with RemoteProxyVCellConnectionFactory");
831+
}
832+
825833
}

vcell-client/src/main/java/cbit/vcell/client/ClientRequestManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2833,7 +2833,7 @@ public AsynchMessageManager getAsynchMessageManager() {
28332833
return getClientServerManager().getAsynchMessageManager();
28342834
}
28352835

2836-
private ClientServerManager getClientServerManager() {
2836+
public ClientServerManager getClientServerManager() {
28372837
// shorthand
28382838
return getVcellClient().getClientServerManager();
28392839
}

vcell-client/src/main/java/cbit/vcell/client/VCellClient.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,6 @@ public RequestManager getRequestManager() {
144144
return requestManager;
145145
}
146146

147-
public VCellApiClient getVCellApiClient(){
148-
if (vcellConnectionFactory instanceof RemoteProxyVCellConnectionFactory){
149-
return ((RemoteProxyVCellConnectionFactory) vcellConnectionFactory).getVCellApiClient();
150-
}
151-
throw new RuntimeException("Can not get VCell Api Client unless Remote Connection Factory is being used.");
152-
}
153-
154147

155148
StatusUpdater getStatusUpdater() {
156149
return statusUpdater;

vcell-client/src/main/java/copasi/CopasiOptimizationSolverRemote.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package copasi;
22

3+
import cbit.vcell.client.ClientRequestManager;
4+
import cbit.vcell.client.RequestManager;
35
import cbit.vcell.client.VCellClient;
46
import cbit.vcell.client.server.ClientServerInfo;
57
import cbit.vcell.modelopt.ParameterEstimationTask;
@@ -26,13 +28,13 @@ public static OptimizationResultSet solveRemoteApi(
2628
ParameterEstimationTask parameterEstimationTask,
2729
CopasiOptSolverCallbacks optSolverCallbacks,
2830
ClientTaskStatusSupport clientTaskStatusSupport,
29-
ClientServerInfo clientServerInfo) {
31+
ClientRequestManager requestManager) {
3032

3133
// return solveLocalPython(parameterEstimationTask);
3234

3335
try {
3436
// e.g. vcell.serverhost=vcellapi.cam.uchc.edu:443
35-
VCellApiClient apiClient = VCellClient.getInstance().getVCellApiClient();
37+
VCellApiClient apiClient = requestManager.getClientServerManager().getVCellApiClient();
3638

3739
OptProblem optProblem = CopasiUtils.paramTaskToOptProblem(parameterEstimationTask);
3840

vcell-client/src/main/java/org/vcell/optimization/gui/ParameterEstimationRunTaskPanel.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import cbit.plot.PlotData;
1515
import cbit.plot.gui.Plot2DPanel;
1616
import cbit.vcell.client.ClientRequestManager;
17+
import cbit.vcell.client.RequestManager;
1718
import cbit.vcell.client.TopLevelWindowManager;
1819
import cbit.vcell.client.VCellLookAndFeel;
1920
import cbit.vcell.client.constants.GuiConstants;
@@ -1162,14 +1163,18 @@ public void run(Hashtable<String, Object> hashTable) throws Exception {
11621163
};
11631164
taskList.add(task1);
11641165

1165-
AsynchClientTask task2 = new AsynchClientTask("Starting param esitmation job...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {
1166+
AsynchClientTask task2 = new AsynchClientTask("Starting param estimation job...", AsynchClientTask.TASKTYPE_NONSWING_BLOCKING) {
11661167
@Override
11671168
public void run(Hashtable<String, Object> hashTable) throws Exception {
11681169
// OptimizationResultSet optResultSet = CopasiOptimizationSolver.solveLocalPython(parameterEstimationTask);
1169-
ClientServerInfo clientServerInfo = TopLevelWindowManager.activeManager().getRequestManager().getClientServerInfo();
11701170
optSolverCallbacks.setProgressReport(new OptProgressReport());
1171-
OptimizationResultSet optResultSet = CopasiOptimizationSolverRemote.solveRemoteApi(parameterEstimationTask, optSolverCallbacks, getClientTaskStatusSupport(), clientServerInfo);
1172-
hashTable.put(ORS_KEY, optResultSet);
1171+
RequestManager requestManager = TopLevelWindowManager.activeManager().getRequestManager();
1172+
if (requestManager instanceof ClientRequestManager clientRequestManager){
1173+
OptimizationResultSet optResultSet = CopasiOptimizationSolverRemote.solveRemoteApi(parameterEstimationTask, optSolverCallbacks, getClientTaskStatusSupport(), clientRequestManager);
1174+
hashTable.put(ORS_KEY, optResultSet);
1175+
} else {
1176+
throw new UnsupportedOperationException("Requires remote connection to do parameter estimation.");
1177+
}
11731178
}
11741179

11751180
};

0 commit comments

Comments
 (0)