Adapt to changes in Argeo Commons
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 1 Nov 2023 06:19:47 +0000 (07:19 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 1 Nov 2023 06:19:47 +0000 (07:19 +0100)
swt/rap/org.argeo.cms.e4.rap/src/org/argeo/cms/e4/rap/CmsLoginLifecycle.java
swt/rcp/org.argeo.cms.e4.rcp/src/org/argeo/cms/e4/rcp/CmsE4Application.java
swt/rcp/org.argeo.tool.rcp.cli/src/org/argeo/cms/swt/rcp/cli/CmsCli.java

index cdd87fd3f54696688270d7751349efbe1b761b96..b8b2935f9609db896e879fb2819d5f7822b436ee 100644 (file)
@@ -1,5 +1,7 @@
 package org.argeo.cms.e4.rap;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.security.AccessController;
 import java.util.UUID;
 import java.util.concurrent.Callable;
@@ -167,6 +169,17 @@ public class CmsLoginLifecycle implements CmsView {
        public String getUid() {
                return uid;
        }
+       
+       
+
+       @Override
+       public URI toBackendUri(String url) {
+               try {
+                       return new URI(url);
+               } catch (URISyntaxException e) {
+                       throw new IllegalArgumentException("Cannot convert " + url, e);
+               }
+       }
 
        // CALLBACKS
        protected void startupComplete() {
index 3861597aad00baa1b232366cc923d22e9fb45a60..2ad8760d2ee76d3a796790d39c61623cbf2e8a65 100644 (file)
@@ -1,5 +1,7 @@
 package org.argeo.cms.e4.rcp;
 
+import java.net.URI;
+import java.net.URISyntaxException;
 import java.security.PrivilegedExceptionAction;
 import java.util.UUID;
 import java.util.concurrent.Callable;
@@ -29,6 +31,8 @@ public class CmsE4Application implements IApplication, CmsView {
        private UxContext uxContext;
        private String uid;
 
+       private String httpServerBase;
+
        @Override
        public Object start(IApplicationContext context) throws Exception {
                // TODO wait for CMS to be ready
@@ -209,4 +213,22 @@ public class CmsE4Application implements IApplication, CmsView {
                throw new UnsupportedOperationException();
        }
 
+       @Override
+       public URI toBackendUri(String url) {
+               try {
+                       URI u = new URI(url);
+                       if (u.getHost() == null) {
+                               // TODO make it more robust
+                               u = new URI(httpServerBase + url);
+                       }
+                       return u;
+               } catch (URISyntaxException e) {
+                       throw new IllegalArgumentException("Cannot convert " + url, e);
+               }
+       }
+
+       public void setHttpServerBase(String httpServerBase) {
+               this.httpServerBase = httpServerBase;
+       }
+
 }
index 0d7de083e10342a9f6b6565cde3333af56c20638..fec9b4cf715d3f8a4502ae8984b6433bf7030128 100644 (file)
@@ -13,11 +13,11 @@ import org.argeo.api.acr.spi.ProvidedRepository;
 import org.argeo.api.cli.CommandsCli;
 import org.argeo.api.cli.DescribedCommand;
 import org.argeo.api.cms.CmsApp;
+import org.argeo.api.register.Component;
+import org.argeo.api.register.ComponentRegister;
 import org.argeo.cms.runtime.StaticCms;
 import org.argeo.cms.swt.app.CmsUserApp;
 import org.argeo.cms.ui.rcp.CmsRcpDisplayFactory;
-import org.argeo.api.register.Component;
-import org.argeo.api.register.ComponentRegister;
 
 public class CmsCli extends CommandsCli {
 
@@ -82,7 +82,9 @@ public class CmsCli extends CommandsCli {
                                protected void postActivation(ComponentRegister register) {
                                        if (ui) {
                                                Component<? extends CmsUserApp> cmsAppC = register.find(CmsUserApp.class, null).first();
-                                               CmsRcpDisplayFactory.openCmsApp(cmsAppC.get(), "data", (e) -> {
+                                               Component<? extends CmsRcpDisplayFactory> cmsRcpDisplayFactoryC = register
+                                                               .find(CmsRcpDisplayFactory.class, null).first();
+                                               cmsRcpDisplayFactoryC.get().openCmsApp(cmsAppC.get(), "data", (e) -> {
                                                        // asynchronous in order to avoid deadlock in UI thread
                                                        ForkJoinPool.commonPool().execute(() -> stop());
                                                });