From d54f6260e0b1e8ac010d5d00df2dfaa9385f0d0e Mon Sep 17 00:00:00 2001 From: Matthew Read Date: Fri, 29 Sep 2023 17:00:04 -0400 Subject: [PATCH 1/6] READLY-124 Add BOMs and clean up all dependencies --- .github/workflows/pr-validation.yml | 11 +- .github/workflows/release.yml | 7 +- alchemy-api/pom.xml | 52 +++- .../alchemy/dto/models/ExperimentDtoTest.java | 5 +- .../alchemy/dto/models/TreatmentDtoTest.java | 5 +- alchemy-bom/pom.xml | 61 ++++ alchemy-client/pom.xml | 123 +++++++- .../io/rtr/alchemy/client/AlchemyClient.java | 21 +- .../alchemy/client/mappers/UserMapper.java | 2 + alchemy-core/pom.xml | 54 +++- .../main/java/io/rtr/alchemy/db/Filter.java | 6 +- .../rtr/alchemy/models/TreatmentOverride.java | 6 +- .../io/rtr/alchemy/models/ExperimentTest.java | 1 + .../alchemy/models/TreatmentOverrideTest.java | 4 +- .../io/rtr/alchemy/models/TreatmentTest.java | 5 +- alchemy-db-memory/pom.xml | 57 +++- alchemy-db-mongo/pom.xml | 73 ++++- .../db/mongo/MongoStoreProviderTest.java | 2 +- alchemy-dependencies/pom.xml | 234 +++++++++++++++ alchemy-example/pom.xml | 147 ++++++++- .../PeriodicStaleCheckingCacheStrategy.java | 7 +- .../alchemy/example/mappers/UserMapper.java | 1 + alchemy-mapping/pom.xml | 27 +- alchemy-service/pom.xml | 155 ++++++++-- .../ExperimentsDatabaseProviderCheck.java | 1 + .../service/jackson/ClassKeyDeserializer.java | 2 +- .../service/metrics/JmxMetricsManaged.java | 3 +- alchemy-testing/pom.xml | 45 ++- .../db/ExperimentsStoreProviderTest.java | 44 +-- findBugsExclusions.xml | 17 -- pom.xml | 282 +++--------------- 31 files changed, 1057 insertions(+), 403 deletions(-) create mode 100644 alchemy-bom/pom.xml create mode 100644 alchemy-dependencies/pom.xml delete mode 100644 findBugsExclusions.xml diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 13ab98ec..5aec0c74 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Check out repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: YAML linting uses: karancode/yamllint-github-action@v2.1.1 @@ -51,5 +51,12 @@ jobs: } ] + - name: Resolve dependencies + run: mvn -B dependency:go-offline dependency:resolve-plugins + - name: Build, test, and install - run: mvn -B install + run: mvn -o -B install + + # dependency:analyze-only is run as part of the previous step, but this sometimes catches more + - name: Run dependency and bug analysis + run: mvn -o -B dependency:analyze diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1a55e1d0..9eedc7eb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,13 +28,18 @@ jobs: - name: Check out repo uses: actions/checkout@v4 - - name: Install Java and Maven + - name: Set up JDK 8 uses: actions/setup-java@v3 with: java-version: 8 distribution: temurin check-latest: false + - name: Set up Maven + uses: stCarolas/setup-maven@v4.5 + with: + maven-version: 3.9.4 + - name: Configure git run: | git config --global user.email "infrastructure+deploy@renttherunway.com" diff --git a/alchemy-api/pom.xml b/alchemy-api/pom.xml index f58ba7a9..7aaa1c83 100644 --- a/alchemy-api/pom.xml +++ b/alchemy-api/pom.xml @@ -1,27 +1,69 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT + Alchemy API Library Representations for Alchemy Service - 4.0.0 alchemy-api + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + + + com.fasterxml.jackson.core + jackson-annotations + + + javax.validation + validation-api + + + joda-time + joda-time + + + com.google.guava + guava + + + + + com.fasterxml.jackson.core + jackson-databind + test + io.dropwizard dropwizard-jackson + test - io.dropwizard - dropwizard-validation + junit + junit + test - com.fasterxml.jackson.datatype - jackson-datatype-guava + nl.jqno.equalsverifier + equalsverifier + test \ No newline at end of file diff --git a/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/ExperimentDtoTest.java b/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/ExperimentDtoTest.java index 3c7792e2..b8203832 100644 --- a/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/ExperimentDtoTest.java +++ b/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/ExperimentDtoTest.java @@ -7,6 +7,9 @@ public class ExperimentDtoTest { @Test public void testEqualsHashCode() { - EqualsVerifier.forClass(ExperimentDto.class).suppress(Warning.STRICT_INHERITANCE).verify(); + EqualsVerifier.forClass(ExperimentDto.class) + .suppress(Warning.STRICT_INHERITANCE) + .withOnlyTheseFields("name") + .verify(); } } diff --git a/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/TreatmentDtoTest.java b/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/TreatmentDtoTest.java index b3407bc6..99fda3b4 100644 --- a/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/TreatmentDtoTest.java +++ b/alchemy-api/src/test/java/io/rtr/alchemy/dto/models/TreatmentDtoTest.java @@ -7,6 +7,9 @@ public class TreatmentDtoTest { @Test public void testEqualsHashCode() { - EqualsVerifier.forClass(TreatmentDto.class).suppress(Warning.STRICT_INHERITANCE).verify(); + EqualsVerifier.forClass(TreatmentDto.class) + .suppress(Warning.STRICT_INHERITANCE) + .withIgnoredFields("description") + .verify(); } } diff --git a/alchemy-bom/pom.xml b/alchemy-bom/pom.xml new file mode 100644 index 00000000..d9d0709f --- /dev/null +++ b/alchemy-bom/pom.xml @@ -0,0 +1,61 @@ + + + 4.0.0 + + + alchemy-parent + io.rtr.alchemy + 2.0.10-SNAPSHOT + + + alchemy-bom + pom + Alchemy BOM + Bill of Materials for Alchemy Libraries + + + + + + io.rtr.alchemy + alchemy-api + ${project.version} + + + io.rtr.alchemy + alchemy-client + ${project.version} + + + io.rtr.alchemy + alchemy-core + ${project.version} + + + io.rtr.alchemy + alchemy-db-memory + ${project.version} + + + io.rtr.alchemy + alchemy-db-mongo + ${project.version} + + + io.rtr.alchemy + alchemy-mapping + ${project.version} + + + io.rtr.alchemy + alchemy-service + ${project.version} + + + io.rtr.alchemy + alchemy-testing + ${project.version} + + + + \ No newline at end of file diff --git a/alchemy-client/pom.xml b/alchemy-client/pom.xml index 3d10f6c7..bf69cc95 100644 --- a/alchemy-client/pom.xml +++ b/alchemy-client/pom.xml @@ -1,40 +1,149 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT + Alchemy Service REST Client Client for Alchemy Service - 4.0.0 - alchemy-client + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + io.rtr.alchemy + alchemy-api + ${project.version} + + + + + io.rtr.alchemy + alchemy-core + ${project.version} + test + + + io.rtr.alchemy + alchemy-db-memory + ${project.version} + test + + + io.rtr.alchemy + alchemy-mapping + ${project.version} + test + + + io.rtr.alchemy + alchemy-service + ${project.version} + test + + + + + io.rtr.alchemy alchemy-api - ${project.version} + + - io.dropwizard - dropwizard-client + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind com.fasterxml.jackson.module jackson-module-jsonSchema + + com.google.code.findbugs + jsr305 + + + com.google.guava + guava + + + io.dropwizard + dropwizard-client + + + io.dropwizard + dropwizard-core + + + io.dropwizard + dropwizard-jackson + + + io.dropwizard.metrics + metrics-core + + + javax.validation + validation-api + + + javax.ws.rs + javax.ws.rs-api + + + org.glassfish.hk2 + hk2-utils + + + io.dropwizard dropwizard-testing - ${dropwizard.version} + test + + + io.rtr.alchemy + alchemy-core + test + + + io.rtr.alchemy + alchemy-db-memory + test + + + io.rtr.alchemy + alchemy-mapping test io.rtr.alchemy alchemy-service - ${project.version} + test + + + junit + junit test diff --git a/alchemy-client/src/main/java/io/rtr/alchemy/client/AlchemyClient.java b/alchemy-client/src/main/java/io/rtr/alchemy/client/AlchemyClient.java index 7ed0cba6..a11d6d6e 100644 --- a/alchemy-client/src/main/java/io/rtr/alchemy/client/AlchemyClient.java +++ b/alchemy-client/src/main/java/io/rtr/alchemy/client/AlchemyClient.java @@ -8,6 +8,10 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.ListMultimap; import com.google.common.collect.Maps; + +import io.dropwizard.client.JerseyClientBuilder; +import io.dropwizard.jackson.Jackson; +import io.dropwizard.setup.Environment; import io.rtr.alchemy.client.builder.CreateExperimentRequestBuilder; import io.rtr.alchemy.client.builder.GetExperimentsRequestBuilder; import io.rtr.alchemy.client.builder.UpdateAllocationsRequestBuilder; @@ -20,11 +24,16 @@ import io.rtr.alchemy.dto.models.TreatmentOverrideDto; import io.rtr.alchemy.dto.requests.GetExperimentsRequest; import io.rtr.alchemy.dto.requests.TreatmentOverrideRequest; -import io.dropwizard.client.JerseyClientBuilder; -import io.dropwizard.jackson.Jackson; -import io.dropwizard.setup.Environment; + import org.glassfish.hk2.utilities.reflection.ParameterizedTypeImpl; +import java.net.URI; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + import javax.annotation.Nullable; import javax.ws.rs.client.Client; import javax.ws.rs.client.Entity; @@ -32,12 +41,6 @@ import javax.ws.rs.core.GenericType; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.UriBuilder; -import java.net.URI; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; /** A Dropwizard client for talking to an instance Alchemy service */ public class AlchemyClient { diff --git a/alchemy-client/src/test/java/io/rtr/alchemy/client/mappers/UserMapper.java b/alchemy-client/src/test/java/io/rtr/alchemy/client/mappers/UserMapper.java index 0c292a8d..04c4c4cf 100644 --- a/alchemy-client/src/test/java/io/rtr/alchemy/client/mappers/UserMapper.java +++ b/alchemy-client/src/test/java/io/rtr/alchemy/client/mappers/UserMapper.java @@ -4,6 +4,8 @@ import io.rtr.alchemy.client.identities.User; import io.rtr.alchemy.mapping.Mapper; +// referenced in test-server.yaml +@SuppressWarnings("unused") public class UserMapper implements Mapper { @Override public UserDto toDto(User source) { diff --git a/alchemy-core/pom.xml b/alchemy-core/pom.xml index c845fad6..8bb5be9a 100644 --- a/alchemy-core/pom.xml +++ b/alchemy-core/pom.xml @@ -1,12 +1,14 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT + Alchemy Core Library - 4.0.0 alchemy-core @@ -14,7 +16,26 @@ 4.5 + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + org.antlr + antlr4-runtime + ${antlr.version} + + + + + joda-time joda-time @@ -23,18 +44,6 @@ com.google.guava guava - - com.google.inject - guice - - - com.fasterxml.jackson.core - jackson-core - - - com.fasterxml.jackson.core - jackson-annotations - org.apache.commons commons-math3 @@ -46,12 +55,27 @@ org.antlr antlr4-runtime - ${antlr.version} javax.validation validation-api - 1.1.0.Final + + + + + junit + junit + test + + + nl.jqno.equalsverifier + equalsverifier + test + + + org.mockito + mockito-core + test diff --git a/alchemy-core/src/main/java/io/rtr/alchemy/db/Filter.java b/alchemy-core/src/main/java/io/rtr/alchemy/db/Filter.java index 7bc6283d..9cc87473 100644 --- a/alchemy-core/src/main/java/io/rtr/alchemy/db/Filter.java +++ b/alchemy-core/src/main/java/io/rtr/alchemy/db/Filter.java @@ -71,7 +71,7 @@ public Ordering getOrdering() { @Override public int hashCode() { - return Objects.hashCode(filter, offset, limit); + return Objects.hashCode(filter, offset, limit, ordering); } @Override @@ -84,7 +84,8 @@ public boolean equals(Object obj) { return Objects.equal(filter, other.filter) && Objects.equal(offset, other.offset) - && Objects.equal(limit, other.limit); + && Objects.equal(limit, other.limit) + && Objects.equal(ordering, other.ordering); } @Override @@ -93,6 +94,7 @@ public String toString() { .add("filter", filter) .add("offset", offset) .add("limit", limit) + .add("ordering", ordering) .toString(); } } diff --git a/alchemy-core/src/main/java/io/rtr/alchemy/models/TreatmentOverride.java b/alchemy-core/src/main/java/io/rtr/alchemy/models/TreatmentOverride.java index 7048d1f5..9dfe2742 100644 --- a/alchemy-core/src/main/java/io/rtr/alchemy/models/TreatmentOverride.java +++ b/alchemy-core/src/main/java/io/rtr/alchemy/models/TreatmentOverride.java @@ -30,7 +30,7 @@ public Treatment getTreatment() { @Override public int hashCode() { - return Objects.hashCode(name, treatment); + return Objects.hashCode(name, filter, treatment); } @Override @@ -41,7 +41,9 @@ public boolean equals(Object obj) { final TreatmentOverride other = (TreatmentOverride) obj; - return Objects.equal(name, other.name) && Objects.equal(treatment, other.treatment); + return Objects.equal(name, other.name) + && Objects.equal(filter, other.filter) + && Objects.equal(treatment, other.treatment); } @Override diff --git a/alchemy-core/src/test/java/io/rtr/alchemy/models/ExperimentTest.java b/alchemy-core/src/test/java/io/rtr/alchemy/models/ExperimentTest.java index e97b8839..c5a07c75 100644 --- a/alchemy-core/src/test/java/io/rtr/alchemy/models/ExperimentTest.java +++ b/alchemy-core/src/test/java/io/rtr/alchemy/models/ExperimentTest.java @@ -44,6 +44,7 @@ Experiments.class, mock(Experiments.class), mock(Experiments.class)) mock(FilterExpression.class), mock(FilterExpression.class)) .suppress(Warning.STRICT_INHERITANCE) + .withOnlyTheseFields("name") .verify(); } diff --git a/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentOverrideTest.java b/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentOverrideTest.java index d20877a3..4c79028c 100644 --- a/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentOverrideTest.java +++ b/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentOverrideTest.java @@ -17,8 +17,8 @@ public void testEqualsHashCode() { .suppress(Warning.STRICT_INHERITANCE) .withPrefabValues( FilterExpression.class, - mock(FilterExpression.class), - mock(FilterExpression.class)) + FilterExpression.alwaysTrue(), + FilterExpression.of("false")) .verify(); } diff --git a/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentTest.java b/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentTest.java index 246c5b89..cf5c5d90 100644 --- a/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentTest.java +++ b/alchemy-core/src/test/java/io/rtr/alchemy/models/TreatmentTest.java @@ -10,7 +10,10 @@ public class TreatmentTest { @Test public void testEqualsHashCode() { - EqualsVerifier.forClass(Treatment.class).suppress(Warning.STRICT_INHERITANCE).verify(); + EqualsVerifier.forClass(Treatment.class) + .suppress(Warning.STRICT_INHERITANCE) + .withIgnoredFields("description") + .verify(); } @Test diff --git a/alchemy-db-memory/pom.xml b/alchemy-db-memory/pom.xml index c1f4aa44..bae55152 100644 --- a/alchemy-db-memory/pom.xml +++ b/alchemy-db-memory/pom.xml @@ -1,31 +1,76 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT - 4.0.0 + Alchemy Database Support using Memory A sample implementation of experiments store and cache alchemy-db-memory + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + io.rtr.alchemy + alchemy-core + ${project.version} + + + + + io.rtr.alchemy + alchemy-testing + ${project.version} + test + + + + + io.rtr.alchemy alchemy-core - ${project.version} + + + + com.google.code.findbugs + jsr305 + + + com.google.guava + guava + + + joda-time + joda-time + + + io.rtr.alchemy alchemy-testing - ${project.version} test - com.google.code.findbugs - jsr305 + junit + junit + test - \ No newline at end of file diff --git a/alchemy-db-mongo/pom.xml b/alchemy-db-mongo/pom.xml index b3c8e87d..ca2e7b2c 100644 --- a/alchemy-db-mongo/pom.xml +++ b/alchemy-db-mongo/pom.xml @@ -1,39 +1,92 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT - 4.0.0 + Alchemy Database Support for Mongo alchemy-db-mongo + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + io.rtr.alchemy + alchemy-core + ${project.version} + + + + + io.rtr.alchemy + alchemy-testing + ${project.version} + test + + + + + io.rtr.alchemy alchemy-core - ${project.version} + + + + + com.google.code.findbugs + jsr305 - io.rtr.alchemy - alchemy-testing - ${project.version} - test + com.google.guava + guava + + + joda-time + joda-time org.mongodb.morphia morphia - 1.3.2 - com.google.code.findbugs - jsr305 + org.mongodb + mongo-java-driver org.slf4j slf4j-api - + + + io.rtr.alchemy + alchemy-testing + test + + + junit + junit + test + + + org.mockito + mockito-core + test + + \ No newline at end of file diff --git a/alchemy-db-mongo/src/test/java/io/rtr/alchemy/db/mongo/MongoStoreProviderTest.java b/alchemy-db-mongo/src/test/java/io/rtr/alchemy/db/mongo/MongoStoreProviderTest.java index d815ad45..6333af3e 100644 --- a/alchemy-db-mongo/src/test/java/io/rtr/alchemy/db/mongo/MongoStoreProviderTest.java +++ b/alchemy-db-mongo/src/test/java/io/rtr/alchemy/db/mongo/MongoStoreProviderTest.java @@ -13,7 +13,7 @@ public class MongoStoreProviderTest extends ExperimentsStoreProviderTest { private static final String DATABASE_NAME = "test_experiments"; @Override - protected ExperimentsStoreProvider createProvider() throws Exception { + protected ExperimentsStoreProvider createProvider() { return MongoStoreProvider.newBuilder().setDatabase(DATABASE_NAME).build(); } diff --git a/alchemy-dependencies/pom.xml b/alchemy-dependencies/pom.xml new file mode 100644 index 00000000..587a9669 --- /dev/null +++ b/alchemy-dependencies/pom.xml @@ -0,0 +1,234 @@ + + + 4.0.0 + + + alchemy-parent + io.rtr.alchemy + 2.0.10-SNAPSHOT + + + alchemy-dependencies + pom + Alchemy Dependencies BOM + Bill of Materials for all third-party dependencies of the Alchemy project + + + + + 3.3.0 + + + + 3.29.2-GA + + + + 5.4.3.Final + + 1.1.0.Final + + 2.0.1 + + 3.0.2 + + + + 4.5.13 + + 3.6 + + 3.8.1 + + 1.3.29 + + 32.1.2-jre + + 2.9.10 + + 2.25.1 + + 2.12.5 + + 5.1.0 + + 2.5.0 + + 1.3.2 + + 3.4.0 + + 1.7.36 + + + + 3.3 + + + + 3.15.2 + + 1.3 + + 4.13.1 + + 2.24.5 + + + + + + + com.fasterxml.jackson + jackson-bom + ${jackson.version} + pom + import + + + com.google.guava + guava-bom + ${guava.version} + pom + import + + + io.dropwizard + dropwizard-bom + ${dropwizard.version} + pom + import + + + org.glassfish.hk2 + hk2-bom + ${hk2.version} + pom + import + + + org.glassfish.jersey + jersey-bom + ${jersey.version} + pom + import + + + + + cglib + cglib-nodep + ${cglib.version} + + + org.javassist + javassist + ${javassist.version} + + + org.objenesis + objenesis + ${objenesis.version} + + + + + com.google.code.findbugs + jsr305 + ${jsr305.version} + + + javax.validation + validation-api + ${javax.validation.version} + + + javax.ws.rs + javax.ws.rs-api + ${javax.ws.rs.version} + + + org.hibernate + hibernate-validator + ${hibernate-validator.version} + + + + + org.mongodb.morphia + morphia + ${morphia.version} + + + org.mongodb + mongo-java-driver + ${mongodb-driver.version} + + + + + com.google.inject + guice + ${guice.version} + + + org.apache.httpcomponents + httpclient + ${apache-httpclient.version} + + + org.slf4j + slf4j-api + ${slf4j.version} + + + + + joda-time + joda-time + ${joda-time.version} + + + ma.glasnost.orika + orika-core + ${orika.version} + + + org.apache.commons + commons-math3 + ${apache-math3.version} + + + org.apache.commons + commons-lang3 + ${apache-lang.version} + + + + + junit + junit + ${junit.version} + test + + + nl.jqno.equalsverifier + equalsverifier + ${equalsverifier.version} + test + + + org.hamcrest + hamcrest-core + ${hamcrest.version} + test + + + org.mockito + mockito-core + ${mockito.version} + test + + + + \ No newline at end of file diff --git a/alchemy-example/pom.xml b/alchemy-example/pom.xml index 2fa2b0df..33a9fa79 100644 --- a/alchemy-example/pom.xml +++ b/alchemy-example/pom.xml @@ -1,50 +1,171 @@ + 4.0.0 alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT - 4.0.0 + Alchemy Example Program alchemy-example + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + io.rtr.alchemy + alchemy-api + ${project.version} + + + io.rtr.alchemy + alchemy-client + ${project.version} + + + io.rtr.alchemy + alchemy-core + ${project.version} + + + io.rtr.alchemy + alchemy-db-memory + ${project.version} + + + io.rtr.alchemy + alchemy-db-mongo + ${project.version} + + + io.rtr.alchemy + alchemy-mapping + ${project.version} + + + io.rtr.alchemy + alchemy-service + ${project.version} + + + + + io.rtr.alchemy - alchemy-core - ${project.version} + alchemy-api io.rtr.alchemy alchemy-client - ${project.version} io.rtr.alchemy - alchemy-api - ${project.version} + alchemy-core io.rtr.alchemy - alchemy-service - ${project.version} + alchemy-db-memory io.rtr.alchemy - alchemy-db-memory - ${project.version} + alchemy-db-mongo io.rtr.alchemy - alchemy-testing - ${project.version} - test + alchemy-mapping + + + io.rtr.alchemy + alchemy-service + + + + + ch.qos.logback + logback-classic + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind + + + com.google.guava + guava + + + io.dropwizard + dropwizard-configuration + + + io.dropwizard + dropwizard-jackson + + + io.dropwizard + dropwizard-validation + + + javax.validation + validation-api + + + javax.ws.rs + javax.ws.rs-api + + + joda-time + joda-time + + + org.mongodb + mongo-java-driver + + + org.slf4j + slf4j-api + + org.apache.maven.plugins + maven-dependency-plugin + ${maven-dependency-plugin.version} + + + + ch.qos.logback:logback-classic + com.fasterxml.jackson.core:jackson-databind + com.google.guava:guava + io.dropwizard:dropwizard-configuration + joda-time:joda-time + org.slf4j:slf4j-api + + com.fasterxml.jackson.core:jackson-annotations + io.dropwizard:dropwizard-validation + javax.validation:validation-api + javax.ws.rs:javax.ws.rs-api + + + + org.apache.maven.plugins maven-shade-plugin diff --git a/alchemy-example/src/main/java/io/rtr/alchemy/example/config/PeriodicStaleCheckingCacheStrategy.java b/alchemy-example/src/main/java/io/rtr/alchemy/example/config/PeriodicStaleCheckingCacheStrategy.java index 54a284a9..2a019bf9 100644 --- a/alchemy-example/src/main/java/io/rtr/alchemy/example/config/PeriodicStaleCheckingCacheStrategy.java +++ b/alchemy-example/src/main/java/io/rtr/alchemy/example/config/PeriodicStaleCheckingCacheStrategy.java @@ -1,9 +1,11 @@ package io.rtr.alchemy.example.config; import com.fasterxml.jackson.annotation.JsonProperty; + import io.rtr.alchemy.caching.CacheStrategy; import io.rtr.alchemy.service.config.CacheStrategyConfiguration; -import io.dropwizard.util.Duration; + +import org.joda.time.Duration; import javax.validation.constraints.NotNull; @@ -16,7 +18,6 @@ public Duration getDuration() { @Override public CacheStrategy createStrategy() { - return new io.rtr.alchemy.caching.PeriodicStaleCheckingCacheStrategy( - org.joda.time.Duration.millis(duration.toMilliseconds())); + return new io.rtr.alchemy.caching.PeriodicStaleCheckingCacheStrategy(duration); } } diff --git a/alchemy-example/src/main/java/io/rtr/alchemy/example/mappers/UserMapper.java b/alchemy-example/src/main/java/io/rtr/alchemy/example/mappers/UserMapper.java index 6f5eb70b..2125f901 100644 --- a/alchemy-example/src/main/java/io/rtr/alchemy/example/mappers/UserMapper.java +++ b/alchemy-example/src/main/java/io/rtr/alchemy/example/mappers/UserMapper.java @@ -5,6 +5,7 @@ import io.rtr.alchemy.mapping.Mapper; /** Maps to and from UserDto to User */ +@SuppressWarnings("unused") public class UserMapper implements Mapper { @Override public User fromDto(UserDto source) { diff --git a/alchemy-mapping/pom.xml b/alchemy-mapping/pom.xml index 4737bbf1..c8b5a2ef 100644 --- a/alchemy-mapping/pom.xml +++ b/alchemy-mapping/pom.xml @@ -1,21 +1,42 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT + Alchemy Mapper Library Library for implementing mapping of DTO to BO to DB - 4.0.0 - alchemy-mapping + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + com.google.guava guava - + + + junit + junit + test + + \ No newline at end of file diff --git a/alchemy-service/pom.xml b/alchemy-service/pom.xml index d8f5ab4d..4ceee7ca 100644 --- a/alchemy-service/pom.xml +++ b/alchemy-service/pom.xml @@ -1,75 +1,170 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT + Alchemy REST Service REST service for hosting Alchemy as a service - 4.0.0 - alchemy-service + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + io.rtr.alchemy + alchemy-api + ${project.version} + + + io.rtr.alchemy + alchemy-core + ${project.version} + + + io.rtr.alchemy + alchemy-mapping + ${project.version} + + + + + io.rtr.alchemy + alchemy-db-memory + ${project.version} + test + + + + + - io.dropwizard - dropwizard-core + io.rtr.alchemy + alchemy-api io.rtr.alchemy alchemy-core - ${project.version} io.rtr.alchemy alchemy-mapping - ${project.version} + + - io.rtr.alchemy - alchemy-db-mongo - ${project.version} + com.fasterxml.jackson.core + jackson-annotations - io.rtr.alchemy - alchemy-db-memory - ${project.version} + com.fasterxml.jackson.core + jackson-databind - io.rtr.alchemy - alchemy-api - ${project.version} + com.fasterxml.jackson.datatype + jackson-datatype-guava com.fasterxml.jackson.module jackson-module-jsonSchema - org.slf4j - slf4j-api + com.google.code.findbugs + jsr305 + + + com.google.guava + guava + + + com.google.inject + guice + + + io.dropwizard + dropwizard-core + + + io.dropwizard + dropwizard-jersey + + + io.dropwizard + dropwizard-lifecycle + + + io.dropwizard.metrics + metrics-annotation + + + io.dropwizard.metrics + metrics-core + + + io.dropwizard.metrics + metrics-healthchecks + + + io.dropwizard.metrics + metrics-jmx + + + javax.validation + validation-api + + + javax.ws.rs + javax.ws.rs-api + + + joda-time + joda-time + + + + + io.dropwizard + dropwizard-jackson + test io.dropwizard dropwizard-testing - ${dropwizard.version} test - - - junit - junit - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} + io.rtr.alchemy + alchemy-db-memory + test - com.codahale.metrics - metrics-core - 3.0.2 + junit + junit + test + + + org.glassfish.jersey.core + jersey-common + test + + + org.mockito + mockito-core + test diff --git a/alchemy-service/src/main/java/io/rtr/alchemy/service/health/ExperimentsDatabaseProviderCheck.java b/alchemy-service/src/main/java/io/rtr/alchemy/service/health/ExperimentsDatabaseProviderCheck.java index cfcc388f..539c7bb2 100644 --- a/alchemy-service/src/main/java/io/rtr/alchemy/service/health/ExperimentsDatabaseProviderCheck.java +++ b/alchemy-service/src/main/java/io/rtr/alchemy/service/health/ExperimentsDatabaseProviderCheck.java @@ -2,6 +2,7 @@ import com.codahale.metrics.health.HealthCheck; import com.google.inject.Inject; + import io.rtr.alchemy.db.Filter; import io.rtr.alchemy.models.Experiments; diff --git a/alchemy-service/src/main/java/io/rtr/alchemy/service/jackson/ClassKeyDeserializer.java b/alchemy-service/src/main/java/io/rtr/alchemy/service/jackson/ClassKeyDeserializer.java index 335b76ad..ce096cea 100644 --- a/alchemy-service/src/main/java/io/rtr/alchemy/service/jackson/ClassKeyDeserializer.java +++ b/alchemy-service/src/main/java/io/rtr/alchemy/service/jackson/ClassKeyDeserializer.java @@ -12,7 +12,7 @@ public Object deserializeKey(String className, DeserializationContext context) throws IOException { try { return Class.forName(className); - } catch (ClassNotFoundException e) { + } catch (final Exception e) { throw new IOException(String.format("could not find class %s", className)); } } diff --git a/alchemy-service/src/main/java/io/rtr/alchemy/service/metrics/JmxMetricsManaged.java b/alchemy-service/src/main/java/io/rtr/alchemy/service/metrics/JmxMetricsManaged.java index 756214b5..749bcdf7 100644 --- a/alchemy-service/src/main/java/io/rtr/alchemy/service/metrics/JmxMetricsManaged.java +++ b/alchemy-service/src/main/java/io/rtr/alchemy/service/metrics/JmxMetricsManaged.java @@ -1,6 +1,7 @@ package io.rtr.alchemy.service.metrics; -import com.codahale.metrics.JmxReporter; +import com.codahale.metrics.jmx.JmxReporter; + import io.dropwizard.lifecycle.Managed; import io.dropwizard.setup.Environment; diff --git a/alchemy-testing/pom.xml b/alchemy-testing/pom.xml index c6493368..290808f6 100644 --- a/alchemy-testing/pom.xml +++ b/alchemy-testing/pom.xml @@ -1,42 +1,63 @@ + 4.0.0 + alchemy-parent io.rtr.alchemy 2.0.10-SNAPSHOT - 4.0.0 Alchemy Unit Test Helpers - alchemy-testing + + + + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + pom + import + + + + + io.rtr.alchemy + alchemy-core + ${project.version} + + + + + io.rtr.alchemy alchemy-core - ${project.version} + + - io.rtr.alchemy - alchemy-api - ${project.version} + com.google.guava + guava - io.rtr.alchemy - alchemy-mapping - ${project.version} + javax.validation + validation-api + + junit junit - ${junit.version} + compile org.mockito mockito-core - ${mockito.version} + compile - \ No newline at end of file diff --git a/alchemy-testing/src/main/java/io/rtr/alchemy/testing/db/ExperimentsStoreProviderTest.java b/alchemy-testing/src/main/java/io/rtr/alchemy/testing/db/ExperimentsStoreProviderTest.java index f45407d1..088d30f3 100644 --- a/alchemy-testing/src/main/java/io/rtr/alchemy/testing/db/ExperimentsStoreProviderTest.java +++ b/alchemy-testing/src/main/java/io/rtr/alchemy/testing/db/ExperimentsStoreProviderTest.java @@ -1,7 +1,17 @@ package io.rtr.alchemy.testing.db; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; + import com.google.common.collect.Iterables; import com.google.common.collect.Lists; + import io.rtr.alchemy.db.ExperimentsStoreProvider; import io.rtr.alchemy.db.Filter; import io.rtr.alchemy.db.Ordering; @@ -12,19 +22,13 @@ import io.rtr.alchemy.models.Allocations; import io.rtr.alchemy.models.Experiment; import io.rtr.alchemy.models.Experiments; + import org.junit.Before; import org.junit.Test; -import javax.validation.ValidationException; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; +import javax.validation.ValidationException; /** * The purpose of this class is to provide a base class for testing whether an implementation of a @@ -33,7 +37,7 @@ public abstract class ExperimentsStoreProviderTest { private Experiments experiments; - protected abstract ExperimentsStoreProvider createProvider() throws Exception; + protected abstract ExperimentsStoreProvider createProvider(); protected abstract void resetStore(); @@ -57,7 +61,7 @@ public AttributesMap computeAttributes() { } @Before - public void setUp() throws Exception { + public void setUp() { resetStore(); final ExperimentsStoreProvider provider = createProvider(); assertNotNull("provider cannot be null", provider); @@ -296,29 +300,33 @@ public void testExperimentObjectReference() throws ValidationException { final Experiment obj2 = experiments.get("foo"); - assertFalse( + assertNotSame( "saved experiment object reference should not be same object reference from get()", - obj1 == obj2); + obj1, + obj2); final Experiment obj3 = experiments.find().iterator().next(); - assertFalse( + assertNotSame( "saved experiment object reference should not be same object reference from find()", - obj1 == obj3); + obj1, + obj3); final Experiment obj4 = experiments.getActiveExperiments().iterator().next(); - assertFalse( + assertNotSame( "saved experiment object reference should not be same object reference from getActiveExperiments()", - obj1 == obj4); + obj1, + obj4); final Identity identity = mock(Identity.class); doReturn(AttributesMap.empty()).when(identity).computeAttributes(); final Experiment obj5 = experiments.getActiveTreatments(identity).keySet().iterator().next(); - assertFalse( + assertNotSame( "saved experiment object reference should not be same object reference from getActiveTreatments()", - obj1 == obj5); + obj1, + obj5); } } diff --git a/findBugsExclusions.xml b/findBugsExclusions.xml deleted file mode 100644 index db4b37b2..00000000 --- a/findBugsExclusions.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index bc15b116..c2b98f99 100644 --- a/pom.xml +++ b/pom.xml @@ -8,23 +8,24 @@ 2.0.10-SNAPSHOT https://github.com/RentTheRunway/alchemy Alchemy Project + + Alchemy is a library and a REST service for managing and tracking experiments and A/B testing + - alchemy-core - alchemy-service alchemy-api + alchemy-bom alchemy-client - alchemy-mapping + alchemy-core alchemy-db-mongo alchemy-db-memory + alchemy-dependencies alchemy-example + alchemy-mapping + alchemy-service alchemy-testing - - Alchemy is a library and a REST service for managing and tracking experiments and A/B testing - - UTF-8 1.8 @@ -33,59 +34,10 @@ ${encoding} ${encoding} - - - 4.5.13 - - 3.6 - - 3.8.1 - - 1.3.20 - - 3.0.2 - - 22.0 - - 5.4.3.Final - - 2.9.10 - - 2.25.1 - - 2.10.5 - - 4.1.0 - - 1.7.6 - - - - 2.2.2 - - - - 3.24.1-GA - - - - 1.4.1 - - 1.3 - - 4.13.1 - - 2.24.5 - - - 1.1 - 3.2.0 - 3.0.5 - 2.9.1 3.6.0 @@ -121,163 +73,9 @@ 3.1.2 1.6.13 - - - - - org.hibernate - hibernate-validator - ${hibernate-validator.version} - - - org.apache.commons - commons-lang3 - ${apache-lang.version} - - - org.apache.commons - commons-math3 - ${apache-math3.version} - - - org.apache.httpcomponents - httpclient - ${apache-httpclient.version} - - - joda-time - joda-time - ${joda-time.version} - - - org.javassist - javassist - ${javassist.version} - - - ma.glasnost.orika - orika-core - ${orika.version} - - - org.glassfish.jersey.core - jersey-client - ${jersey.version} - - - com.google.guava - guava - ${guava.version} - - - io.dropwizard - dropwizard-core - ${dropwizard.version} - - - io.dropwizard - dropwizard-client - ${dropwizard.version} - - - io.dropwizard - dropwizard-jackson - ${dropwizard.version} - - - io.dropwizard - dropwizard-validation - ${dropwizard.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-core - ${jackson.version} - - - com.fasterxml.jackson.core - jackson-annotations - ${jackson.version} - - - com.fasterxml.jackson.module - jackson-module-jsonSchema - ${jackson.version} - - - com.fasterxml.jackson.datatype - jackson-datatype-guava - ${jackson.version} - - - com.fasterxml.jackson.module - jackson-module-afterburner - ${jackson.version} - - - com.google.inject - guice - ${guice.version} - - - org.slf4j - slf4j-api - ${slf4j.version} - - - org.objenesis - objenesis - ${objenesis.version} - - - org.hamcrest - hamcrest-core - ${hamcrest.version} - - - com.google.code.findbugs - jsr305 - ${findbugs.version} - - - cglib - cglib-nodep - ${cglib.version} - - - junit - junit - ${junit.version} - - - - - - - junit - junit - ${junit.version} - test - - - nl.jqno.equalsverifier - equalsverifier - ${equalsverifier.version} - test - - - org.mockito - mockito-core - ${mockito.version} - test - - + 4.7.3.6 + @@ -300,6 +98,24 @@ + + com.github.spotbugs + spotbugs-maven-plugin + ${spotbugs-maven-plugin.version} + + + false + + + + spotbugs-check + + check + + + + + org.apache.maven.plugins maven-assembly-plugin @@ -331,6 +147,14 @@ org.apache.maven.plugins maven-dependency-plugin ${maven-dependency-plugin.version} + + + analyze + + analyze-only + + + @@ -464,28 +288,6 @@ false - - - org.codehaus.mojo - findbugs-maven-plugin - ${findbugs-maven-plugin.version} - - Max - Low - true - ${project.build.directory}/findbugs - findBugsExclusions.xml - - - - analyze-compile - compile - - check - - - - @@ -496,6 +298,12 @@ ${fmt-maven-plugin.version} + + com.github.spotbugs + spotbugs-maven-plugin + ${spotbugs-maven-plugin.version} + + org.apache.maven.plugins maven-dependency-plugin @@ -525,12 +333,6 @@ buildnumber-maven-plugin ${buildnumber-maven-plugin.version} - - - org.codehaus.mojo - findbugs-maven-plugin - ${findbugs-maven-plugin.version} - From d0cf4fb6ceb4eb28b45e5c6421eb9e9812c9a954 Mon Sep 17 00:00:00 2001 From: Matthew Read Date: Fri, 29 Sep 2023 17:23:29 -0400 Subject: [PATCH 2/6] bump up a minor version --- alchemy-api/pom.xml | 2 +- alchemy-bom/pom.xml | 2 +- alchemy-client/pom.xml | 2 +- alchemy-core/pom.xml | 2 +- alchemy-db-memory/pom.xml | 2 +- alchemy-db-mongo/pom.xml | 2 +- alchemy-dependencies/pom.xml | 2 +- alchemy-example/pom.xml | 2 +- alchemy-mapping/pom.xml | 2 +- alchemy-service/pom.xml | 2 +- alchemy-testing/pom.xml | 2 +- pom.xml | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/alchemy-api/pom.xml b/alchemy-api/pom.xml index 7aaa1c83..55424db6 100644 --- a/alchemy-api/pom.xml +++ b/alchemy-api/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy API Library diff --git a/alchemy-bom/pom.xml b/alchemy-bom/pom.xml index d9d0709f..0ec73d64 100644 --- a/alchemy-bom/pom.xml +++ b/alchemy-bom/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT alchemy-bom diff --git a/alchemy-client/pom.xml b/alchemy-client/pom.xml index bf69cc95..6c2404cb 100644 --- a/alchemy-client/pom.xml +++ b/alchemy-client/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy Service REST Client diff --git a/alchemy-core/pom.xml b/alchemy-core/pom.xml index 8bb5be9a..7174fd69 100644 --- a/alchemy-core/pom.xml +++ b/alchemy-core/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy Core Library diff --git a/alchemy-db-memory/pom.xml b/alchemy-db-memory/pom.xml index bae55152..d7b84876 100644 --- a/alchemy-db-memory/pom.xml +++ b/alchemy-db-memory/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy Database Support using Memory diff --git a/alchemy-db-mongo/pom.xml b/alchemy-db-mongo/pom.xml index ca2e7b2c..e8571c96 100644 --- a/alchemy-db-mongo/pom.xml +++ b/alchemy-db-mongo/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy Database Support for Mongo diff --git a/alchemy-dependencies/pom.xml b/alchemy-dependencies/pom.xml index 587a9669..f255bb5b 100644 --- a/alchemy-dependencies/pom.xml +++ b/alchemy-dependencies/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT alchemy-dependencies diff --git a/alchemy-example/pom.xml b/alchemy-example/pom.xml index 33a9fa79..52cfbe34 100644 --- a/alchemy-example/pom.xml +++ b/alchemy-example/pom.xml @@ -4,7 +4,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy Example Program diff --git a/alchemy-mapping/pom.xml b/alchemy-mapping/pom.xml index c8b5a2ef..3b5f1277 100644 --- a/alchemy-mapping/pom.xml +++ b/alchemy-mapping/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy Mapper Library diff --git a/alchemy-service/pom.xml b/alchemy-service/pom.xml index 4ceee7ca..ff5a6325 100644 --- a/alchemy-service/pom.xml +++ b/alchemy-service/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy REST Service diff --git a/alchemy-testing/pom.xml b/alchemy-testing/pom.xml index 290808f6..99bdb5ed 100644 --- a/alchemy-testing/pom.xml +++ b/alchemy-testing/pom.xml @@ -5,7 +5,7 @@ alchemy-parent io.rtr.alchemy - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT Alchemy Unit Test Helpers diff --git a/pom.xml b/pom.xml index c2b98f99..de303d36 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.rtr.alchemy alchemy-parent pom - 2.0.10-SNAPSHOT + 2.1.0-SNAPSHOT https://github.com/RentTheRunway/alchemy Alchemy Project From 1735ed1bccaa4262db4136c87dbd091a2f72db1c Mon Sep 17 00:00:00 2001 From: Matthew Read Date: Fri, 29 Sep 2023 17:57:54 -0400 Subject: [PATCH 3/6] pin Jetty and remove shading --- alchemy-client/pom.xml | 38 -------------------- alchemy-dependencies/pom.xml | 18 ++++++++-- alchemy-example/pom.xml | 69 ------------------------------------ alchemy-service/pom.xml | 39 -------------------- 4 files changed, 15 insertions(+), 149 deletions(-) diff --git a/alchemy-client/pom.xml b/alchemy-client/pom.xml index 6c2404cb..4bdb48f5 100644 --- a/alchemy-client/pom.xml +++ b/alchemy-client/pom.xml @@ -147,42 +147,4 @@ test - - - - - org.apache.maven.plugins - maven-shade-plugin - ${maven-shade-plugin.version} - - false - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - client-jar - package - - shade - - - target/alchemy-client.jar - - - - - - - - - \ No newline at end of file diff --git a/alchemy-dependencies/pom.xml b/alchemy-dependencies/pom.xml index f255bb5b..0433a38d 100644 --- a/alchemy-dependencies/pom.xml +++ b/alchemy-dependencies/pom.xml @@ -22,6 +22,8 @@ 3.29.2-GA + 9.4.52.v20230823 + 5.4.3.Final @@ -93,9 +95,9 @@ import - io.dropwizard - dropwizard-bom - ${dropwizard.version} + org.eclipse.jetty + jetty-bom + ${jetty.version} pom import @@ -229,6 +231,16 @@ ${mockito.version} test + + + + + io.dropwizard + dropwizard-bom + ${dropwizard.version} + pom + import + \ No newline at end of file diff --git a/alchemy-example/pom.xml b/alchemy-example/pom.xml index 52cfbe34..dbba7df1 100644 --- a/alchemy-example/pom.xml +++ b/alchemy-example/pom.xml @@ -165,75 +165,6 @@ - - - org.apache.maven.plugins - maven-shade-plugin - ${maven-shade-plugin.version} - - false - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - service-jar - package - - shade - - - target/ServiceExample.jar - - - - io.rtr.alchemy.example.ServiceExample - - - - - - client-jar - package - - shade - - - target/ClientExample.jar - - - - io.rtr.alchemy.example.ClientExample - - - - - - library-jar - package - - shade - - - target/LibraryExample.jar - - - - io.rtr.alchemy.example.LibraryExample - - - - - - \ No newline at end of file diff --git a/alchemy-service/pom.xml b/alchemy-service/pom.xml index ff5a6325..5497a5ac 100644 --- a/alchemy-service/pom.xml +++ b/alchemy-service/pom.xml @@ -167,43 +167,4 @@ test - - - - - org.apache.maven.plugins - maven-shade-plugin - ${maven-shade-plugin.version} - - false - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - - - - package - - shade - - - - - - io.rtr.alchemy.service.AlchemyService - - - - - - - - \ No newline at end of file From bc18596e64481d4e971aacb52a6d219945377677 Mon Sep 17 00:00:00 2001 From: Matthew Read Date: Fri, 29 Sep 2023 18:16:59 -0400 Subject: [PATCH 4/6] add dependabot config --- .github/dependabot.yml | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..a547a5bd --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,27 @@ +--- + +version: 2 + +registries: + maven-artifactory: + type: maven-repository + url: https://artifactory.rtr.cloud/artifactory/maven-releases/ + username: ${{ secrets.ARTIFACTORY_DEPLOY_USER }} + password: ${{ secrets.ARTIFACTORY_DEPLOY_PASSWORD }} + +updates: + - package-ecosystem: "maven" + registries: + - maven-artifactory + target-branch: "master" + directory: "/" + schedule: + interval: "weekly" + open-pull-requests-limit: 30 + + - package-ecosystem: "github-actions" + target-branch: "master" + directory: ".github/workflows" + schedule: + interval: "weekly" + open-pull-requests-limit: 10 From caf6efec877c075e853bf0f8bf1720a02702bf10 Mon Sep 17 00:00:00 2001 From: Matthew Read Date: Fri, 29 Sep 2023 18:26:19 -0400 Subject: [PATCH 5/6] missed pin for alchemy-dependencies --- alchemy-bom/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/alchemy-bom/pom.xml b/alchemy-bom/pom.xml index 0ec73d64..8b65f658 100644 --- a/alchemy-bom/pom.xml +++ b/alchemy-bom/pom.xml @@ -41,6 +41,11 @@ alchemy-db-mongo ${project.version} + + io.rtr.alchemy + alchemy-dependencies + ${project.version} + io.rtr.alchemy alchemy-mapping From df2eebcf8712de38e91c49ce920f562ee6d6a10e Mon Sep 17 00:00:00 2001 From: Matthew Read Date: Fri, 29 Sep 2023 18:55:06 -0400 Subject: [PATCH 6/6] fix pr workflow --- .github/workflows/pr-validation.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml index 5aec0c74..fb4a678d 100644 --- a/.github/workflows/pr-validation.yml +++ b/.github/workflows/pr-validation.yml @@ -52,10 +52,11 @@ jobs: ] - name: Resolve dependencies - run: mvn -B dependency:go-offline dependency:resolve-plugins + run: mvn -B dependency:go-offline + # can't add -o here; go-offline and resolve-plugins don't download plugin dependencies, lol - name: Build, test, and install - run: mvn -o -B install + run: mvn -B install # dependency:analyze-only is run as part of the previous step, but this sometimes catches more - name: Run dependency and bug analysis