Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

switch pending store module to redis #380

Merged
merged 2 commits into from
Feb 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ dependencies {
implementation(project(":module:crypto-demo"))
implementation(project(":module:request-demo"))
implementation(project(":module:store-demo"))
implementation(project(":module:store-inmemory"))
implementation(project(":module:store-redis"))
implementation(project(":service"))
implementation(project(":service:module"))
implementation(libs.dagger.dagger)
Expand All @@ -20,7 +20,9 @@ dependencies {
implementation(libs.jackson.databind)
implementation(libs.jakartaInject.api)
implementation(libs.jakartaValidation.api)
implementation(libs.jedis.jedis) // for Dagger
implementation(libs.okhttp.okhttp)
implementation(libs.redisEmbedded.redis) // for demo
implementation(libs.retrofit.retrofit)

testImplementation(project(":testing"))
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/org/example/age/app/AvsApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.example.age.module.crypto.demo.DemoAvsCryptoModule;
import org.example.age.module.request.demo.DemoAccountIdModule;
import org.example.age.module.store.demo.DemoAvsAccountStoreModule;
import org.example.age.module.store.inmemory.InMemoryPendingStoreModule;
import org.example.age.module.store.redis.RedisPendingStoreModule;
import org.example.age.service.AvsServiceModule;
import org.example.age.service.module.request.RequestContextProvider;

Expand Down Expand Up @@ -52,7 +52,7 @@ public void run(AvsAppConfig appConfig, Environment env) {
DemoAccountIdModule.class,
AvsClientModule.class,
DemoAvsAccountStoreModule.class,
InMemoryPendingStoreModule.class,
RedisPendingStoreModule.class,
DemoAvsCryptoModule.class,
AvsConfigModule.class,
EnvModule.class,
Expand Down
4 changes: 2 additions & 2 deletions app/src/main/java/org/example/age/app/SiteApp.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
import org.example.age.module.crypto.demo.DemoSiteCryptoModule;
import org.example.age.module.request.demo.DemoAccountIdModule;
import org.example.age.module.store.demo.DemoSiteAccountStoreModule;
import org.example.age.module.store.inmemory.InMemoryPendingStoreModule;
import org.example.age.module.store.redis.RedisPendingStoreModule;
import org.example.age.service.SiteServiceModule;
import org.example.age.service.module.request.RequestContextProvider;

Expand Down Expand Up @@ -52,7 +52,7 @@ public void run(SiteAppConfig appConfig, Environment env) {
DemoAccountIdModule.class,
SiteClientModule.class,
DemoSiteAccountStoreModule.class,
InMemoryPendingStoreModule.class,
RedisPendingStoreModule.class,
DemoSiteCryptoModule.class,
SiteConfigModule.class,
EnvModule.class,
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/java/org/example/age/app/config/AvsAppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.example.age.module.client.AvsClientsConfig;
import org.example.age.module.crypto.demo.AvsKeysConfig;
import org.example.age.module.store.demo.AvsStoresConfig;
import org.example.age.module.store.redis.RedisConfig;
import org.example.age.service.AvsServiceConfig;

/** Configuration for the application. */
Expand All @@ -20,6 +21,10 @@ public final class AvsAppConfig extends Configuration {
@NotNull
private AvsClientsConfig clients;

@Valid
@NotNull
private RedisConfig redis;

@Valid
@NotNull
private AvsStoresConfig stores;
Expand Down Expand Up @@ -48,6 +53,16 @@ public void setClients(AvsClientsConfig clients) {
this.clients = clients;
}

@JsonProperty
public RedisConfig getRedis() {
return redis;
}

@JsonProperty
public void setRedis(RedisConfig redis) {
this.redis = redis;
}

@JsonProperty
public AvsStoresConfig getStores() {
return stores;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@
import org.example.age.module.client.AvsClientsConfig;
import org.example.age.module.crypto.demo.AvsKeysConfig;
import org.example.age.module.store.demo.AvsStoresConfig;
import org.example.age.module.store.redis.RedisConfig;
import org.example.age.service.AvsServiceConfig;

/**
* Dagger module that binds...
* <ul>
* <li>{@link AvsServiceConfig}
* <li>{@link AvsClientsConfig}
* <li>{@link RedisConfig}
* <li>{@link AvsStoresConfig}
* <li>{@link AvsKeysConfig}
* </ul>
Expand All @@ -31,6 +33,11 @@ static AvsClientsConfig provieAvsClientsConfig(AvsAppConfig appConfig) {
return appConfig.getClients();
}

@Provides
static RedisConfig provideRedisConfig(AvsAppConfig appConfig) {
return appConfig.getRedis();
}

@Provides
static AvsStoresConfig provideAvsStoresConfig(AvsAppConfig appConfig) {
return appConfig.getStores();
Expand Down
15 changes: 15 additions & 0 deletions app/src/main/java/org/example/age/app/config/SiteAppConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import jakarta.validation.constraints.NotNull;
import org.example.age.module.client.SiteClientsConfig;
import org.example.age.module.crypto.demo.SiteKeysConfig;
import org.example.age.module.store.redis.RedisConfig;
import org.example.age.service.SiteServiceConfig;

/** Configuration for the application. */
Expand All @@ -19,6 +20,10 @@ public final class SiteAppConfig extends Configuration {
@NotNull
private SiteClientsConfig clients;

@Valid
@NotNull
private RedisConfig redis;

@Valid
@NotNull
private SiteKeysConfig keys;
Expand All @@ -43,6 +48,16 @@ public void setClients(SiteClientsConfig clients) {
this.clients = clients;
}

@JsonProperty
public RedisConfig getRedis() {
return redis;
}

@JsonProperty
public void setRedis(RedisConfig redis) {
this.redis = redis;
}

@JsonProperty
public SiteKeysConfig getKeys() {
return keys;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,15 @@
import dagger.Provides;
import org.example.age.module.client.SiteClientsConfig;
import org.example.age.module.crypto.demo.SiteKeysConfig;
import org.example.age.module.store.redis.RedisConfig;
import org.example.age.service.SiteServiceConfig;

/**
* Dagger module that binds...
* <ul>
* <li>{@link SiteServiceConfig}
* <li>{@link SiteClientsConfig}
* <li>{@link RedisConfig}
* <li>{@link SiteKeysConfig}
* </ul>
* <p>
Expand All @@ -29,6 +31,11 @@ static SiteClientsConfig provieSiteClientsConfig(SiteAppConfig appConfig) {
return appConfig.getClients();
}

@Provides
static RedisConfig provideRedisConfig(SiteAppConfig appConfig) {
return appConfig.getRedis();
}

@Provides
static SiteKeysConfig provideSiteKeysConfig(SiteAppConfig appConfig) {
return appConfig.getKeys();
Expand Down
5 changes: 3 additions & 2 deletions app/src/main/java/org/example/age/demo/Demo.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,9 @@ public final class Demo {

/** Main method. */
@SuppressWarnings("CatchAndPrintStackTrace")
public static void main(String[] args) {
public static void main(String[] args) throws IOException {
try {
DemoInfra.startRedis();
DemoInfra.startServer(checkMyAge, "config-check-my-age.yaml");
DemoInfra.startServer(crackle, "config-crackle.yaml");
DemoInfra.startServer(pop, "config-pop.yaml");
Expand All @@ -41,7 +42,7 @@ public static void main(String[] args) {
} catch (Exception e) {
e.printStackTrace();
} finally {
System.exit(0);
DemoInfra.stop();
}
}

Expand Down
16 changes: 16 additions & 0 deletions app/src/main/java/org/example/age/demo/DemoInfra.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,30 @@
import io.dropwizard.core.Application;
import io.dropwizard.jackson.Jackson;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import org.example.age.api.client.retrofit.ApiClient;
import redis.embedded.RedisServer;

/** Client/server infrastructure for the demo. */
public final class DemoInfra {

private static RedisServer redis;

private static final OkHttpClient httpClient = new OkHttpClient();
private static final ObjectWriter objectWriter = Jackson.newObjectMapper()
.setSerializationInclusion(JsonInclude.Include.NON_NULL)
.writerWithDefaultPrettyPrinter();

/** Starts Redis. */
public static void startRedis() throws IOException {
redis = new RedisServer(6379);
redis.start();
}

/** Starts an application. */
public static void startServer(Application<?> app, String configPath) throws Exception {
app.run("server", getResourcePath(configPath));
Expand All @@ -41,6 +51,12 @@ public static ObjectWriter getObjectWriter() {
return objectWriter;
}

/** Stops everything (and terminates the application). */
public static void stop() throws IOException {
redis.stop();
System.exit(0);
}

/** Get the absolute path of a resource file. */
private static String getResourcePath(String relativePath) throws URISyntaxException {
ClassLoader classLoader = DemoInfra.class.getClassLoader();
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/resources/config-check-my-age.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ clients:
crackle: http://localhost:8080
pop: http://localhost:8081

redis:
url: http://localhost:6379

stores:
verifiedAccounts:
John Smith:
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/resources/config-crackle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ service:
clients:
avsUrl: http://localhost:9090

redis:
url: http://localhost:6379

keys:
signing:
wX: 61340499596180719707288738669477306360190613239883629564918816825111167687915
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/resources/config-pop.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ service:
clients:
avsUrl: http://localhost:9090

redis:
url: http://localhost:6379

keys:
signing:
wX: 61340499596180719707288738669477306360190613239883629564918816825111167687915
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import org.example.age.app.config.AvsAppConfig;
import org.example.age.app.config.SiteAppConfig;
import org.example.age.app.testing.TestServiceClient;
import org.example.age.testing.RedisExtension;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension;
import retrofit2.Response;
Expand All @@ -29,6 +30,9 @@ public final class AppVerificationTest {
private static final DropwizardAppExtension<AvsAppConfig> avsApp =
new DropwizardAppExtension<>(AvsApp.class, ResourceHelpers.resourceFilePath("config-avs.yaml"));

@RegisterExtension
private static final RedisExtension redis = new RedisExtension(6379);

@RegisterExtension
private static final TestServiceClient<SiteApi> siteClient =
new TestServiceClient<>(8080, "username", SiteApi.class);
Expand Down
3 changes: 3 additions & 0 deletions app/src/test/resources/config-avs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ clients:
siteUrls:
site: http://localhost:8080

redis:
url: http://localhost:6379

stores:
verifiedAccounts:
person:
Expand Down
3 changes: 3 additions & 0 deletions app/src/test/resources/config-site.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ service:
clients:
avsUrl: http://localhost:9090

redis:
url: http://localhost:6379

keys:
signing:
wX: 61340499596180719707288738669477306360190613239883629564918816825111167687915
Expand Down
18 changes: 0 additions & 18 deletions module/store-inmemory/build.gradle.kts

This file was deleted.

Loading
Loading