Skip to content

Commit bc98173

Browse files
committed
fix active subscription not loaded in cli bug
(cherry picked from commit edaabe1)
1 parent ec1c6a8 commit bc98173

File tree

3 files changed

+25
-35
lines changed

3 files changed

+25
-35
lines changed

sirius_cli/src/main/java/de/unijena/bioinf/ms/frontend/core/ApplicationCore.java

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,25 @@
2020
package de.unijena.bioinf.ms.frontend.core;
2121

2222
import de.unijena.bioinf.ChemistryBase.jobs.SiriusJobs;
23+
import de.unijena.bioinf.ChemistryBase.utils.ExFunctions;
2324
import de.unijena.bioinf.FragmentationTreeConstruction.computation.tree.TreeBuilderFactory;
2425
import de.unijena.bioinf.auth.AuthService;
2526
import de.unijena.bioinf.auth.AuthServices;
2627
import de.unijena.bioinf.fingerid.fingerprints.cache.IFingerprinterCache;
2728
import de.unijena.bioinf.fingerid.fingerprints.cache.NonBlockingIFingerprinterCache;
2829
import de.unijena.bioinf.ms.frontend.bibtex.BibtexManager;
30+
import de.unijena.bioinf.ms.frontend.subtools.custom_db.CustomDBPropertyUtils;
2931
import de.unijena.bioinf.ms.persistence.storage.StorageUtils;
3032
import de.unijena.bioinf.ms.properties.ConfigType;
3133
import de.unijena.bioinf.ms.properties.PropertyManager;
3234
import de.unijena.bioinf.ms.properties.SiriusConfigUtils;
3335
import de.unijena.bioinf.ms.rest.model.license.Subscription;
36+
import de.unijena.bioinf.rest.NetUtils;
3437
import de.unijena.bioinf.rest.ProxyManager;
3538
import de.unijena.bioinf.sirius.SiriusFactory;
3639
import de.unijena.bioinf.webapi.WebAPI;
3740
import de.unijena.bioinf.webapi.rest.RestAPI;
41+
import io.sirius.ms.utils.jwt.AccessTokens;
3842
import org.apache.commons.configuration2.PropertiesConfiguration;
3943
import org.apache.commons.configuration2.ex.ConfigurationException;
4044
import org.apache.commons.lang3.time.StopWatch;
@@ -53,6 +57,7 @@
5357
import java.util.Arrays;
5458
import java.util.List;
5559
import java.util.Properties;
60+
import java.util.concurrent.Callable;
5661
import java.util.logging.LogManager;
5762

5863
import static de.unijena.bioinf.ms.frontend.SiriusCLIApplication.APP_TYPE_PROPERTY_KEY;
@@ -91,7 +96,26 @@ public static WebAPI<?> WEB_API(){
9196
StopWatch stopWatch = StopWatch.createStarted();
9297
AuthService service = ProxyManager.applyClient(c -> AuthServices.createDefault(PropertyManager.getProperty("de.unijena.bioinf.sirius.security.audience"), TOKEN_FILE, c));
9398
WEB_API = new RestAPI(service, (Subscription) null);
94-
DEFAULT_LOGGER.info("Web API initialized in {}", stopWatch);
99+
100+
SiriusJobs.runInBackground((Callable<Void>) () -> {
101+
ProxyManager.withConnectionLock((ExFunctions.Runnable) () -> {
102+
Subscription sub = null; //web connection
103+
try {
104+
sub = NetUtils.tryAndWait(() -> WEB_API.getAuthService().getToken().map(AccessTokens.ACCESS_TOKENS::getActiveSubscription).orElse(null),
105+
() -> NetUtils.checkThreadInterrupt(Thread.currentThread()), 5000) ;
106+
WEB_API.changeActiveSubscription(sub);
107+
} catch (Exception e) {
108+
DEFAULT_LOGGER.debug("Error when refreshing token", e);
109+
DEFAULT_LOGGER.warn("Error when refreshing token: {} Cleaning login information. Please re-login!", e.getMessage());
110+
AuthServices.clearRefreshToken(WEB_API.getAuthService(), TOKEN_FILE); // in case the token is corrupted or the account has been deleted
111+
}
112+
});
113+
114+
CustomDBPropertyUtils.loadAllCustomDBs(WEB_API.getCDKChemDBFingerprintVersion());
115+
DEFAULT_LOGGER.info("Custom databases loaded.");
116+
return null;
117+
});
118+
DEFAULT_LOGGER.info("Web API initialized in {}. Started loading active subscription in background...", stopWatch);
95119
} catch (IOException e) {
96120
throw new RuntimeException(e);
97121
}

sirius_rest_service/src/main/java/de/unijena/bioinf/ms/frontend/subtools/middleware/MiddlewareAppOptions.java

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,19 @@
1919

2020
package de.unijena.bioinf.ms.frontend.subtools.middleware;
2121

