more singletoning

This commit is contained in:
Christoph Sturm 2019-08-06 18:34:33 +02:00
parent a4e8ec5ebf
commit 3f097ebf63
5 changed files with 13 additions and 5 deletions

View file

@ -18,6 +18,7 @@
package bisq.common.crypto; package bisq.common.crypto;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton;
import org.bouncycastle.openpgp.PGPKeyPair; import org.bouncycastle.openpgp.PGPKeyPair;
import org.bouncycastle.openpgp.PGPPublicKey; import org.bouncycastle.openpgp.PGPPublicKey;
@ -34,6 +35,7 @@ import javax.annotation.Nullable;
@Getter @Getter
@EqualsAndHashCode @EqualsAndHashCode
@Slf4j @Slf4j
@Singleton
public class KeyRing { public class KeyRing {
private final KeyPair signatureKeyPair; private final KeyPair signatureKeyPair;
private final KeyPair encryptionKeyPair; private final KeyPair encryptionKeyPair;

View file

@ -22,6 +22,7 @@ import bisq.common.storage.FileUtil;
import com.google.inject.Inject; import com.google.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import javax.inject.Singleton;
import org.bouncycastle.openpgp.PGPKeyPair; import org.bouncycastle.openpgp.PGPKeyPair;
@ -56,6 +57,7 @@ import org.jetbrains.annotations.NotNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
// TODO: use a password protection for key storage // TODO: use a password protection for key storage
@Singleton
public class KeyStorage { public class KeyStorage {
private static final Logger log = LoggerFactory.getLogger(KeyStorage.class); private static final Logger log = LoggerFactory.getLogger(KeyStorage.class);

View file

@ -41,7 +41,6 @@ import bisq.core.proto.network.CoreNetworkProtoResolver;
import bisq.core.proto.persistable.CorePersistenceProtoResolver; import bisq.core.proto.persistable.CorePersistenceProtoResolver;
import bisq.core.trade.TradeModule; import bisq.core.trade.TradeModule;
import bisq.core.user.Preferences; import bisq.core.user.Preferences;
import bisq.core.user.User;
import bisq.network.crypto.EncryptionServiceModule; import bisq.network.crypto.EncryptionServiceModule;
import bisq.network.p2p.P2PModule; import bisq.network.p2p.P2PModule;
@ -51,7 +50,6 @@ import bisq.network.p2p.seed.SeedNodeRepository;
import bisq.common.ClockWatcher; import bisq.common.ClockWatcher;
import bisq.common.CommonOptionKeys; import bisq.common.CommonOptionKeys;
import bisq.common.app.AppModule; import bisq.common.app.AppModule;
import bisq.common.crypto.KeyRing;
import bisq.common.crypto.KeyStorage; import bisq.common.crypto.KeyStorage;
import bisq.common.proto.network.NetworkProtoResolver; import bisq.common.proto.network.NetworkProtoResolver;
import bisq.common.proto.persistable.PersistenceProtoResolver; import bisq.common.proto.persistable.PersistenceProtoResolver;
@ -77,9 +75,6 @@ public class CoreModule extends AppModule {
protected void configure() { protected void configure() {
bind(BisqEnvironment.class).toInstance((BisqEnvironment) environment); bind(BisqEnvironment.class).toInstance((BisqEnvironment) environment);
bind(KeyStorage.class).in(Singleton.class);
bind(KeyRing.class).in(Singleton.class);
bind(User.class).in(Singleton.class);
bind(ClockWatcher.class).in(Singleton.class); bind(ClockWatcher.class).in(Singleton.class);
bind(Preferences.class).in(Singleton.class); bind(Preferences.class).in(Singleton.class);
bind(BridgeAddressProvider.class).to(Preferences.class).in(Singleton.class); bind(BridgeAddressProvider.class).to(Preferences.class).in(Singleton.class);

View file

@ -34,6 +34,7 @@ import bisq.common.proto.persistable.PersistedDataHost;
import bisq.common.storage.Storage; import bisq.common.storage.Storage;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Singleton;
import javafx.beans.property.ObjectProperty; import javafx.beans.property.ObjectProperty;
import javafx.beans.property.ReadOnlyObjectProperty; import javafx.beans.property.ReadOnlyObjectProperty;
@ -64,6 +65,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
*/ */
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
@Singleton
public class User implements PersistedDataHost { public class User implements PersistedDataHost {
final private Storage<UserPayload> storage; final private Storage<UserPayload> storage;
final private KeyRing keyRing; final private KeyRing keyRing;

View file

@ -24,9 +24,13 @@ import bisq.core.app.WalletAppSetup;
import bisq.core.locale.CurrencyUtil; import bisq.core.locale.CurrencyUtil;
import bisq.core.locale.Res; import bisq.core.locale.Res;
import bisq.core.payment.TradeLimits; import bisq.core.payment.TradeLimits;
import bisq.core.user.User;
import bisq.core.util.BSFormatter; import bisq.core.util.BSFormatter;
import bisq.core.util.BsqFormatter; import bisq.core.util.BsqFormatter;
import bisq.common.crypto.KeyRing;
import bisq.common.crypto.KeyStorage;
import org.springframework.mock.env.MockPropertySource; import org.springframework.mock.env.MockPropertySource;
import com.google.inject.Guice; import com.google.inject.Guice;
@ -77,6 +81,9 @@ public class GuiceSetupTest {
assertSingleton(P2PNetworkSetup.class); assertSingleton(P2PNetworkSetup.class);
assertSingleton(WalletAppSetup.class); assertSingleton(WalletAppSetup.class);
assertSingleton(TradeLimits.class); assertSingleton(TradeLimits.class);
assertSingleton(KeyStorage.class);
assertSingleton(KeyRing.class);
assertSingleton(User.class);
} }
private void assertSingleton(Class type) { private void assertSingleton(Class type) {