From 20a7e21a494ed6169c698be99b197a2dfa588f45 Mon Sep 17 00:00:00 2001 From: Chip Pate Date: Wed, 14 Aug 2024 14:58:33 -0400 Subject: [PATCH] checkpoint: rewiring publishing --- .../terra/appmanager/events/ChartEvents.java | 7 +- .../events/client/PubsubClientFactory.java | 38 ++++++++-- .../google/CreateEventTopicIfNotExist.java | 7 +- .../EventTopicMustBeAlreadyCreated.java | 12 ++-- .../events/client/google/EventTopicName.java | 4 +- .../client/google/GooglePubsubClient.java | 33 +++++++++ .../client/google/TopicCreatorFactory.java | 12 ---- .../common/events/config/PubsubConfig.java | 69 +++++++++++-------- .../common/events/config/types/BeeConfig.java | 2 +- .../common/events/topics/ChartTopic.java | 30 ++++---- .../common/events/topics/EventTopic.java | 1 + .../events/topics/messages/ChartCreated.java | 7 -- .../events/topics/messages/ChartDeleted.java | 7 -- .../topics/{ => messages}/EventMessage.java | 2 +- .../topics/{ => messages}/EventTypes.java | 2 +- .../topics/messages/charts/ChartCreated.java | 9 +++ .../topics/messages/charts/ChartDeleted.java | 9 +++ .../messages/{ => charts}/ChartMessage.java | 4 +- .../messages/{ => charts}/ChartUpdated.java | 2 +- .../{ => messages}/EventMessageTest.java | 2 +- 20 files changed, 159 insertions(+), 100 deletions(-) delete mode 100644 service/src/main/java/bio/terra/common/events/client/google/TopicCreatorFactory.java delete mode 100644 service/src/main/java/bio/terra/common/events/topics/messages/ChartCreated.java delete mode 100644 service/src/main/java/bio/terra/common/events/topics/messages/ChartDeleted.java rename service/src/main/java/bio/terra/common/events/topics/{ => messages}/EventMessage.java (99%) rename service/src/main/java/bio/terra/common/events/topics/{ => messages}/EventTypes.java (61%) create mode 100644 service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartCreated.java create mode 100644 service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartDeleted.java rename service/src/main/java/bio/terra/common/events/topics/messages/{ => charts}/ChartMessage.java (65%) rename service/src/main/java/bio/terra/common/events/topics/messages/{ => charts}/ChartUpdated.java (78%) rename service/src/test/java/bio/terra/common/events/topics/{ => messages}/EventMessageTest.java (98%) diff --git a/service/src/main/java/bio/terra/appmanager/events/ChartEvents.java b/service/src/main/java/bio/terra/appmanager/events/ChartEvents.java index ddcfd9a..293dbc8 100644 --- a/service/src/main/java/bio/terra/appmanager/events/ChartEvents.java +++ b/service/src/main/java/bio/terra/appmanager/events/ChartEvents.java @@ -1,14 +1,13 @@ package bio.terra.appmanager.events; -import bio.terra.common.events.client.PubsubClient; +import bio.terra.common.events.client.PubsubClientFactory; import bio.terra.common.events.config.PubsubConfig; import bio.terra.common.events.topics.ChartTopic; import org.springframework.stereotype.Repository; @Repository public class ChartEvents extends ChartTopic { - - public ChartEvents(PubsubConfig config, PubsubClient client) { - super(config, client); + public ChartEvents(PubsubConfig config, PubsubClientFactory factory) { + super(config, factory); } } diff --git a/service/src/main/java/bio/terra/common/events/client/PubsubClientFactory.java b/service/src/main/java/bio/terra/common/events/client/PubsubClientFactory.java index 40017ee..2d37053 100644 --- a/service/src/main/java/bio/terra/common/events/client/PubsubClientFactory.java +++ b/service/src/main/java/bio/terra/common/events/client/PubsubClientFactory.java @@ -1,18 +1,48 @@ package bio.terra.common.events.client; import bio.terra.common.events.client.google.GooglePubsubClient; -import org.springframework.context.annotation.Bean; +import bio.terra.common.events.config.PubsubConfig; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import org.springframework.stereotype.Component; /** * Based on the various configs that are out there for pubsub, create an instance of the pubsub * client to be used by a Spring Boot application. + * + *

Current clients supported are: + * + *

+ * + *

This class would need to be added to if additional clients become supported (like Azure, AWS, + * etc.) */ @Component public class PubsubClientFactory { - @Bean(name = "pubsubClient") - public PubsubClient createPubsubClient() { - return new GooglePubsubClient(); + private PubsubConfig pubsubConfig; + + public PubsubClientFactory(PubsubConfig config) { + this.pubsubConfig = config; + } + + public PubsubClient createPubsubClient(String topicName) { + return new GooglePubsubClient( + pubsubConfig.googleConfig().projectId(), + formatTopicName(topicName), + pubsubConfig.createTopic()); + } + + private String formatTopicName(String topic) { + List parts = new ArrayList<>(Arrays.asList("event", topic)); + + if (pubsubConfig.nameSuffix() != null) { + parts.add(pubsubConfig.nameSuffix()); + } + + return String.join("-", parts); } } diff --git a/service/src/main/java/bio/terra/common/events/client/google/CreateEventTopicIfNotExist.java b/service/src/main/java/bio/terra/common/events/client/google/CreateEventTopicIfNotExist.java index 4db2969..a59f307 100644 --- a/service/src/main/java/bio/terra/common/events/client/google/CreateEventTopicIfNotExist.java +++ b/service/src/main/java/bio/terra/common/events/client/google/CreateEventTopicIfNotExist.java @@ -1,6 +1,5 @@ package bio.terra.common.events.client.google; -import bio.terra.appmanager.config.ChartPublisherConfig; import com.google.api.gax.rpc.PermissionDeniedException; import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.pubsub.v1.Topic; @@ -21,13 +20,13 @@ public CreateEventTopicIfNotExist(String projectId) { * This is called when running on a BEE Verify the topic exists or create the topic if it does not * exist Then return the TopicName * - * @param config + * @param name * @return TopicName for the Event topic for the environment */ @Override - public TopicName getEventTopicName(ChartPublisherConfig config) throws IOException { + public TopicName verifyTopicName(String name) throws IOException { try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, config.getTopicId()); + TopicName topicName = TopicName.of(projectId, name); try { Topic topic = topicAdminClient.getTopic(topicName); diff --git a/service/src/main/java/bio/terra/common/events/client/google/EventTopicMustBeAlreadyCreated.java b/service/src/main/java/bio/terra/common/events/client/google/EventTopicMustBeAlreadyCreated.java index 102368d..4220e17 100644 --- a/service/src/main/java/bio/terra/common/events/client/google/EventTopicMustBeAlreadyCreated.java +++ b/service/src/main/java/bio/terra/common/events/client/google/EventTopicMustBeAlreadyCreated.java @@ -1,6 +1,5 @@ package bio.terra.common.events.client.google; -import bio.terra.appmanager.config.ChartPublisherConfig; import com.google.cloud.pubsub.v1.TopicAdminClient; import com.google.pubsub.v1.Topic; import com.google.pubsub.v1.TopicName; @@ -23,22 +22,21 @@ public EventTopicMustBeAlreadyCreated(String projectId) { * This is called when running in the Production environment Verify the topic exists or generate a * ConfigurationError # Then return the TopicName * - * @param config + * @param name * @return TopicName for the Event topic for Production */ @Override - public TopicName getEventTopicName(ChartPublisherConfig config) - throws ConfigurationException, IOException { + public TopicName verifyTopicName(String name) throws ConfigurationException, IOException { + try (TopicAdminClient topicAdminClient = TopicAdminClient.create()) { - TopicName topicName = TopicName.of(projectId, config.getTopicId()); + TopicName topicName = TopicName.of(projectId, name); Topic topic = topicAdminClient.getTopic(topicName); if (topic != null) { return topicName; } throw new ConfigurationException("Error, Event Topic " + topicName + " must exist"); } catch (Exception e) { - logger.error( - "Error getting Event Topic for topic id: " + config.getTopicId() + " " + e.getMessage()); + logger.error("Error getting Event Topic with topic id: " + name + " " + e.getMessage()); throw e; } } diff --git a/service/src/main/java/bio/terra/common/events/client/google/EventTopicName.java b/service/src/main/java/bio/terra/common/events/client/google/EventTopicName.java index 58fa433..d04061e 100644 --- a/service/src/main/java/bio/terra/common/events/client/google/EventTopicName.java +++ b/service/src/main/java/bio/terra/common/events/client/google/EventTopicName.java @@ -1,11 +1,9 @@ package bio.terra.common.events.client.google; -import bio.terra.appmanager.config.ChartPublisherConfig; import com.google.pubsub.v1.TopicName; import java.io.IOException; import javax.naming.ConfigurationException; public interface EventTopicName { - TopicName getEventTopicName(ChartPublisherConfig config) - throws IOException, ConfigurationException; + TopicName verifyTopicName(String name) throws IOException, ConfigurationException; } diff --git a/service/src/main/java/bio/terra/common/events/client/google/GooglePubsubClient.java b/service/src/main/java/bio/terra/common/events/client/google/GooglePubsubClient.java index 8c86d4f..c6e039e 100644 --- a/service/src/main/java/bio/terra/common/events/client/google/GooglePubsubClient.java +++ b/service/src/main/java/bio/terra/common/events/client/google/GooglePubsubClient.java @@ -1,8 +1,11 @@ package bio.terra.common.events.client.google; import bio.terra.common.events.client.PubsubClient; +import com.google.cloud.pubsub.v1.Publisher; +import com.google.pubsub.v1.TopicName; import java.io.IOException; import java.nio.charset.StandardCharsets; +import javax.naming.ConfigurationException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,6 +17,16 @@ public class GooglePubsubClient extends PubsubClient { private static final Logger logger = LoggerFactory.getLogger(GooglePubsubClient.class); + private String projectId; + private String topicName; + private Publisher publisher; + + public GooglePubsubClient(String projectId, String topicName, boolean createTopic) { + this.projectId = projectId; + this.topicName = topicName; + publisher = buildPublisher(projectId, topicName, createTopic); + } + @Override public void publish(byte[] message) { if (logger.isDebugEnabled()) { @@ -28,4 +41,24 @@ public void subscribe() {} @Override public void close() throws IOException {} + + private Publisher buildPublisher(String projectId, String topicName, boolean createTopic) { + try { + TopicName topic = verifyTopic(projectId, topicName, createTopic); + return Publisher.newBuilder(topic).build(); + } catch (IOException | ConfigurationException e) { + throw new RuntimeException(e); + } + } + + private TopicName verifyTopic(String projectId, String topicName, boolean createTopic) + throws IOException, ConfigurationException { + EventTopicName topicCreator = null; + if (createTopic) { + topicCreator = new EventTopicMustBeAlreadyCreated(projectId); + } else { + topicCreator = new CreateEventTopicIfNotExist(projectId); + } + return topicCreator.verifyTopicName(topicName); + } } diff --git a/service/src/main/java/bio/terra/common/events/client/google/TopicCreatorFactory.java b/service/src/main/java/bio/terra/common/events/client/google/TopicCreatorFactory.java deleted file mode 100644 index 064ffe2..0000000 --- a/service/src/main/java/bio/terra/common/events/client/google/TopicCreatorFactory.java +++ /dev/null @@ -1,12 +0,0 @@ -package bio.terra.common.events.client.google; - -public class TopicCreatorFactory { - - public static EventTopicName createCreateEventTopicIfNotExist(String projectId) { - return new CreateEventTopicIfNotExist(projectId); - } - - public static EventTopicName createEventTopicMustBeAlreadyCreated(String projectId) { - return new EventTopicMustBeAlreadyCreated(projectId); - } -} diff --git a/service/src/main/java/bio/terra/common/events/config/PubsubConfig.java b/service/src/main/java/bio/terra/common/events/config/PubsubConfig.java index ddc3fed..d9eb4a6 100644 --- a/service/src/main/java/bio/terra/common/events/config/PubsubConfig.java +++ b/service/src/main/java/bio/terra/common/events/config/PubsubConfig.java @@ -1,14 +1,7 @@ package bio.terra.common.events.config; -import bio.terra.appmanager.config.ChartPublisherConfig; -import bio.terra.common.events.client.google.EventTopicName; -import bio.terra.common.events.client.google.TopicCreatorFactory; import bio.terra.common.events.config.types.BeeConfig; import bio.terra.common.events.config.types.GoogleConfig; -import com.google.cloud.pubsub.v1.Publisher; -import com.google.pubsub.v1.TopicName; -import java.io.IOException; -import javax.naming.ConfigurationException; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Configuration; @@ -21,8 +14,8 @@ public class PubsubConfig { private String applicationName; - BeeConfig beeConfig; - GoogleConfig googleConfig; + private BeeConfig beeConfig; + private GoogleConfig googleConfig; public PubsubConfig( ApplicationContext applicationContext, BeeConfig beeConfig, GoogleConfig googleConfig) { @@ -35,30 +28,46 @@ public String publishedBy() { return applicationName; } - // @Bean(name = "eventTopicName") - public EventTopicName getEventTopicName() { - - System.out.println("name: " + beeConfig.name()); - System.out.println("is_active: " + beeConfig.isActive()); - System.out.println("application_name: " + applicationName); + public boolean createTopic() { + return beeConfig != null && beeConfig.isActive(); + } - if (beeConfig.isActive()) { - return TopicCreatorFactory.createCreateEventTopicIfNotExist(googleConfig.projectId()); - } else { - return TopicCreatorFactory.createEventTopicMustBeAlreadyCreated(googleConfig.projectId()); - } + public GoogleConfig googleConfig() { + return googleConfig; } - // @Bean - // @Autowired - public Publisher chartPublisherDao(ChartPublisherConfig config, EventTopicName eventTopicName) { - Publisher publisher; - try { - TopicName topicName = eventTopicName.getEventTopicName(config); - publisher = Publisher.newBuilder(topicName).build(); - } catch (IOException | ConfigurationException e) { - throw new RuntimeException(e); + public String nameSuffix() { + if (beeConfig != null) { + return beeConfig.name(); } - return publisher; + return null; } + + // @Bean(name = "eventTopicName") + // public EventTopicName getEventTopicName() { + // + // System.out.println("name: " + beeConfig.name()); + // System.out.println("is_active: " + beeConfig.isActive()); + // System.out.println("application_name: " + applicationName); + // + // if (beeConfig.isActive()) { + // return TopicCreatorFactory.createCreateEventTopicIfNotExist(googleConfig.projectId()); + // } else { + // return TopicCreatorFactory.createEventTopicMustBeAlreadyCreated(googleConfig.projectId()); + // } + // } + // + // // @Bean + // // @Autowired + // public Publisher chartPublisherDao(ChartPublisherConfig config, EventTopicName eventTopicName) + // { + // Publisher publisher; + // try { + // TopicName topicName = eventTopicName.verifyTopicName(config); + // publisher = Publisher.newBuilder(topicName).build(); + // } catch (IOException | ConfigurationException e) { + // throw new RuntimeException(e); + // } + // return publisher; + // } } diff --git a/service/src/main/java/bio/terra/common/events/config/types/BeeConfig.java b/service/src/main/java/bio/terra/common/events/config/types/BeeConfig.java index bf36beb..d799074 100644 --- a/service/src/main/java/bio/terra/common/events/config/types/BeeConfig.java +++ b/service/src/main/java/bio/terra/common/events/config/types/BeeConfig.java @@ -3,4 +3,4 @@ import org.springframework.boot.context.properties.ConfigurationProperties; @ConfigurationProperties(prefix = "terra.common.bee") -public record BeeConfig(String name, Boolean isActive) {} +public record BeeConfig(String name, boolean isActive) {} diff --git a/service/src/main/java/bio/terra/common/events/topics/ChartTopic.java b/service/src/main/java/bio/terra/common/events/topics/ChartTopic.java index a020df3..9ae794f 100644 --- a/service/src/main/java/bio/terra/common/events/topics/ChartTopic.java +++ b/service/src/main/java/bio/terra/common/events/topics/ChartTopic.java @@ -1,11 +1,11 @@ package bio.terra.common.events.topics; -import bio.terra.common.events.client.PubsubClient; +import bio.terra.common.events.client.PubsubClientFactory; import bio.terra.common.events.config.PubsubConfig; -import bio.terra.common.events.topics.messages.ChartCreated; -import bio.terra.common.events.topics.messages.ChartDeleted; -import bio.terra.common.events.topics.messages.ChartMessage; -import bio.terra.common.events.topics.messages.ChartUpdated; +import bio.terra.common.events.topics.messages.charts.ChartCreated; +import bio.terra.common.events.topics.messages.charts.ChartDeleted; +import bio.terra.common.events.topics.messages.charts.ChartMessage; +import bio.terra.common.events.topics.messages.charts.ChartUpdated; import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Repository; import org.springframework.web.util.UriComponentsBuilder; @@ -15,11 +15,19 @@ public class ChartTopic extends EventTopic { private String publishedBy; - public ChartTopic(PubsubConfig config, PubsubClient pubsubClient) { - super(pubsubClient); + public ChartTopic(PubsubConfig config, PubsubClientFactory clientFactory) { + super(clientFactory.createPubsubClient("charts")); publishedBy = config.publishedBy(); } + @NotNull + private static String buildEntityUrl(String entityId) { + return UriComponentsBuilder.newInstance() + .path("api/admin/v1/charts") + .queryParam("chartName", entityId) + .toUriString(); + } + @Override protected Boolean process(ChartMessage message) { return Boolean.TRUE; @@ -29,14 +37,6 @@ public void chartCreated(String entityId) { publish(new ChartCreated(publishedBy, entityId, buildEntityUrl(entityId))); } - @NotNull - private static String buildEntityUrl(String entityId) { - return UriComponentsBuilder.newInstance() - .path("api/admin/v1/charts") - .queryParam("chartName", entityId) - .toUriString(); - } - public void chartUpdated(String entityId) { publish(new ChartUpdated(publishedBy, entityId, buildEntityUrl(entityId))); } diff --git a/service/src/main/java/bio/terra/common/events/topics/EventTopic.java b/service/src/main/java/bio/terra/common/events/topics/EventTopic.java index beabc84..360136e 100644 --- a/service/src/main/java/bio/terra/common/events/topics/EventTopic.java +++ b/service/src/main/java/bio/terra/common/events/topics/EventTopic.java @@ -1,6 +1,7 @@ package bio.terra.common.events.topics; import bio.terra.common.events.client.PubsubClient; +import bio.terra.common.events.topics.messages.EventMessage; import com.fasterxml.jackson.core.JsonProcessingException; import java.nio.charset.StandardCharsets; diff --git a/service/src/main/java/bio/terra/common/events/topics/messages/ChartCreated.java b/service/src/main/java/bio/terra/common/events/topics/messages/ChartCreated.java deleted file mode 100644 index 370cdd5..0000000 --- a/service/src/main/java/bio/terra/common/events/topics/messages/ChartCreated.java +++ /dev/null @@ -1,7 +0,0 @@ -package bio.terra.common.events.topics.messages; - -public class ChartCreated extends ChartMessage { - public ChartCreated(String publishedBy, String entityId, String entityUrl) { - super(publishedBy, TYPES.CHART_CREATED, entityId, entityUrl); - } -} diff --git a/service/src/main/java/bio/terra/common/events/topics/messages/ChartDeleted.java b/service/src/main/java/bio/terra/common/events/topics/messages/ChartDeleted.java deleted file mode 100644 index b70e2a7..0000000 --- a/service/src/main/java/bio/terra/common/events/topics/messages/ChartDeleted.java +++ /dev/null @@ -1,7 +0,0 @@ -package bio.terra.common.events.topics.messages; - -public class ChartDeleted extends ChartMessage { - public ChartDeleted(String publishedBy, String entityId, String entityUrl) { - super(publishedBy, TYPES.CHART_DELETED, entityId, entityUrl); - } -} diff --git a/service/src/main/java/bio/terra/common/events/topics/EventMessage.java b/service/src/main/java/bio/terra/common/events/topics/messages/EventMessage.java similarity index 99% rename from service/src/main/java/bio/terra/common/events/topics/EventMessage.java rename to service/src/main/java/bio/terra/common/events/topics/messages/EventMessage.java index aee5203..2e3f975 100644 --- a/service/src/main/java/bio/terra/common/events/topics/EventMessage.java +++ b/service/src/main/java/bio/terra/common/events/topics/messages/EventMessage.java @@ -1,4 +1,4 @@ -package bio.terra.common.events.topics; +package bio.terra.common.events.topics.messages; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/service/src/main/java/bio/terra/common/events/topics/EventTypes.java b/service/src/main/java/bio/terra/common/events/topics/messages/EventTypes.java similarity index 61% rename from service/src/main/java/bio/terra/common/events/topics/EventTypes.java rename to service/src/main/java/bio/terra/common/events/topics/messages/EventTypes.java index 24df097..4dac94d 100644 --- a/service/src/main/java/bio/terra/common/events/topics/EventTypes.java +++ b/service/src/main/java/bio/terra/common/events/topics/messages/EventTypes.java @@ -1,4 +1,4 @@ -package bio.terra.common.events.topics; +package bio.terra.common.events.topics.messages; public enum EventTypes { CHART_CREATED, diff --git a/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartCreated.java b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartCreated.java new file mode 100644 index 0000000..f2f1d30 --- /dev/null +++ b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartCreated.java @@ -0,0 +1,9 @@ +package bio.terra.common.events.topics.messages.charts; + +import bio.terra.common.events.topics.messages.EventMessage; + +public class ChartCreated extends ChartMessage { + public ChartCreated(String publishedBy, String entityId, String entityUrl) { + super(publishedBy, EventMessage.TYPES.CHART_CREATED, entityId, entityUrl); + } +} diff --git a/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartDeleted.java b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartDeleted.java new file mode 100644 index 0000000..87399a9 --- /dev/null +++ b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartDeleted.java @@ -0,0 +1,9 @@ +package bio.terra.common.events.topics.messages.charts; + +import bio.terra.common.events.topics.messages.EventMessage; + +public class ChartDeleted extends ChartMessage { + public ChartDeleted(String publishedBy, String entityId, String entityUrl) { + super(publishedBy, EventMessage.TYPES.CHART_DELETED, entityId, entityUrl); + } +} diff --git a/service/src/main/java/bio/terra/common/events/topics/messages/ChartMessage.java b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartMessage.java similarity index 65% rename from service/src/main/java/bio/terra/common/events/topics/messages/ChartMessage.java rename to service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartMessage.java index 8432252..d7b7e79 100644 --- a/service/src/main/java/bio/terra/common/events/topics/messages/ChartMessage.java +++ b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartMessage.java @@ -1,6 +1,6 @@ -package bio.terra.common.events.topics.messages; +package bio.terra.common.events.topics.messages.charts; -import bio.terra.common.events.topics.EventMessage; +import bio.terra.common.events.topics.messages.EventMessage; public abstract class ChartMessage extends EventMessage { diff --git a/service/src/main/java/bio/terra/common/events/topics/messages/ChartUpdated.java b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartUpdated.java similarity index 78% rename from service/src/main/java/bio/terra/common/events/topics/messages/ChartUpdated.java rename to service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartUpdated.java index dafd9ba..7144310 100644 --- a/service/src/main/java/bio/terra/common/events/topics/messages/ChartUpdated.java +++ b/service/src/main/java/bio/terra/common/events/topics/messages/charts/ChartUpdated.java @@ -1,4 +1,4 @@ -package bio.terra.common.events.topics.messages; +package bio.terra.common.events.topics.messages.charts; public class ChartUpdated extends ChartMessage { public ChartUpdated(String publishedBy, String entityId, String entityUrl) { diff --git a/service/src/test/java/bio/terra/common/events/topics/EventMessageTest.java b/service/src/test/java/bio/terra/common/events/topics/messages/EventMessageTest.java similarity index 98% rename from service/src/test/java/bio/terra/common/events/topics/EventMessageTest.java rename to service/src/test/java/bio/terra/common/events/topics/messages/EventMessageTest.java index 0e2385c..fb61c0d 100644 --- a/service/src/test/java/bio/terra/common/events/topics/EventMessageTest.java +++ b/service/src/test/java/bio/terra/common/events/topics/messages/EventMessageTest.java @@ -1,4 +1,4 @@ -package bio.terra.common.events.topics; +package bio.terra.common.events.topics.messages; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows;