Project

General

Profile

Download (4.92 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.vaadin.util;
2

    
3
import java.sql.Connection;
4
import java.sql.DatabaseMetaData;
5
import java.sql.SQLException;
6

    
7
import javax.servlet.ServletContext;
8
import javax.sql.DataSource;
9

    
10
import org.springframework.context.ApplicationContext;
11
import org.springframework.web.context.support.WebApplicationContextUtils;
12

    
13
import com.vaadin.data.util.sqlcontainer.connection.J2EEConnectionPool;
14
import com.vaadin.data.util.sqlcontainer.connection.JDBCConnectionPool;
15
import com.vaadin.server.VaadinServlet;
16

    
17
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
18
import eu.etaxonomy.cdm.api.service.IClassificationService;
19
import eu.etaxonomy.cdm.api.service.ICommonService;
20
import eu.etaxonomy.cdm.api.service.IDescriptionService;
21
import eu.etaxonomy.cdm.api.service.INameService;
22
import eu.etaxonomy.cdm.api.service.IReferenceService;
23
import eu.etaxonomy.cdm.api.service.IService;
24
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
25
import eu.etaxonomy.cdm.api.service.ITaxonService;
26
import eu.etaxonomy.cdm.api.service.ITermService;
27
import eu.etaxonomy.cdm.api.service.IVocabularyService;
28

    
29
public class CdmSpringContextHelper {
30

    
31
    private final ApplicationContext context;
32
    private final DataSource dataSource;
33

    
34
    private final JDBCConnectionPool connPool;
35
    private static CdmSpringContextHelper contextHelper;
36

    
37
    private static DatabaseMetaData databaseMetaData;
38

    
39
    private CdmSpringContextHelper(ServletContext servletContext) throws SQLException {
40
        context = WebApplicationContextUtils.
41
                getRequiredWebApplicationContext(servletContext);
42
        dataSource = (DataSource)getBean("dataSource");
43
        connPool = new J2EEConnectionPool(dataSource);
44

    
45
    }
46

    
47

    
48
    public static CdmSpringContextHelper getCurrent() {
49
        if(VaadinServlet.getCurrent() == null || VaadinServlet.getCurrent().getServletContext() == null) {
50
            throw new RuntimeException("Vaadin Servlet or Vaadin Servlet Context not initialized");
51
        }
52

    
53
        if(contextHelper == null) {
54
            ServletContext sc = VaadinServlet.getCurrent().getServletContext();
55
            try {
56
                contextHelper = new CdmSpringContextHelper(sc);
57
            } catch (SQLException e) {
58
                // TODO Auto-generated catch block
59
                e.printStackTrace();
60
            }
61
        }
62
        return contextHelper;
63

    
64
    }
65

    
66
    public Object getBean(final String beanRef) {
67
        return context.getBean(beanRef);
68
    }
69

    
70
    public Object getBean(Class clazz) {
71
        return context.getBean(clazz);
72
    }
73

    
74
    public <T extends IService> T getService(Class<T> clazz) {
75
        return context.getBean(clazz);
76
    }
77

    
78
    public DataSource getDataSource() {
79
        return dataSource;
80
    }
81

    
82
    public JDBCConnectionPool getConnectionPool() {
83
        return connPool;
84
    }
85

    
86
//    public static JDBCConnectionPool createConnectionPool() {
87
//        return new J2EEConnectionPool(getCurrent().getDataSource());
88
//    }
89

    
90
//    public static JDBCConnectionPool getConnectionPool() {
91
//        return new J2EEConnectionPool(getCurrent().getDataSource());
92
//    }
93

    
94

    
95

    
96
    public static Connection getConnection() throws SQLException {
97
        return getCurrent().getDataSource().getConnection();
98
    }
99

    
100
    public static DatabaseMetaData getDatabaseMetaData() throws SQLException {
101
        if(databaseMetaData == null) {
102
            Connection conn = getConnection();
103
            databaseMetaData = conn.getMetaData();
104
            conn.close();
105
        }
106
        return databaseMetaData;
107
    }
108

    
109
    public static ICdmApplicationConfiguration getApplicationConfiguration() {
110
        return (ICdmApplicationConfiguration) getCurrent().getBean("cdmApplicationDefaultConfiguration");
111
    }
112
    public static ITaxonService getTaxonService() {
113
        return (ITaxonService)getCurrent().getBean(ITaxonService.class);
114
    }
115

    
116
    public static ITaxonNodeService getTaxonNodeService() {
117
        return (ITaxonNodeService)getCurrent().getBean(ITaxonNodeService.class);
118
    }
119

    
120
    public static IReferenceService getReferenceService() {
121
        return (IReferenceService)getCurrent().getBean(IReferenceService.class);
122
    }
123

    
124
    public static INameService getNameService() {
125
        return (INameService)getCurrent().getBean(INameService.class);
126
    }
127

    
128
    public static ICommonService getCommonService() {
129
        return (ICommonService)getCurrent().getBean(ICommonService.class);
130
    }
131

    
132
    public static IClassificationService getClassificationService() {
133
        return (IClassificationService)getCurrent().getBean(IClassificationService.class);
134
    }
135

    
136
    public static IVocabularyService getVocabularyService() {
137
        return (IVocabularyService)getCurrent().getBean(IVocabularyService.class);
138
    }
139

    
140
    public static ITermService getTermService() {
141
        return (ITermService)getCurrent().getBean(ITermService.class);
142
    }
143

    
144
    public static IDescriptionService getDescriptionService() {
145
        return (IDescriptionService)getCurrent().getBean(IDescriptionService.class);
146
    }
147

    
148

    
149

    
150
}
(3-3/10)