projects
/
lgpl
/
argeo-commons.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c7eb04e
)
Improve initialisation
author
Mathieu Baudier <mbaudier@argeo.org>
Sat, 9 Dec 2023 08:40:19 +0000
(09:40 +0100)
committer
Mathieu Baudier <mbaudier@argeo.org>
Sat, 9 Dec 2023 08:40:19 +0000
(09:40 +0100)
org.argeo.cms.jshell/src/org/argeo/cms/jshell/CmsJShell.java
patch
|
blob
|
history
org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/CmsSshServer.java
patch
|
blob
|
history
org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java
patch
|
blob
|
history
org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsDeploymentImpl.java
patch
|
blob
|
history
diff --git
a/org.argeo.cms.jshell/src/org/argeo/cms/jshell/CmsJShell.java
b/org.argeo.cms.jshell/src/org/argeo/cms/jshell/CmsJShell.java
index d84ce7212ebcbcacd387618c83ca72e7601bb4ec..d9d7d799523fec81658e4c0fb71ca701adff5b3e 100644
(file)
--- a/
org.argeo.cms.jshell/src/org/argeo/cms/jshell/CmsJShell.java
+++ b/
org.argeo.cms.jshell/src/org/argeo/cms/jshell/CmsJShell.java
@@
-51,13
+51,32
@@
public class CmsJShell {
// TODO centralise state run dir
stateRunDir = OS.getRunDir().resolve(applicationID);
// TODO centralise state run dir
stateRunDir = OS.getRunDir().resolve(applicationID);
+ // TODO factorise create/delete pattern
jshBase = stateRunDir.resolve(JShellClient.JSH);
jshBase = stateRunDir.resolve(JShellClient.JSH);
+ if (Files.exists(jshBase)) {
+ log.warn(jshBase + " already exists, deleting it...");
+ FsUtils.delete(jshBase);
+ }
Files.createDirectories(jshBase);
Files.createDirectories(jshBase);
- jshLinkedDir = Files.createSymbolicLink(cmsState.getStatePath(JShellClient.JSH), jshBase);
+ jshLinkedDir = cmsState.getStatePath(JShellClient.JSH);
+ if (Files.exists(jshLinkedDir)) {
+ log.warn(jshLinkedDir + " already exists, deleting it...");
+ FsUtils.delete(jshLinkedDir);
+ }
+ Files.createSymbolicLink(jshLinkedDir, jshBase);
jtermBase = stateRunDir.resolve(JShellClient.JTERM);
jtermBase = stateRunDir.resolve(JShellClient.JTERM);
+ if (Files.exists(jtermBase)) {
+ log.warn(jtermBase + " already exists, deleting it...");
+ FsUtils.delete(jtermBase);
+ }
Files.createDirectories(jtermBase);
Files.createDirectories(jtermBase);
- jtermLinkedDir = Files.createSymbolicLink(cmsState.getStatePath(JShellClient.JTERM), jtermBase);
+ jtermLinkedDir = cmsState.getStatePath(JShellClient.JTERM);
+ if (Files.exists(jtermLinkedDir)) {
+ log.warn(jtermLinkedDir + " already exists, deleting it...");
+ FsUtils.delete(jtermLinkedDir);
+ }
+ Files.createSymbolicLink(jtermLinkedDir, jtermBase);
log.info("Local JShell on " + jshBase + ", linked to " + jshLinkedDir);
log.info("Local JTerm on " + jtermBase + ", linked to " + jtermLinkedDir);
log.info("Local JShell on " + jshBase + ", linked to " + jshLinkedDir);
log.info("Local JTerm on " + jtermBase + ", linked to " + jtermLinkedDir);
diff --git
a/org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/CmsSshServer.java
b/org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/CmsSshServer.java
index 8a6def33ac631c2c88eaf8f8daa308c27394d4a4..98bb045441b51a306988f95346127998ba08e50c 100644
(file)
--- a/
org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/CmsSshServer.java
+++ b/
org.argeo.cms.lib.sshd/src/org/argeo/cms/ssh/CmsSshServer.java
@@
-206,7
+206,10
@@
public class CmsSshServer implements CmsSshd {
(PrivateKey) store.getKey(CmsConstants.NODE, keyStorePassword));
} catch (IOException | KeyStoreException | NoSuchProviderException | NoSuchAlgorithmException
| CertificateException | IllegalArgumentException | UnrecoverableKeyException e) {
(PrivateKey) store.getKey(CmsConstants.NODE, keyStorePassword));
} catch (IOException | KeyStoreException | NoSuchProviderException | NoSuchAlgorithmException
| CertificateException | IllegalArgumentException | UnrecoverableKeyException e) {
- log.error("Cannot add node public key to SSH authorized keys", e);
+ if (log.isTraceEnabled())
+ log.error("Cannot add node public key to SSH authorized keys", e);
+ else
+ log.error("Cannot add node public key to SSH authorized keys: " + e.getMessage());
return null;
}
return null;
}
diff --git
a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java
b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java
index bd54b20594b5e7200d0a3e04f975e8cfc13ab354..01d285b8cfd2767b8d4252b5cb93cb30861950a9 100644
(file)
--- a/
org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java
+++ b/
org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsContextImpl.java
@@
-44,6
+44,9
@@
public class CmsContextImpl implements CmsContext {
private Long availableSince;
private Long availableSince;
+ // time in ms to wait for CMS to be ready
+ private final long readynessTimeout = 30 * 1000;
+
// CMS sessions
private Map<UUID, CmsSessionImpl> cmsSessionsByUuid = new HashMap<>();
private Map<String, CmsSessionImpl> cmsSessionsByLocalId = new HashMap<>();
// CMS sessions
private Map<UUID, CmsSessionImpl> cmsSessionsByUuid = new HashMap<>();
private Map<String, CmsSessionImpl> cmsSessionsByLocalId = new HashMap<>();
@@
-56,9
+59,16
@@
public class CmsContextImpl implements CmsContext {
defaultLocale = locales.get(0);
new Thread(() -> {
defaultLocale = locales.get(0);
new Thread(() -> {
- while (!checkReadiness()) {
+ long begin = System.currentTimeMillis();
+ long duration = 0;
+ readyness: while (!checkReadiness()) {
+ duration = System.currentTimeMillis() - begin;
+ if (duration > readynessTimeout) {
+ log.error("## CMS not ready after " + duration + " ms. Giving up checking.");
+ break readyness;
+ }
try {
try {
- Thread.sleep(
5
00);
+ Thread.sleep(
1
00);
} catch (InterruptedException e) {
}
}
} catch (InterruptedException e) {
}
}
diff --git
a/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsDeploymentImpl.java
b/org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsDeploymentImpl.java
index f9a1dc36832dab593fb28d53017679f8db5f400c..e1c420b8287469bb698af791d04b9d87638563d9 100644
(file)
--- a/
org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsDeploymentImpl.java
+++ b/
org.argeo.cms/src/org/argeo/cms/internal/runtime/CmsDeploymentImpl.java
@@
-82,7
+82,7
@@
public class CmsDeploymentImpl implements CmsDeployment {
CmsAuthenticator authenticator = isPublic ? new PublicCmsAuthenticator() : new CmsAuthenticator();
httpHandlers.put(contextPath, httpHandler);
httpAuthenticators.put(contextPath, authenticator);
CmsAuthenticator authenticator = isPublic ? new PublicCmsAuthenticator() : new CmsAuthenticator();
httpHandlers.put(contextPath, httpHandler);
httpAuthenticators.put(contextPath, authenticator);
- if (httpServer == null) {
+ if (httpServer
.join()
== null) {
return;
} else {
createHttpContext(contextPath, httpHandler, authenticator);
return;
} else {
createHttpContext(contextPath, httpHandler, authenticator);
@@
-107,16
+107,16
@@
public class CmsDeploymentImpl implements CmsDeployment {
if (contextPath == null)
return; // ignore silently
httpHandlers.remove(contextPath);
if (contextPath == null)
return; // ignore silently
httpHandlers.remove(contextPath);
- if (httpServer == null)
+ if (httpServer
.join()
== null)
return;
httpServer.join().removeContext(contextPath);
log.debug(() -> "Removed handler " + contextPath + " : " + httpHandler.getClass().getName());
}
public boolean allExpectedServicesAvailable() {
return;
httpServer.join().removeContext(contextPath);
log.debug(() -> "Removed handler " + contextPath + " : " + httpHandler.getClass().getName());
}
public boolean allExpectedServicesAvailable() {
- if (httpExpected &&
httpServer == null
)
+ if (httpExpected &&
!httpServer.isDone()
)
return false;
return false;
- if (sshdExpected &&
cmsSshd == null
)
+ if (sshdExpected &&
!cmsSshd.isDone()
)
return false;
return true;
}
return false;
return true;
}