Skip to content

Implement DAO Factory pattern #3275

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

letdtcode
Copy link

Pull Request Template

What does this PR do?

This pull request implements the DAO Factory pattern, which demonstrates how the application should be switch between three different types of data sources (H2, Mongo, Json flat file). It includes code documented implementation, comprehensive tests, detailed documentation.

Key features

  • Customer: A model class presenting object that needs persistence in data source
  • DAOFactory: Abstract class provides a way to get the appropriate DAO based on the data source.
  • H2DataSourceFactory, MongoDataSourceFactory, FlatFileDataSourceFactory: Concrete factory which implement DAOFactory and return specific DAO Customer.
  • CustomerDAO: Define CRUD operation with Customer model.
  • FlatFileCustomerDAO, H2CustomerDAO, MongoCustomerDAO: Concrete DAO Customer which implement CRUD operation with data source.

Related Issue

Closes #1270

Copy link

github-actions bot commented May 4, 2025

PR Summary

This PR implements the DAO Factory pattern, which allows switching between different data sources (H2, Mongo, Json flat file) for customer data persistence. It includes a Customer model, DAOFactory abstract class, concrete factories (H2DataSourceFactory, MongoDataSourceFactory, FlatFileDataSourceFactory), CustomerDAO interface, and concrete DAO implementations. Comprehensive tests and documentation are also provided.

Changes

File Summary
dao-factory/README.md This file provides a comprehensive guide to the DAO Factory pattern, including its intent, real-world examples, class diagrams, programmatic examples in Java, usage scenarios, benefits, trade-offs, and related design patterns. It also includes links to external resources for further learning.
dao-factory/etc/dao-factory.png New file: Class diagram for the DAO Factory pattern.
dao-factory/etc/dao-factory.puml New file: PlantUML class diagram for the DAO Factory pattern.
dao-factory/pom.xml New file: Maven project configuration file for the DAO Factory implementation. Includes dependencies for H2 database, MongoDB driver, Gson, and testing frameworks.
dao-factory/src/main/java/com/iluwatar/daofactory/App.java This Java class demonstrates the usage of the DAO Factory pattern. It performs CRUD operations on Customer objects using H2, MongoDB, and FlatFile data sources.
dao-factory/src/main/java/com/iluwatar/daofactory/CustomException.java New file: Custom exception class for handling errors related to data access operations.
dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java New file: Represents a customer with an ID and name. Uses generics for ID type flexibility.
dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java New file: Interface defining CRUD operations for Customer objects. Provides abstraction for data access.
dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java New file: Abstract class defining the interface for creating CustomerDAO objects. Uses Abstract Factory pattern.
dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactoryProvider.java New file: Provides concrete DAOFactory instances based on DataSourceType.
dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java New file: Enum defining supported data source types: H2, Mongo, FlatFile.
dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java New file: Implements CustomerDAO using JSON flat file storage. Handles file I/O and JSON serialization.
dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java New file: Creates a FlatFileCustomerDAO instance.
dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java New file: Implements CustomerDAO using H2 in-memory database. Handles database interactions.
dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java New file: Creates an H2CustomerDAO instance.
dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java New file: Implements CustomerDAO using MongoDB. Handles MongoDB interactions.
dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java New file: Creates a MongoCustomerDAO instance.
dao-factory/src/main/resources/logback.xml New file: Logback configuration file for logging.
dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java New file: Unit tests for the App class, verifying CRUD operations.
dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java New file: Unit tests for DAOFactory, verifying creation of different DAO types.
dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java New file: Unit tests for FlatFileCustomerDAO, covering various scenarios including file I/O and JSON handling.
dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java New file: Unit tests for H2CustomerDAO, covering various scenarios including database interactions and exception handling.
dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java New file: Unit tests for MongoCustomerDAO, covering various scenarios including MongoDB interactions and exception handling.
pom.xml Added dao-factory module to the project.

autogenerated by presubmit.ai

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (4)
  • 0f7a828: doc: add document for dao-factory
  • 1e1c20e: test: Add unit test dao-factory
  • c854664: feat: done implement dao factory
  • 39a693d: feat: implement dao factory
