2aca54cc788d3cb2515e1b5849526d49c7ecf1da
[policy/engine.git] / ECOMP-PAP-REST / src / main / java / org / openecomp / policy / pap / xacml / rest / HibernateSession.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ECOMP-PAP-REST
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.policy.pap.xacml.rest;
22
23 import org.hibernate.Session;
24 import org.hibernate.SessionFactory;
25 import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
26 import org.hibernate.cfg.Configuration;
27 import org.openecomp.policy.common.logging.flexlogger.FlexLogger;
28 import org.openecomp.policy.common.logging.flexlogger.Logger;
29
30 public class HibernateSession{
31         
32         private static final Logger LOGGER      = FlexLogger.getLogger(HibernateSession.class);
33         private static SessionFactory xacmlsessionFactory;
34         
35         private HibernateSession(){
36                 //Default Constructor
37         }
38         
39         static {
40                 try {
41                         Configuration configuration= new Configuration();
42                         configuration.setProperty("hibernate.connection.url", XACMLPapServlet.getPapDbUrl());
43                         configuration.setProperty("hibernate.connection.username", XACMLPapServlet.getPapDbUser());
44                         configuration.setProperty("hibernate.connection.password", XACMLPapServlet.getPapDbPassword());
45                         configuration.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
46                         configuration.setProperty("hibernate.connection.driver_class", XACMLPapServlet.getPapDbDriver());       
47                         configuration.setProperty("hibernate.show_sql", "false");       
48                         configuration.setProperty("hibernate.connection.autocommit", "true");
49                         configuration.setProperty("hibernate.c3p0.min_size", "5");
50                         configuration.setProperty("hibernate.c3p0.max_size", "200");
51                         configuration.setProperty("hibernate.c3p0.timeout", "3600");
52                         configuration.setProperty("hibernate.c3p0.idle_test_period", "3600");
53                         configuration.setProperty("hibernate.cache.use.query_cache", "false");
54                         configuration.setProperty("hibernate.cache.use_second_level_cache", "false");
55                         
56                         StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
57                         xacmlsessionFactory = configuration.configure("/hibernate.cfg.xml").buildSessionFactory(builder.build());
58                         
59                 } catch (Exception ex) {
60                         LOGGER.error("Exception Occured While Creating Hiberante Session Factory"+ex);
61                 }
62         }
63         
64         public static Session getSessionFactory(){
65                 return xacmlsessionFactory.openSession();
66         }
67
68 }