Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/*
* Copyright 2002-2022 Dr. Jalal Kiswani.
* Email: [email protected]
* Check out https://smart-api.com for more details
*
* All the opensource projects of Dr. Jalal Kiswani are free for personal and academic use only,
* for commercial usage and support, please contact the author.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.jk.data.datasource.impl;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import com.jk.core.annotations.AnnotationDetector;
import com.jk.core.config.JKConfig;
import com.jk.core.config.JKConstants;
import com.jk.core.context.JKContext;
import com.jk.core.context.JKContextFactory;
import com.jk.core.exceptions.JKDataAccessException;
import com.jk.core.logging.JKLogger;
import com.jk.core.logging.JKLoggerFactory;
import com.jk.core.security.JKSecurityUtil;
import com.jk.core.util.JK;
import com.jk.core.util.JKIOUtil;
import com.jk.data.datasource.JKDataSource;
import com.jk.data.datasource.JKDatabase;
import jakarta.persistence.Entity;
import jakarta.persistence.EntityManagerFactory;
// TODO: Auto-generated Javadoc
/**
* The Class JKAbstractDataSource.
*/
public abstract class JKAbstractDataSource implements JKDataSource {
/** The logger. */
protected JKLogger logger = JKLoggerFactory.getLogger(getClass());
/** The fix map. */
// Map fixMap = new LinkedHashMap();
// {
// fixMap.put("hibernate.c3p0.min_size", JKConstants.Hibernate.HIBERNATE_MIN_SIZE);
// fixMap.put("hibernate.c3p0.max_size", JKConstants.Hibernate.HIBERNATE_MAX_SIZE);
// }
/** The entities. */
private List entities;
/** The name. */
private String name;
/** The properties. */
private JKConfig config;
/** The emf. */
private EntityManagerFactory emf;
/**
* Instantiates a new JK abstract data source.
*/
public JKAbstractDataSource() {
}
/**
* Instantiates a new JK abstract data source.
*
* @param name the name
* @param properties the properties
*/
public JKAbstractDataSource(String name, Properties properties) {
this.name = name;
initProperties(properties);
}
/**
* Inits the properties.
*
* @param properties the properties
*/
protected void initProperties(Properties properties) {
logger.info("Load Pool config default properties from ({})", JKConstants.Config.DEFAULT_CONFIG_FILE);
config = new JKConfig(JKIOUtil.readPropertiesFile(JKConstants.Config.DEFAULT_CONFIG_FILE));
// set useful session info
config.setString("hibernate.connection.v$session.program", JK.getAppName());
config.addProperties(properties);
fixProperties();
}
/**
* Override config from properties.
*/
/////////////////////////////////////////////////////////////////////////////
protected void fixProperties() {
// we should put them first to insure
Properties properties = getProperties();
Set