Files Processed (23)
  • dao-factory/README.md (1 hunk)
  • dao-factory/etc/dao-factory.png (0 hunks)
  • dao-factory/etc/dao-factory.puml (1 hunk)
  • dao-factory/pom.xml (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/resources/logback.xml (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
  • money/pom.xml (1 hunk)
  • pom.xml (1 hunk)
Actionable Comments (0)
Skipped Comments (0)

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
  • 1fda840: Merge branch 'master' into feat/dao-factory
Files Processed (23)
  • dao-factory/README.md (1 hunk)
  • dao-factory/etc/dao-factory.png (0 hunks)
  • dao-factory/etc/dao-factory.puml (1 hunk)
  • dao-factory/pom.xml (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/resources/logback.xml (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
  • money/pom.xml (1 hunk)
  • pom.xml (1 hunk)
Actionable Comments (0)
Skipped Comments (0)

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
  • 865304d: fix: h2 inmemory database to pass CI
Files Processed (1)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (1)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java [1-278]

    enhancement: "Improve test coverage for other DAO implementations."

@letdtcode letdtcode force-pushed the feat/dao-factory branch from 865304d to c24ac0a Compare May 6, 2025 18:18
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
  • c24ac0a: fix: h2 inmemory database to pass CI
Files Processed (2)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
Actionable Comments (1)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java [1-24]

    security: "Hardcoded database credentials in H2DataSourceFactory."

Skipped Comments (0)

Comment on lines 1 to 24
package com.iluwatar.daofactory;

import javax.sql.DataSource;
import org.h2.jdbcx.JdbcDataSource;

/** H2DataSourceFactory concrete factory. */
public class H2DataSourceFactory extends DAOFactory {
private final String DB_URL = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
private final String USER = "sa";
private final String PASS = "";

@Override
public CustomerDAO createCustomerDAO() {
return new H2CustomerDAO(createDataSource());
}

private DataSource createDataSource() {
var dataSource = new JdbcDataSource();
dataSource.setURL(DB_URL);
dataSource.setUser(USER);
dataSource.setPassword(PASS);
return dataSource;
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The H2DataSourceFactory class uses hardcoded credentials. Consider using environment variables or a configuration file to store sensitive information like database URLs, usernames, and passwords. This improves security and makes it easier to manage credentials across different environments.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
Files Processed (1)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (1)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java [1-70]

    enhancement: "Add integration tests for comprehensive coverage."

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
Files Processed (2)
  • dao-factory/pom.xml (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (1)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java [1-69]

    enhancement: "Improve test coverage in AppTest."

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
Files Processed (2)
  • dao-factory/pom.xml (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (1)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java [1-69]

    enhancement: "Add integration tests to complement unit tests."

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
Files Processed (17)
  • dao-factory/pom.xml (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
Actionable Comments (1)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java [32-47]

    security: "Hardcoded credentials in H2DataSourceFactory."

Skipped Comments (0)

Comment on lines 32 to 47
private final String DB_URL = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
private final String USER = "sa";
private final String PASS = "";

@Override
public CustomerDAO createCustomerDAO() {
return new H2CustomerDAO(createDataSource());
}

private DataSource createDataSource() {
var dataSource = new JdbcDataSource();
dataSource.setURL(DB_URL);
dataSource.setUser(USER);
dataSource.setPassword(PASS);
return dataSource;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The H2DataSourceFactory class uses hardcoded credentials. Consider using environment variables or a configuration file to store sensitive information like database URLs, usernames, and passwords. This improves security and makes it easier to manage credentials across different environments.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
Files Processed (17)
  • dao-factory/pom.xml (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
Actionable Comments (1)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java [32-47]

    security: "Hardcoded credentials in H2DataSourceFactory."

Skipped Comments (0)

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 Pull request needs attention.

Review Summary

Commits Considered (1)
Files Processed (17)
  • dao-factory/pom.xml (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
Actionable Comments (1)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java [32-47]

    security: "Hardcoded database credentials in H2DataSourceFactory."

Skipped Comments (0)

Comment on lines 32 to 47
private final String DB_URL = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
private final String USER = "sa";
private final String PASS = "";

@Override
public CustomerDAO createCustomerDAO() {
return new H2CustomerDAO(createDataSource());
}

private DataSource createDataSource() {
var dataSource = new JdbcDataSource();
dataSource.setURL(DB_URL);
dataSource.setUser(USER);
dataSource.setPassword(PASS);
return dataSource;
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The H2DataSourceFactory class uses hardcoded credentials. Consider using environment variables or a configuration file to store sensitive information like database URLs, usernames, and passwords. This improves security and makes it easier to manage credentials across different environments.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just in memory database. I am wondering that is it really necessary to store information in configuration file ?

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
Files Processed (17)
  • dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomException.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactoryProvider.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (0)

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Review Summary

Commits Considered (1)
Files Processed (17)
  • dao-factory/src/main/java/com/iluwatar/daofactory/App.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomException.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactoryProvider.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java (1 hunk)
  • dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java (1 hunk)
  • dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (0)

Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
7 Security Hotspots
E Reliability Rating on New Code (required ≥ A)
E Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DAO Factory pattern
1 participant