1 package eu
.etaxonomy
.cdm
.api
.application
;
3 import java
.sql
.Connection
;
4 import java
.util
.Properties
;
6 import org
.apache
.log4j
.Logger
;
7 import org
.hibernate
.SessionFactory
;
8 import org
.hibernate
.cfg
.Configuration
;
9 import org
.hibernate
.impl
.SessionFactoryImpl
;
10 import org
.hsqldb
.Server
;
11 import org
.springframework
.beans
.BeansException
;
12 import org
.springframework
.context
.support
.AbstractApplicationContext
;
13 import org
.springframework
.context
.support
.ClassPathXmlApplicationContext
;
14 import org
.springframework
.jdbc
.datasource
.DriverManagerDataSource
;
15 import org
.springframework
.orm
.hibernate3
.AbstractSessionFactoryBean
;
16 import org
.springframework
.orm
.hibernate3
.annotation
.AnnotationSessionFactoryBean
;
17 import org
.springframework
.util
.PathMatcher
;
19 import eu
.etaxonomy
.cdm
.api
.service
.AgentServiceImpl
;
20 import eu
.etaxonomy
.cdm
.api
.service
.IAgentService
;
21 import eu
.etaxonomy
.cdm
.api
.service
.INameService
;
22 import eu
.etaxonomy
.cdm
.api
.service
.NameServiceImpl
;
28 public class CdmApplicationController
{
29 private static final Logger logger
= Logger
.getLogger(CdmApplicationController
.class);
31 private ClassPathXmlApplicationContext applicationContext
;
32 private INameService nameService
;
33 private IAgentService agentService
;
34 private Server hsqldbServer
;
38 public CdmApplicationController() {
39 //logger.info("Start HSQLDB Server");
40 //startHsqldbServer();
41 logger
.warn("Start CdmApplicationController");
42 String fileName
= "editCdm.spring.cfg.xml";
43 setApplicationContext(new ClassPathXmlApplicationContext(fileName
));
44 Object sf
= (Object
)applicationContext
.containsBean("sessionFactory");
45 SessionFactory sf1
= (SessionFactory
)applicationContext
.getBean("sessionFactory");
47 //TODO find out if DataSource is localHsqldb,
48 //if yes then find out if Server is running
49 //if not running, start server
52 public void finalize(){
57 if (applicationContext
!= null)
58 logger
.info("Close ApplicationContext");
59 applicationContext
.close();
63 public void setApplicationContext(ClassPathXmlApplicationContext appCtx
){
64 applicationContext
= appCtx
;
65 applicationContext
.registerShutdownHook();
69 private void setServices(){
70 //TODO ? also possible via SPRING?
71 nameService
= (INameService
)applicationContext
.getBean("nameService");
72 agentService
= (IAgentService
)applicationContext
.getBean("agentService");
76 public final INameService
getNameService(){
80 public final IAgentService
getAgentService(){