/** * Constructor. * * @param listenerExecutor executes callback listeners * @param certificateManager provider of certificates; it also determines which * domains this wave server regards as local wavelets. * @param federationRemote federation remote interface * @param waveMap records the waves and wavelets in memory */ @Inject WaveServerImpl(@ListenerExecutor Executor listenerExecutor, CertificateManager certificateManager, @FederationRemoteBridge WaveletFederationProvider federationRemote, WaveMap waveMap) { this.listenerExecutor = listenerExecutor; this.certificateManager = certificateManager; this.federationRemote = federationRemote; this.waveMap = waveMap; LOG.info("Wave Server configured to host local domains: " + certificateManager.getLocalDomains()); // Preemptively add our own signer info to the certificate manager SignerInfo signerInfo = certificateManager.getLocalSigner().getSignerInfo(); if (signerInfo != null) { try { certificateManager.storeSignerInfo(signerInfo.toProtoBuf()); } catch (SignatureException e) { LOG.severe("Failed to add our own signer info to the certificate store", e); } } }