SystemMessagesService.java
package edu.ucsb.cs156.courses.services;
import edu.ucsb.cs156.courses.models.SystemMessage;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import org.springframework.stereotype.Service;
/**
* Holds system messages (e.g. startup misconfiguration warnings) for the lifetime of the running
* process. Deliberately in-memory rather than persisted: a {@code @Service} bean is a Spring
* singleton by default, so this naturally starts empty on every process start with no explicit
* "clear on startup" step required, and -- should this app ever run multiple instances -- each
* instance reports its own diagnostics rather than a shared table conflating them.
*/
@Service
public class SystemMessagesService {
private final List<SystemMessage> messages = new CopyOnWriteArrayList<>();
public void addMessage(String variant, String message) {
messages.add(SystemMessage.builder().variant(variant).message(message).build());
}
public List<SystemMessage> getMessages() {
return Collections.unmodifiableList(messages);
}
}