I have a below project structure
API
microstream:
rest:
enabled: true
storage:
order:
root-class: 'fete.bird.entity.RootContainer'
storage-directory: 'api/build/order-storage'
Infrastructure
@Singleton
public class OrderRepository implements IOrderRepository {
private final RootProvider<RootContainer> rootProvider;
public OrderRepository(RootProvider<RootContainer> rootProvider) {
this.rootProvider = rootProvider;
}
@Override
public Order create(Order order) {
Map<UUID, Order> root = rootProvider.root().getOrders();
root.put(order.id(), order);
return order;
}
}
Core
@Introspected
public interface IOrderRepository {
Order create(Order order);
}
Controller
@Controller("/order")
public class OrderController {
private final IOrderRepository iOrderRepository;
public OrderController(IOrderRepository iOrderRepository) {
this.iOrderRepository = iOrderRepository;
}
@Post
public Order post(Order model) {
var result =iOrderRepository.create(model);
return result;
}
}
The data is not persisted when I stop the application and rerun it again, an empty map is loaded, it is not persisting the old data. A sample application https://github.com/anandjaisy/microstream-micronaut-issue