1 package eu
.etaxonomy
.cdm
.vaadin
.util
;
3 import java
.sql
.Connection
;
4 import java
.sql
.DatabaseMetaData
;
5 import java
.sql
.SQLException
;
7 import javax
.servlet
.ServletContext
;
8 import javax
.sql
.DataSource
;
10 import org
.springframework
.context
.ApplicationContext
;
11 import org
.springframework
.web
.context
.support
.WebApplicationContextUtils
;
13 import com
.vaadin
.data
.util
.sqlcontainer
.connection
.J2EEConnectionPool
;
14 import com
.vaadin
.data
.util
.sqlcontainer
.connection
.JDBCConnectionPool
;
15 import com
.vaadin
.server
.VaadinServlet
;
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
;
29 public class CdmSpringContextHelper
{
31 private final ApplicationContext context
;
32 private final DataSource dataSource
;
34 private final JDBCConnectionPool connPool
;
35 private static CdmSpringContextHelper contextHelper
;
37 private static DatabaseMetaData databaseMetaData
;
39 private CdmSpringContextHelper(ServletContext servletContext
) throws SQLException
{
40 context
= WebApplicationContextUtils
.
41 getRequiredWebApplicationContext(servletContext
);
42 dataSource
= (DataSource
)getBean("dataSource");
43 connPool
= new J2EEConnectionPool(dataSource
);
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");
53 if(contextHelper
== null) {
54 ServletContext sc
= VaadinServlet
.getCurrent().getServletContext();
56 contextHelper
= new CdmSpringContextHelper(sc
);
57 } catch (SQLException e
) {
58 // TODO Auto-generated catch block
66 public Object
getBean(final String beanRef
) {
67 return context
.getBean(beanRef
);
70 public Object
getBean(Class clazz
) {
71 return context
.getBean(clazz
);
74 public <T
extends IService
> T
getService(Class
<T
> clazz
) {
75 return context
.getBean(clazz
);
78 public DataSource
getDataSource() {
82 public JDBCConnectionPool
getConnectionPool() {
86 // public static JDBCConnectionPool createConnectionPool() {
87 // return new J2EEConnectionPool(getCurrent().getDataSource());
90 // public static JDBCConnectionPool getConnectionPool() {
91 // return new J2EEConnectionPool(getCurrent().getDataSource());
96 public static Connection
getConnection() throws SQLException
{
97 return getCurrent().getDataSource().getConnection();
100 public static DatabaseMetaData
getDatabaseMetaData() throws SQLException
{
101 if(databaseMetaData
== null) {
102 Connection conn
= getConnection();
103 databaseMetaData
= conn
.getMetaData();
106 return databaseMetaData
;
109 public static ICdmApplicationConfiguration
getApplicationConfiguration() {
110 return (ICdmApplicationConfiguration
) getCurrent().getBean("cdmApplicationDefaultConfiguration");
112 public static ITaxonService
getTaxonService() {
113 return (ITaxonService
)getCurrent().getBean(ITaxonService
.class);
116 public static ITaxonNodeService
getTaxonNodeService() {
117 return (ITaxonNodeService
)getCurrent().getBean(ITaxonNodeService
.class);
120 public static IReferenceService
getReferenceService() {
121 return (IReferenceService
)getCurrent().getBean(IReferenceService
.class);
124 public static INameService
getNameService() {
125 return (INameService
)getCurrent().getBean(INameService
.class);
128 public static ICommonService
getCommonService() {
129 return (ICommonService
)getCurrent().getBean(ICommonService
.class);
132 public static IClassificationService
getClassificationService() {
133 return (IClassificationService
)getCurrent().getBean(IClassificationService
.class);
136 public static IVocabularyService
getVocabularyService() {
137 return (IVocabularyService
)getCurrent().getBean(IVocabularyService
.class);
140 public static ITermService
getTermService() {
141 return (ITermService
)getCurrent().getBean(ITermService
.class);
144 public static IDescriptionService
getDescriptionService() {
145 return (IDescriptionService
)getCurrent().getBean(IDescriptionService
.class);