Resubmit AAA Model Changes
[aaa.git] / aaa-idmlight / src / main / java / org / opendaylight / aaa / idm / IdmLightApplication.java
1 /*
2  * Copyright (c) 2014, 2015 Hewlett-Packard Development Company, L.P. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.aaa.idm;
10
11 import java.sql.Connection;
12 import java.sql.DriverManager;
13 import java.util.Arrays;
14 import java.util.HashSet;
15 import java.util.Set;
16
17 import org.slf4j.Logger;
18 import org.slf4j.LoggerFactory;
19
20 import javax.ws.rs.core.Application;
21
22 import org.opendaylight.aaa.idm.rest.DomainHandler;
23 import org.opendaylight.aaa.idm.rest.RoleHandler;
24 import org.opendaylight.aaa.idm.rest.UserHandler;
25 import org.opendaylight.aaa.idm.rest.VersionHandler;
26 import org.opendaylight.aaa.idm.config.IdmLightConfig;
27 import org.opendaylight.aaa.idm.persistence.StoreBuilder;
28 import org.opendaylight.aaa.idm.persistence.StoreException;
29
30 /**
31  * A JAX-RS application for IdmLight.
32  *
33  * @author liemmn
34  *
35  */
36 public class IdmLightApplication extends Application {
37     private static Logger logger = LoggerFactory.getLogger(IdmLightApplication.class);
38     private static IdmLightConfig config = new IdmLightConfig();
39
40     public IdmLightApplication() {
41        StoreBuilder storeBuilder = new StoreBuilder();
42        if (!storeBuilder.exists()) {
43          storeBuilder.init();
44        }
45     }
46
47     public static IdmLightConfig getConfig() {
48        return config;
49     }
50
51     public static Connection getConnection(Connection existingConnection)
52           throws StoreException {
53        Connection connection = existingConnection;
54        try {
55           if (existingConnection == null || existingConnection.isClosed()) {
56              new org.h2.Driver();
57              connection = DriverManager.getConnection(config.getDbPath(),
58                    config.getDbUser(), config.getDbPwd());
59           }
60        } catch (Exception e) {
61           throw new StoreException("Cannot connect to database server " + e);
62        }
63
64        return connection;
65     }
66
67     @Override
68     public Set<Class<?>> getClasses() {
69         return new HashSet<Class<?>>(Arrays.asList(VersionHandler.class,
70                                                    DomainHandler.class,
71                                                    RoleHandler.class,
72                                                    UserHandler.class));
73     }
74
75 }