Skip to content

Implement DAO Factory pattern [Closed] #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

Closed
wants to merge 4 commits into 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 to switch between H2, Mongo, and Json flat file data sources. It includes a Customer model, DAOFactory abstract class, concrete factories (H2DataSourceFactory, MongoDataSourceFactory, FlatFileDataSourceFactory), CustomerDAO interface, and concrete DAO implementations. Comprehensive tests are also included.

Changes

File Summary
dao-factory/pom.xml This file defines the project dependencies, including H2, MongoDB driver, Gson, and testing libraries. It also includes the MIT license information.
dao-factory/src/main/java/com/iluwatar/daofactory/App.java This is the main application class. It demonstrates how to use the DAO Factory pattern to interact with different data sources (H2, MongoDB, and flat file).
dao-factory/src/main/java/com/iluwatar/daofactory/CustomException.java Defines a custom exception class for handling errors related to data access operations.
dao-factory/src/main/java/com/iluwatar/daofactory/Customer.java Represents a customer object with an ID and name. Uses generics for ID type flexibility.
dao-factory/src/main/java/com/iluwatar/daofactory/CustomerDAO.java Defines the interface for Data Access Objects (DAOs) that interact with customer data. Includes methods for CRUD operations and schema management.
dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactory.java Abstract factory for creating CustomerDAO instances. Provides a method to get the appropriate DAO based on the data source.
dao-factory/src/main/java/com/iluwatar/daofactory/DAOFactoryProvider.java Provides concrete DAOFactory instances based on the specified data source type (H2, Mongo, FlatFile).
dao-factory/src/main/java/com/iluwatar/daofactory/DataSourceType.java Enumerates the supported data source types: H2, Mongo, and FlatFile.
dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileCustomerDAO.java Implements CustomerDAO using a JSON file for persistence. Handles CRUD operations and schema management (file creation/deletion).
dao-factory/src/main/java/com/iluwatar/daofactory/FlatFileDataSourceFactory.java Concrete factory for creating FlatFileCustomerDAO instances.
dao-factory/src/main/java/com/iluwatar/daofactory/H2CustomerDAO.java Implements CustomerDAO using an in-memory H2 database. Handles CRUD operations and schema management.
dao-factory/src/main/java/com/iluwatar/daofactory/H2DataSourceFactory.java Concrete factory for creating H2CustomerDAO instances.
dao-factory/src/main/java/com/iluwatar/daofactory/MongoCustomerDAO.java Implements CustomerDAO using MongoDB. Handles CRUD operations and schema management (collection creation/deletion).
dao-factory/src/main/java/com/iluwatar/daofactory/MongoDataSourceFactory.java Concrete factory for creating MongoCustomerDAO instances.
dao-factory/src/test/java/com/iluwatar/daofactory/AppTest.java Unit tests for the App class, verifying the CRUD operations performed in the main method.
dao-factory/src/test/java/com/iluwatar/daofactory/DAOFactoryTest.java Unit tests for the DAOFactoryProvider, verifying the creation of different DAOFactory implementations.
dao-factory/src/test/java/com/iluwatar/daofactory/FlatFileCustomerDAOTest.java Comprehensive unit tests for the FlatFileCustomerDAO, covering various scenarios for CRUD operations and schema management.
dao-factory/src/test/java/com/iluwatar/daofactory/H2CustomerDAOTest.java Unit tests for H2CustomerDAO, covering various scenarios for CRUD operations and schema management, including connection success and failure cases.
dao-factory/src/test/java/com/iluwatar/daofactory/MongoCustomerDAOTest.java Unit tests for MongoCustomerDAO, covering various scenarios for CRUD operations and schema management.

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 48
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

@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)
Files Processed (19)
  • 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/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/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 (0)
Skipped Comments (0)

Copy link

@letdtcode
Copy link
Author

Please refer to pull request: #3282
instead of this one

@letdtcode letdtcode closed this May 17, 2025
@letdtcode letdtcode changed the title Implement DAO Factory pattern Implement DAO Factory pattern [Closed] May 17, 2025
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