22-
import de.unijena.bioinf.ChemistryBase.utils.ExFunctions;
2322
import de.unijena.bioinf.ChemistryBase.utils.FileUtils;
24-
import de.unijena.bioinf.auth.AuthServices;
2523
import de.unijena.bioinf.ms.frontend.splash.Splash;
2624
import de.unijena.bioinf.ms.frontend.subtools.OutputOptions;
2725
import de.unijena.bioinf.ms.frontend.subtools.Provide;
2826
import de.unijena.bioinf.ms.frontend.subtools.RootOptions;
2927
import de.unijena.bioinf.ms.frontend.subtools.StandaloneTool;
30-
import de.unijena.bioinf.ms.frontend.subtools.custom_db.CustomDBPropertyUtils;
3128
import de.unijena.bioinf.ms.frontend.workflow.Workflow;
3229
import de.unijena.bioinf.ms.gui.compute.jjobs.Jobs;
3330
import de.unijena.bioinf.ms.middleware.model.projects.ProjectInfo;
3431
import de.unijena.bioinf.ms.middleware.service.gui.GuiService;
3532
import de.unijena.bioinf.ms.middleware.service.projects.ProjectsProvider;
3633
import de.unijena.bioinf.ms.properties.ParameterConfig;
37-
import de.unijena.bioinf.ms.rest.model.license.Subscription;
3834
import de.unijena.bioinf.projectspace.SiriusProjectSpaceInstance;
39-
import de.unijena.bioinf.rest.NetUtils;
40-
import de.unijena.bioinf.rest.ProxyManager;
41-
import de.unijena.bioinf.webapi.WebAPI;
42-
import io.sirius.ms.utils.jwt.AccessTokens;
4335
import lombok.AllArgsConstructor;
4436
import lombok.NoArgsConstructor;
4537
import lombok.Setter;
@@ -51,11 +43,9 @@
5143
import java.util.EnumSet;
5244
import java.util.List;
5345
import java.util.Optional;
54-
import java.util.concurrent.Callable;
5546
import java.util.stream.Collectors;
5647
import java.util.stream.Stream;
5748

58-
import static de.unijena.bioinf.ms.frontend.core.ApplicationCore.TOKEN_FILE;
5949
import static de.unijena.bioinf.ms.persistence.storage.SiriusProjectDocumentDatabase.SIRIUS_PROJECT_SUFFIX;
6050

6151
@Slf4j
@@ -66,9 +56,6 @@ public class MiddlewareAppOptions<I extends SiriusProjectSpaceInstance> implemen
6656
@Setter
6757
private GuiService guiService;
6858

69-
@Setter
70-
private WebAPI<?> webAPI;
71-
7259
private Splash splash;
7360

7461
public MiddlewareAppOptions(Splash splashScreen) {
@@ -176,25 +163,6 @@ private Flow(OutputOptions output) {
176163

177164
@Override
178165
public void run() {
179-
Jobs.runInBackground((Callable<Void>) () -> {
180-
ProxyManager.withConnectionLock((ExFunctions.Runnable) () -> {
181-
Subscription sub = null; //web connection
182-
try {
183-
sub = NetUtils.tryAndWait(() -> webAPI.getAuthService().getToken().map(AccessTokens.ACCESS_TOKENS::getActiveSubscription).orElse(null),
184-
() -> NetUtils.checkThreadInterrupt(Thread.currentThread()), 5000) ;
185-
webAPI.changeActiveSubscription(sub);
186-
} catch (Exception e) {
187-
log.debug("Error when refreshing token", e);
188-
log.warn("Error when refreshing token: {} Cleaning login information. Please re-login!", e.getMessage());
189-
AuthServices.clearRefreshToken(webAPI.getAuthService(), TOKEN_FILE); // in case token is corrupted or the account has been deleted
190-
}
191-
});
192-
193-
CustomDBPropertyUtils.loadAllCustomDBs(webAPI.getCDKChemDBFingerprintVersion());
194-
log.info("Custom databases loaded.");
195-
return null;
196-
});
197-
198166
//do the project importing from the commandline
199167
Optional<Path> location = Optional.ofNullable(output).map(OutputOptions::getOutputProjectLocation);
200168
if (location.isPresent() || MiddlewareAppOptions.this.isStartGui()) {

sirius_rest_service/src/main/java/de/unijena/bioinf/ms/middleware/SiriusMiddlewareApplication.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
import de.unijena.bioinf.ms.middleware.service.projects.ProjectsProvider;
4343
import de.unijena.bioinf.ms.properties.PropertyManager;
4444
import de.unijena.bioinf.projectspace.ProjectSpaceManagerFactory;
45-
import de.unijena.bioinf.webapi.WebAPI;
4645
import io.sirius.ms.sdk.SiriusSDK;
4746
import io.sirius.ms.sdk.model.GuiInfo;
4847
import io.sirius.ms.sdk.model.ProjectInfo;
@@ -274,7 +273,6 @@ public static void main(String[] args) {
274273
@Override
275274
public void run(String... args) {
276275
middlewareOpts.setProjectsProvider(appContext.getBean(ProjectsProvider.class));
277-
middlewareOpts.setWebAPI(appContext.getBean(WebAPI.class));
278276
if (appContext.containsBean("guiService"))
279277
middlewareOpts.setGuiService(appContext.getBean(GuiService.class));
280278
rootOptions.setSpaceManagerFactory(appContext.getBean(ProjectSpaceManagerFactory.class));

0 commit comments

Comments
 (0)