Make CMS user app more robust.
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 29 May 2022 07:46:59 +0000 (09:46 +0200)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 29 May 2022 07:46:59 +0000 (09:46 +0200)
eclipse/org.argeo.cms.swt/OSGI-INF/cmsUserApp.xml [new file with mode: 0644]
eclipse/org.argeo.cms.swt/OSGI-INF/cmsUserApp.xml.xml [deleted file]
eclipse/org.argeo.cms.swt/bnd.bnd
eclipse/org.argeo.cms.swt/build.properties
org.argeo.cms/src/org/argeo/cms/acr/CmsContentRepository.java
org.argeo.cms/src/org/argeo/cms/internal/runtime/DeployedContentRepository.java
rap/org.argeo.cms.ui.rap/src/org/argeo/cms/web/CmsWebEntryPoint.java
sdk/cms-e4-rap.properties

diff --git a/eclipse/org.argeo.cms.swt/OSGI-INF/cmsUserApp.xml b/eclipse/org.argeo.cms.swt/OSGI-INF/cmsUserApp.xml
new file mode 100644 (file)
index 0000000..4f2a405
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="CMS User App">
+   <implementation class="org.argeo.cms.swt.app.CmsUserApp"/>
+   <property name="argeo.cms.app.contextName" type="String" value="cms/user"/>
+   <service>
+      <provide interface="org.argeo.api.cms.CmsApp"/>
+   </service>
+   <reference bind="setCmsContext" cardinality="1..1" interface="org.argeo.api.cms.CmsContext" name="CmsContext" policy="static"/>
+   <reference bind="setContentRepository" cardinality="1..1" interface="org.argeo.api.acr.ContentRepository" name="ContentRepository" policy="static"/>
+</scr:component>
diff --git a/eclipse/org.argeo.cms.swt/OSGI-INF/cmsUserApp.xml.xml b/eclipse/org.argeo.cms.swt/OSGI-INF/cmsUserApp.xml.xml
deleted file mode 100644 (file)
index 4f2a405..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="CMS User App">
-   <implementation class="org.argeo.cms.swt.app.CmsUserApp"/>
-   <property name="argeo.cms.app.contextName" type="String" value="cms/user"/>
-   <service>
-      <provide interface="org.argeo.api.cms.CmsApp"/>
-   </service>
-   <reference bind="setCmsContext" cardinality="1..1" interface="org.argeo.api.cms.CmsContext" name="CmsContext" policy="static"/>
-   <reference bind="setContentRepository" cardinality="1..1" interface="org.argeo.api.acr.ContentRepository" name="ContentRepository" policy="static"/>
-</scr:component>
index a162ea4ae14d58a13e2cc798db3c600281599609..2dda08b2ab14788163a859298653d99f8e4e226d 100644 (file)
@@ -7,5 +7,5 @@ javax.servlet.*;version="[3,5)",\
 Bundle-ActivationPolicy: lazy
                        
 Service-Component: \
-OSGI-INF/cmsUserApp.xml.xml
+OSGI-INF/cmsUserApp.xml
                        
\ No newline at end of file
index 606619784ef76d82cef30d008d53bd721e920d95..5f0f21af960abe0cfea839c8a6b9996bee2472c8 100644 (file)
@@ -1,5 +1,5 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               OSGI-INF/cmsUserApp.xml.xml
+               OSGI-INF/cmsUserApp.xml
 source.. = src/
