Search in sources :

Example 1 with QueryServiceImpl

use of com.iluwatar.cqrs.queries.QueryServiceImpl in project java-design-patterns by iluwatar.

the class App method main.

/**
 * Program entry point
 *
 * @param args
 *          command line args
 */
public static void main(String[] args) {
    ICommandService commands = new CommandServiceImpl();
    // Create Authors and Books using CommandService
    commands.authorCreated("eEvans", "Eric Evans", "eEvans@email.com");
    commands.authorCreated("jBloch", "Joshua Bloch", "jBloch@email.com");
    commands.authorCreated("mFowler", "Martin Fowler", "mFowler@email.com");
    commands.bookAddedToAuthor("Domain-Driven Design", 60.08, "eEvans");
    commands.bookAddedToAuthor("Effective Java", 40.54, "jBloch");
    commands.bookAddedToAuthor("Java Puzzlers", 39.99, "jBloch");
    commands.bookAddedToAuthor("Java Concurrency in Practice", 29.40, "jBloch");
    commands.bookAddedToAuthor("Patterns of Enterprise Application Architecture", 54.01, "mFowler");
    commands.bookAddedToAuthor("Domain Specific Languages", 48.89, "mFowler");
    commands.authorNameUpdated("eEvans", "Eric J. Evans");
    IQueryService queries = new QueryServiceImpl();
    // Query the database using QueryService
    Author nullAuthor = queries.getAuthorByUsername("username");
    Author eEvans = queries.getAuthorByUsername("eEvans");
    BigInteger jBlochBooksCount = queries.getAuthorBooksCount("jBloch");
    BigInteger authorsCount = queries.getAuthorsCount();
    Book dddBook = queries.getBook("Domain-Driven Design");
    List<Book> jBlochBooks = queries.getAuthorBooks("jBloch");
    LOGGER.info("Author username : {}", nullAuthor);
    LOGGER.info("Author eEvans : {}", eEvans);
    LOGGER.info("jBloch number of books : {}", jBlochBooksCount);
    LOGGER.info("Number of authors : {}", authorsCount);
    LOGGER.info("DDD book : {}", dddBook);
    LOGGER.info("jBloch books : {}", jBlochBooks);
    HibernateUtil.getSessionFactory().close();
}
Also used : CommandServiceImpl(com.iluwatar.cqrs.commandes.CommandServiceImpl) IQueryService(com.iluwatar.cqrs.queries.IQueryService) Book(com.iluwatar.cqrs.dto.Book) Author(com.iluwatar.cqrs.dto.Author) BigInteger(java.math.BigInteger) ICommandService(com.iluwatar.cqrs.commandes.ICommandService) QueryServiceImpl(com.iluwatar.cqrs.queries.QueryServiceImpl)

Example 2 with QueryServiceImpl

use of com.iluwatar.cqrs.queries.QueryServiceImpl in project java-design-patterns by iluwatar.

the class IntegrationTest method initializeAndPopulateDatabase.

@BeforeAll
public static void initializeAndPopulateDatabase() {
    commandService = new CommandServiceImpl();
    queryService = new QueryServiceImpl();
    // create first author1
    commandService.authorCreated("username1", "name1", "email1");
    // create author1 and update all its data
    commandService.authorCreated("username2", "name2", "email2");
    commandService.authorEmailUpdated("username2", "new_email2");
    commandService.authorNameUpdated("username2", "new_name2");
    commandService.authorUsernameUpdated("username2", "new_username2");
    // add book1 to author1
    commandService.bookAddedToAuthor("title1", 10, "username1");
    // add book2 to author1 and update all its data
    commandService.bookAddedToAuthor("title2", 20, "username1");
    commandService.bookPriceUpdated("title2", 30);
    commandService.bookTitleUpdated("title2", "new_title2");
}
Also used : CommandServiceImpl(com.iluwatar.cqrs.commandes.CommandServiceImpl) QueryServiceImpl(com.iluwatar.cqrs.queries.QueryServiceImpl) BeforeAll(org.junit.jupiter.api.BeforeAll)

Aggregations

CommandServiceImpl (com.iluwatar.cqrs.commandes.CommandServiceImpl)2 QueryServiceImpl (com.iluwatar.cqrs.queries.QueryServiceImpl)2 ICommandService (com.iluwatar.cqrs.commandes.ICommandService)1 Author (com.iluwatar.cqrs.dto.Author)1 Book (com.iluwatar.cqrs.dto.Book)1 IQueryService (com.iluwatar.cqrs.queries.IQueryService)1 BigInteger (java.math.BigInteger)1 BeforeAll (org.junit.jupiter.api.BeforeAll)1