index b1f715ae3d7d8805325874ce6b41ddcb14f6f548..2493a89bedc0993c856d7c85cb6b5014d5fa7cb7 100644 (file)
@@ -183,20 +183,21 @@ public class CmsContentRepository implements ProvidedRepository {
                                document = dBuilder.newDocument();
 //                             Element root = document.createElementNS(CrName.ROOT.getNamespaceURI(),
 //                                             CrName.ROOT.get().toPrefixedString());
-                               Element root = document.createElement(CrName.ROOT.get().toPrefixedString());
+                               Element root = document.createElementNS(CrName.CR_NAMESPACE_URI, CrName.ROOT.get().toPrefixedString());
                                // root.setAttribute("xmlns", "");
-                               root.setAttribute("xmlns:" + CrName.CR_DEFAULT_PREFIX, CrName.CR_NAMESPACE_URI);
+//                             root.setAttribute("xmlns:" + CrName.CR_DEFAULT_PREFIX, CrName.CR_NAMESPACE_URI);
                                document.appendChild(root);
 
                                // write it
-                               TransformerFactory transformerFactory = TransformerFactory.newInstance();
-                               Transformer transformer = transformerFactory.newTransformer();
-                               DOMSource source = new DOMSource(document);
-                               if (path != null)
+                               if (path != null) {
+                                       TransformerFactory transformerFactory = TransformerFactory.newInstance();
+                                       Transformer transformer = transformerFactory.newTransformer();
+                                       DOMSource source = new DOMSource(document);
                                        try (Writer writer = Files.newBufferedWriter(path, StandardCharsets.UTF_8)) {
                                                StreamResult result = new StreamResult(writer);
                                                transformer.transform(source, result);
                                        }
+                               }
                        }
 
                        DomContentProvider contentProvider = new DomContentProvider(document);
index e98798d7c98f338e8c95275d56c1a4ad9ca39521..af42418421ac3e6d080b350f1d50b31b8712316e 100644 (file)
@@ -1,17 +1,14 @@
 package org.argeo.cms.internal.runtime;
 
-import java.nio.file.Path;
 import java.util.Map;
 
 import org.argeo.api.acr.spi.ContentProvider;
-import org.argeo.api.cms.CmsConstants;
 import org.argeo.api.cms.CmsState;
 import org.argeo.cms.acr.CmsContentRepository;
-import org.argeo.cms.acr.fs.FsContentProvider;
 import org.argeo.util.LangUtils;
 
 public class DeployedContentRepository extends CmsContentRepository {
-       private final static String ROOT_XML = "cr:root.xml";
+//     private final static String ROOT_XML = "cr:root.xml";
        private final static String ACR_MOUNT_PATH = "acr.mount.path";
 
        private CmsState cmsState;
@@ -19,8 +16,8 @@ public class DeployedContentRepository extends CmsContentRepository {
        @Override
        public void start() {
                super.start();
-               Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML);
-               initRootContentProvider(rootXml);
+//             Path rootXml = KernelUtils.getOsgiInstancePath(ROOT_XML);
+               initRootContentProvider(null);
 
 //             Path srvPath = KernelUtils.getOsgiInstancePath(CmsConstants.SRV_WORKSPACE);
 //             FsContentProvider srvContentProvider = new FsContentProvider(srvPath, false);
index 9b0ba4019c3a49ce40cf5084d4212e6cce84bd4a..c82aca7285d21c24d6ccec080ee84119440d469a 100644 (file)
@@ -187,7 +187,7 @@ public class CmsWebEntryPoint implements EntryPoint, CmsView, BrowserNavigationL
                display.syncExec(() -> {
 //                     CmsFeedback.show("Unexpected exception in CMS", e);
                        exception = e;
-//             log.error("Unexpected exception in CMS", e);
+                       log.error("Unexpected exception in CMS", e);
                        doRefresh();
                });
        }
index 8181b8e7ae31c28d3bb2e74aa838120033303633..398ae706cd4bc950137097fb603cfe33fe907178 100644 (file)
@@ -1,8 +1,7 @@
 argeo.osgi.start.2.node=\
 org.eclipse.equinox.http.servlet,\
-org.eclipse.equinox.metatype,\
 org.eclipse.equinox.cm,\
-org.eclipse.equinox.ds,\
+org.apache.felix.scr,\
 org.eclipse.rap.rwt.osgi,\
 org.argeo.init
 
@@ -10,6 +9,7 @@ argeo.osgi.start.3.node=\
 org.argeo.cms
 
 argeo.osgi.start.4.node=\
+org.argeo.cms.ui.rap,\
 org.argeo.cms.servlet,\
 org.argeo.cms.jcr