Project

General

Profile

« Previous | Next » 

Revision 070d8fe4

Added by Niels Hoffmann over 13 years ago

Changed exception handling

View differences:

.gitattributes
3419 3419
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationController.java -text
3420 3420
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationDefaultConfiguration.java -text
3421 3421
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/ICdmApplicationConfiguration.java -text
3422
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/eclipse/EclipseRcpSaveFileSystemXmlApplicationContext.java -text
3423
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/eclipse/EclipseRcpSaveGenericApplicationContext.java -text
3424
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/eclipse/EclipseRcpSavePathMatchingResourcePatternResolver.java -text
3425 3422
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/conversation/ConversationHolder.java -text
3426 3423
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/conversation/IConversationEnabled.java -text
3427 3424
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/facade/DerivedUnitFacade.java -text
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationController.java
16 16

  
17 17
import org.apache.log4j.Logger;
18 18
import org.hibernate.SessionFactory;
19
import org.springframework.beans.MutablePropertyValues;
20 19
import org.springframework.beans.factory.config.BeanDefinition;
21 20
import org.springframework.beans.factory.xml.XmlBeanDefinitionReader;
22 21
import org.springframework.context.support.AbstractApplicationContext;
......
29 28
import org.springframework.transaction.TransactionStatus;
30 29
import org.springframework.transaction.support.DefaultTransactionDefinition;
31 30

  
32
import eu.etaxonomy.cdm.api.application.eclipse.EclipseRcpSaveGenericApplicationContext;
33 31
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
34 32
import eu.etaxonomy.cdm.api.service.IAgentService;
35 33
import eu.etaxonomy.cdm.api.service.ICollectionService;
......
53 51
import eu.etaxonomy.cdm.common.IProgressMonitor;
54 52
import eu.etaxonomy.cdm.common.NullProgressMonitor;
55 53
import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
56
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
57 54
import eu.etaxonomy.cdm.database.DbSchemaValidation;
58 55
import eu.etaxonomy.cdm.database.ICdmDataSource;
59 56
import eu.etaxonomy.cdm.model.common.CdmBase;
60 57
import eu.etaxonomy.cdm.model.common.CdmMetaData;
61 58
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
62 59
import eu.etaxonomy.cdm.model.common.User;
63
import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;
64 60

  
65 61

  
66 62
/**
......
83 79
	
84 80
	
85 81
	/**
86
	 * Constructor, opens an spring 2.5 ApplicationContext by using the default data source
82
	 * Constructor, opens a spring ApplicationContext by using the default data source
87 83
	 */
88
	public static CdmApplicationController NewInstance()  throws DataSourceNotFoundException, TermNotFoundException {
84
	public static CdmApplicationController NewInstance() {
89 85
		logger.info("Start CdmApplicationController with default data source");
90 86
		CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance();
91 87
		DbSchemaValidation dbSchemaValidation = defaultDbSchemaValidation;
......
93 89
	}
94 90
	
95 91
	/**
96
	 * Constructor, opens an spring 2.5 ApplicationContext by using the default data source
92
	 * Constructor, opens a spring ApplicationContext by using the default data source
97 93
	 * @param dbSchemaValidation validation type for database schema
98 94
	 */
99
	public static CdmApplicationController NewInstance(DbSchemaValidation dbSchemaValidation)  throws DataSourceNotFoundException, TermNotFoundException {
95
	public static CdmApplicationController NewInstance(DbSchemaValidation dbSchemaValidation) {
100 96
		logger.info("Start CdmApplicationController with default data source");
101 97
		CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance();
102 98
		return CdmApplicationController.NewInstance(null, dataSource, dbSchemaValidation, false);
......
104 100

  
105 101
	
106 102
	/**
107
	 * Constructor, opens an spring 2.5 ApplicationContext by using the according data source and the
103
	 * Constructor, opens an spring ApplicationContext by using the according data source and the
108 104
	 * default database schema validation type
109 105
	 * @param dataSource
110 106
	 */
111
	public static CdmApplicationController NewInstance(ICdmDataSource dataSource) 
112
	throws DataSourceNotFoundException, TermNotFoundException{
107
	public static CdmApplicationController NewInstance(ICdmDataSource dataSource) {
113 108
		return CdmApplicationController.NewInstance(null, dataSource, defaultDbSchemaValidation, false);
114 109
	}
115 110
	
116
	public static CdmApplicationController NewInstance(ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation) 
117
	throws DataSourceNotFoundException, TermNotFoundException{
111
	public static CdmApplicationController NewInstance(ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation) {
118 112
		return CdmApplicationController.NewInstance(null, dataSource, dbSchemaValidation, false);
119 113
	}
120 114

  
121
	public static CdmApplicationController NewInstance(ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) 
122
	throws DataSourceNotFoundException, TermNotFoundException{
115
	public static CdmApplicationController NewInstance(ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) {
123 116
		return CdmApplicationController.NewInstance(null, dataSource, dbSchemaValidation, omitTermLoading);
124 117
	}
125 118
	
126
	public static CdmApplicationController NewInstance(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) 
127
	throws DataSourceNotFoundException, TermNotFoundException{
119
	public static CdmApplicationController NewInstance(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading) {
128 120
		return CdmApplicationController.NewInstance(applicationContextResource, dataSource, dbSchemaValidation, omitTermLoading, null);
129 121
	}
130 122
	
131
	public static CdmApplicationController NewInstance(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading, IProgressMonitor progressMonitor) 
132
	throws DataSourceNotFoundException, TermNotFoundException{
133

  
134
		
123
	public static CdmApplicationController NewInstance(Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading, IProgressMonitor progressMonitor) {
135 124
		return new CdmApplicationController(applicationContextResource, dataSource, dbSchemaValidation, omitTermLoading, progressMonitor);
136 125
	}
137 126

  
......
164 153
			dbSchemaValidation = defaultDbSchemaValidation;
165 154
		}
166 155
		logger.info("Connecting to '" + dataSource.getName() + "'");
167
		progressMonitor.subTask("Connecting to '" + dataSource.getName() + "'");
156
		progressMonitor.beginTask("Connecting to '" + dataSource.getName() + "'", 6);
168 157
		progressMonitor.worked(1);
169 158

  
170
		GenericApplicationContext appContext;
171
		appContext = new EclipseRcpSaveGenericApplicationContext();
159
		GenericApplicationContext applicationContext =  new GenericApplicationContext();
172 160
		
173 161
		BeanDefinition datasourceBean = dataSource.getDatasourceBean();
174 162
		datasourceBean.setAttribute("isLazy", false);
175 163
		progressMonitor.subTask("Registering datasource.");
176 164
		progressMonitor.worked(1);
177
		appContext.registerBeanDefinition("dataSource", datasourceBean);
165
		applicationContext.registerBeanDefinition("dataSource", datasourceBean);
178 166
		
179 167
		BeanDefinition hibernatePropBean= dataSource.getHibernatePropertiesBean(dbSchemaValidation);
180
		appContext.registerBeanDefinition("hibernateProperties", hibernatePropBean);
168
		applicationContext.registerBeanDefinition("hibernateProperties", hibernatePropBean);
181 169
		
182
		XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(appContext);
183
		progressMonitor.subTask("Registering context resources.");
170
		XmlBeanDefinitionReader xmlReader = new XmlBeanDefinitionReader(applicationContext);
171
		progressMonitor.subTask("Registering resources.");
184 172
		progressMonitor.worked(1);
185
		xmlReader.loadBeanDefinitions(this.applicationContextResource);		 
173
		xmlReader.loadBeanDefinitions(applicationContextResource);		 
186 174
		
187 175
		//omitTerms
188
		String initializerName = "persistentTermInitializer";
189
		BeanDefinition beanDef = appContext.getBeanDefinition(initializerName);
176
		/*String initializerName = "persistentTermInitializer";
177
		BeanDefinition beanDef = applicationContext.getBeanDefinition(initializerName);
190 178
		MutablePropertyValues values = beanDef.getPropertyValues();
191
		values.addPropertyValue("omit", omitTermLoading);
179
		values.addPropertyValue("omit", omitTermLoading);*/
192 180
		
193
		progressMonitor.subTask("Starting context. This might take a while...");
181
		progressMonitor.subTask("Connecting. This might take a while ...");
194 182
		progressMonitor.worked(1);
195
		appContext.refresh();
196
		appContext.start();
183
		applicationContext.refresh();
184
		applicationContext.start();
197 185
		
198
		progressMonitor.subTask("Setting application context.");
186
		progressMonitor.subTask("Cleaning up.");
199 187
		progressMonitor.worked(1);
200
		setApplicationContext(appContext);
188
		setApplicationContext(applicationContext);
201 189
		
202 190
		//initialize user and metaData for new databases
203 191
		int userCount = getUserService().count(User.class);
......
212 200
			progressMonitor.worked(1);
213 201
			createMetadata();
214 202
		}
215
		
203
		progressMonitor.done();
216 204
		return true;
217 205
	}
218 206

  
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/eclipse/EclipseRcpSaveFileSystemXmlApplicationContext.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.cdm.api.application.eclipse;
12

  
13
import org.springframework.beans.BeansException;
14
import org.springframework.context.ApplicationContext;
15
import org.springframework.context.support.FileSystemXmlApplicationContext;
16
import org.springframework.core.io.support.ResourcePatternResolver;
17

  
18
public class EclipseRcpSaveFileSystemXmlApplicationContext extends
19
		FileSystemXmlApplicationContext {
20
	
21

  
22
	@Override
23
	protected ResourcePatternResolver getResourcePatternResolver() {
24
		return new EclipseRcpSavePathMatchingResourcePatternResolver(this);
25
	}
26
	
27
	/* all constructors */
28
	public EclipseRcpSaveFileSystemXmlApplicationContext(String configLocation)
29
			throws BeansException {
30
		super(configLocation);
31
	}
32

  
33
	public EclipseRcpSaveFileSystemXmlApplicationContext(String[] configLocations,
34
			ApplicationContext parent) throws BeansException {
35
		super(configLocations, parent);
36
	}
37

  
38
	public EclipseRcpSaveFileSystemXmlApplicationContext(String[] configLocations,
39
			boolean refresh, ApplicationContext parent) throws BeansException {
40
		super(configLocations, refresh, parent);
41
	}
42

  
43
	public EclipseRcpSaveFileSystemXmlApplicationContext(String[] configLocations,
44
			boolean refresh) throws BeansException {
45
		super(configLocations, refresh);
46
	}
47

  
48
	public EclipseRcpSaveFileSystemXmlApplicationContext(String[] configLocations)
49
			throws BeansException {
50
		super(configLocations);
51
	}
52

  
53

  
54
}
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/eclipse/EclipseRcpSaveGenericApplicationContext.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.cdm.api.application.eclipse;
12

  
13
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
14
import org.springframework.context.ApplicationContext;
15
import org.springframework.context.support.GenericApplicationContext;
16
import org.springframework.core.io.support.ResourcePatternResolver;
17

  
18
/**
19
 * @author a.mueller
20
 *
21
 */
22
public class EclipseRcpSaveGenericApplicationContext extends
23
		GenericApplicationContext {
24

  
25
	@Override
26
	protected ResourcePatternResolver getResourcePatternResolver() {
27
		return new EclipseRcpSavePathMatchingResourcePatternResolver(this);
28
	}
29
	
30
	/**
31
	 * 
32
	 */
33
	public EclipseRcpSaveGenericApplicationContext() {
34
	}
35

  
36
	/**
37
	 * @param beanFactory
38
	 */
39
	public EclipseRcpSaveGenericApplicationContext(
40
			DefaultListableBeanFactory beanFactory) {
41
		super(beanFactory);
42
	}
43

  
44
	/**
45
	 * @param parent
46
	 */
47
	public EclipseRcpSaveGenericApplicationContext(ApplicationContext parent) {
48
		super(parent);
49
	}
50

  
51
	/**
52
	 * @param beanFactory
53
	 * @param parent
54
	 */
55
	public EclipseRcpSaveGenericApplicationContext(
56
			DefaultListableBeanFactory beanFactory, ApplicationContext parent) {
57
		super(beanFactory, parent);
58
	}
59

  
60
}
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/eclipse/EclipseRcpSavePathMatchingResourcePatternResolver.java
1
// $Id$
2
/**
3
* Copyright (C) 2007 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10

  
11
package eu.etaxonomy.cdm.api.application.eclipse;
12

  
13
import java.io.*;
14
import java.net.*;
15
import java.util.*;
16

  
17
import org.eclipse.osgi.framework.internal.core.*;
18
import org.springframework.core.*;
19
import org.springframework.core.io.*;
20
import org.springframework.core.io.support.*;
21

  
22
public class EclipseRcpSavePathMatchingResourcePatternResolver extends PathMatchingResourcePatternResolver 
23
{
24
    public EclipseRcpSavePathMatchingResourcePatternResolver(ResourceLoader resourceLoader) 
25
    {
26
        super(resourceLoader);
27
    }
28
    
29
    protected Resource[] findAllClassPathResources(String location) throws IOException 
30
    {
31
        String path = location;
32
        
33
        if (path.startsWith("/")) 
34
        {
35
            path = path.substring(1) ;
36
        }
37
        
38
        Enumeration<URL> resourceUrls = getClassLoader().getResources(path);
39
        Set result = CollectionFactory.createLinkedSetIfPossible(16);
40
        while (resourceUrls.hasMoreElements())  
41
        {
42
            URL url = (URL) resourceUrls.nextElement();
43
            
44
            if (url.getProtocol().startsWith("bundleresource")){
45
                //handle eclipse bundleresource:
46
            	URLConnection con = url.openConnection();
47
            	BundleURLConnection bundleCon = (BundleURLConnection) con;
48
            	// Convert the bundle URL into a file system URL.
49
            	result.add(new UrlResource(bundleCon.getFileURL()));
50
            }else{
51
            	result.add(convertClassLoaderURL(url));
52
            }
53
        }
54
        
55
        return (Resource[]) result.toArray(new Resource[result.size()]);
56
    }
57
}
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/FeatureTreeServiceImpl.java
112 112
	public FeatureTree load(UUID uuid, List<String> propertyPaths) {
113 113
		return super.load(uuid, propertyPaths);
114 114
	}
115

  
116
	/* (non-Javadoc)
117
	 * @see eu.etaxonomy.cdm.api.service.IFeatureTreeService#createTransientDefaultFeatureTree()
118
	 */
119
	@Override
120
	public FeatureTree createTransientDefaultFeatureTree() {
121
		return load(IFeatureTreeDao.DefaultFeatureTreeUuid);
122
	}
123

  
124
	
115 125
	
116 126
}
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IFeatureTreeService.java
36 36
	
37 37
	public Map<UUID, FeatureNode> saveOrUpdateFeatureNodesAll(Collection<FeatureNode> featureNodeCollection);
38 38
	
39
	public FeatureTree createTransientDefaultFeatureTree();
39 40
}
cdmlib-services/src/main/resources/eu/etaxonomy/cdm/defaultApplicationContext.xml
16 16
	<context:component-scan base-package="eu/etaxonomy/cdm/api/service">
17 17
		<!--  <context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.api\.service\.UserService"/> -->
18 18
	</context:component-scan>
19
	
19 20
	<context:component-scan base-package="eu/etaxonomy/cdm/api/application"/>
20 21

  
21 22
	<!-- EditGeoService was moved to ext. Therefore it will not be found by the default component scan.
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/Datasource.java
26 26
import eu.etaxonomy.cdm.api.application.CdmApplicationUtils;
27 27
import eu.etaxonomy.cdm.database.CdmDataSource;
28 28
import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
29
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
30 29
import eu.etaxonomy.cdm.database.DatabaseTypeEnum;
31 30
import eu.etaxonomy.cdm.database.DbSchemaValidation;
32 31
import eu.etaxonomy.cdm.database.ICdmDataSource;
......
42 41
import eu.etaxonomy.cdm.model.name.NameRelationshipType;
43 42
import eu.etaxonomy.cdm.model.name.Rank;
44 43
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
45
import eu.etaxonomy.cdm.model.reference.IGeneric;
46 44
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
47 45
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
48 46
import eu.etaxonomy.cdm.model.taxon.Taxon;
......
59 57
//		ICdmDataSource dataSource = CdmDataSource.NewInstance(dbType, "192.168.2.10", "cdm_test_andreas", dbType.getDefaultPort() + "", "edit", "", null, null);
60 58
		CdmPersistentDataSource.save(dataSource.getName(), dataSource);
61 59
		CdmApplicationController appCtr;
62
		try {
63
			appCtr = CdmApplicationController.NewInstance(dataSource);
64
			appCtr.close();
65
		} catch (DataSourceNotFoundException e) {
66
			logger.error("Unknown datasource");
67
		} catch (TermNotFoundException e) {
68
			logger.error("defined terms not found");
69
		}
70

  
60
		appCtr = CdmApplicationController.NewInstance(dataSource);
61
		appCtr.close();
71 62
	}
72 63
	
73 64
	private void testDatabaseChange(){
74 65
		CdmApplicationController appCtr;
75
		try {
76
			appCtr = CdmApplicationController.NewInstance();
66
		appCtr = CdmApplicationController.NewInstance();
67
	
68
//		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
69
//		String server = "192.168.2.10";
70
//		String database = "cdm_test_andreas";
71
//		String user = "edit";
72
//		String pwd = "wp5";
73
//		
74
		DatabaseTypeEnum dbType = DatabaseTypeEnum.SqlServer2005;
75
		String server = "LAPTOPHP";
76
		String database = "cdmTest";
77
		String username = "edit";
78
		String password = "";
77 79
		
78
	//		DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
79
	//		String server = "192.168.2.10";
80
	//		String database = "cdm_test_andreas";
81
	//		String user = "edit";
82
	//		String pwd = "wp5";
83
	//		
84
			DatabaseTypeEnum dbType = DatabaseTypeEnum.SqlServer2005;
85
			String server = "LAPTOPHP";
86
			String database = "cdmTest";
87
			String username = "edit";
88
			String password = "";
89
			
90
			ICdmDataSource dataSource = CdmDataSource.NewInstance(DatabaseTypeEnum.SqlServer2005, "LAPTOPHP", "cdmTest", DatabaseTypeEnum.SqlServer2005.getDefaultPort(), "edit", "");
91
			
92
			appCtr.getDatabaseService().saveDataSource("testSqlServer", dataSource);
80
		ICdmDataSource dataSource = CdmDataSource.NewInstance(DatabaseTypeEnum.SqlServer2005, "LAPTOPHP", "cdmTest", DatabaseTypeEnum.SqlServer2005.getDefaultPort(), "edit", "");
81
		
82
		appCtr.getDatabaseService().saveDataSource("testSqlServer", dataSource);
83
		try {
93 84
			appCtr.getDatabaseService().connectToDatabase(dbType, server, database, username, password);
94
			
95
			appCtr.close();
96
		} catch (DataSourceNotFoundException e) {
97
			logger.error("datasource error");
98 85
		} catch (TermNotFoundException e) {
99
			logger.error("defined terms not found");
86
			// TODO Auto-generated catch block
87
			e.printStackTrace();
100 88
		}
89
		
90
		appCtr.close();
101 91
	}
102 92

  
103 93
	private void testSqlServer(){
......
129 119
			TaxonNameBase tn = BotanicalName.NewInstance(null);
130 120
			appCtr.getNameService().save(tn);
131 121
			appCtr.close();
132
		} catch (DataSourceNotFoundException e) {
133
			logger.error("Unknown datasource");
134
		} catch (TermNotFoundException e) {
135
			logger.error("defined terms not found");
136 122
		} catch (SQLException e) {
137 123
			// TODO Auto-generated catch block
138 124
			e.printStackTrace();
......
149 135
		ICdmDataSource dataSource = CdmDataSource.NewInstance(databaseTypeEnum, server, database, databaseTypeEnum.getDefaultPort(), username, password); 
150 136
		
151 137
		CdmPersistentDataSource ds = CdmPersistentDataSource.save("testSqlServer", dataSource);
152
		try {
153
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds);
154
			Person agent = Person.NewInstance();
155
			appCtr.getAgentService().save(agent);
156
			TaxonNameBase tn = BotanicalName.NewInstance(null);
157
			appCtr.getNameService().save(tn);
158
			appCtr.close();
159
		} catch (DataSourceNotFoundException e) {
160
			logger.error("Unknown datasource");
161
		} catch (TermNotFoundException e) {
162
			logger.error("defined terms not found");
163
		}
138

  
139
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds);
140
		Person agent = Person.NewInstance();
141
		appCtr.getAgentService().save(agent);
142
		TaxonNameBase tn = BotanicalName.NewInstance(null);
143
		appCtr.getNameService().save(tn);
144
		appCtr.close();
145
		
164 146
	}
165 147
	
166 148
	private void testPostgreServer(){
......
173 155
		ICdmDataSource dataSource = CdmDataSource.NewInstance(databaseTypeEnum, server, database, databaseTypeEnum.getDefaultPort(), username, password); 
174 156
		
175 157
		CdmPersistentDataSource ds = CdmPersistentDataSource.save("PostgreTest", dataSource);
176
		try {
177
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds);
178
			Person agent = Person.NewInstance();
179
			appCtr.getAgentService().save(agent);
180
			TaxonNameBase tn = BotanicalName.NewInstance(null);
181
			appCtr.getNameService().save(tn);
182
			appCtr.close();
183
		} catch (DataSourceNotFoundException e) {
184
			logger.error("Unknown datasource");
185
		} catch (TermNotFoundException e) {
186
			logger.error("defined terms not found");
187
		}
158

  
159
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds);
160
		Person agent = Person.NewInstance();
161
		appCtr.getAgentService().save(agent);
162
		TaxonNameBase tn = BotanicalName.NewInstance(null);
163
		appCtr.getNameService().save(tn);
164
		appCtr.close();
165

  
188 166
	}
189 167
	
190 168
	private void testLocalHsql(){
169

  
170
		CdmPersistentDataSource ds = CdmPersistentDataSource.NewLocalHsqlInstance();
171
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds);
191 172
		try {
192
			CdmPersistentDataSource ds = CdmPersistentDataSource.NewLocalHsqlInstance();
193
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds);
194
			try {
195
				List l = appCtr.getNameService().list(null,5, 1,null,null);
196
				System.out.println(l);
197
				//Agent agent = new Agent();
198
				//appCtr.getAgentService().saveAgent(agent);
199
				appCtr.close();
200
			} catch (RuntimeException e) {
201
				logger.error("Runtime Exception");
202
				e.printStackTrace();
203
				appCtr.close();
204
				
205
			}
206
		} catch (DataSourceNotFoundException e) {
207
			logger.error("LOCAL HSQL");
208
		} catch (TermNotFoundException e) {
209
			logger.error("defined terms not found");
173
			List l = appCtr.getNameService().list(null,5, 1,null,null);
174
			System.out.println(l);
175
			//Agent agent = new Agent();
176
			//appCtr.getAgentService().saveAgent(agent);
177
			appCtr.close();
178
		} catch (RuntimeException e) {
179
			logger.error("Runtime Exception");
180
			e.printStackTrace();
181
			appCtr.close();
182
			
210 183
		}
211 184
	}
212 185
	
213 186
	private void testLocalH2(){
214
		try {
215
			DbSchemaValidation validation = DbSchemaValidation.CREATE;
216
			ICdmDataSource ds = 
217
				CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "", null);
187
		
188
		DbSchemaValidation validation = DbSchemaValidation.CREATE;
189
		ICdmDataSource ds = 
190
			CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "", null);
218 191
//			ds =
219 192
//				 CdmPersistentDataSource.NewInstance("localH2");
220
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds, validation);
193
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds, validation);
194
		
195
		boolean exists = appCtr.getUserService().userExists("admin");
196
		try {
197
			BotanicalName name = BotanicalName.NewInstance(null);
198
			String nameCache = "testName";
199
			name.setNameCache(nameCache);
200
			name.setTitleCache(nameCache, true);
201
			ReferenceFactory refFactory = ReferenceFactory.newInstance();
202
			ReferenceBase ref = refFactory.newGeneric();
203
			ref.setTitleCache("mySec", true);
204
			Taxon taxon = Taxon.NewInstance(name, ref);
205
			TaxonDescription description = TaxonDescription.NewInstance();
206
			taxon.addDescription(description);
207
			NamedArea area1 = TdwgArea.getAreaByTdwgAbbreviation("GER");
208
			Distribution distribution = Distribution.NewInstance(area1, PresenceTerm.PRESENT());
209
			description.addElement(distribution);
221 210
			
222
			boolean exists = appCtr.getUserService().userExists("admin");
223
			try {
224
				BotanicalName name = BotanicalName.NewInstance(null);
225
				String nameCache = "testName";
226
				name.setNameCache(nameCache);
227
				name.setTitleCache(nameCache, true);
228
				ReferenceFactory refFactory = ReferenceFactory.newInstance();
229
				ReferenceBase ref = refFactory.newGeneric();
230
				ref.setTitleCache("mySec", true);
231
				Taxon taxon = Taxon.NewInstance(name, ref);
232
				TaxonDescription description = TaxonDescription.NewInstance();
233
				taxon.addDescription(description);
234
				NamedArea area1 = TdwgArea.getAreaByTdwgAbbreviation("GER");
235
				Distribution distribution = Distribution.NewInstance(area1, PresenceTerm.PRESENT());
236
				description.addElement(distribution);
237
				
238
				List<Distribution> distrList = new ArrayList<Distribution>();
239
				distrList.add(distribution);
240
				List<NamedArea> areaList = new ArrayList<NamedArea>();
241
				areaList.add(area1);
242
				
243
			//	distribution.getInDescription().get
244
				appCtr.getTaxonService().save(taxon);
211
			List<Distribution> distrList = new ArrayList<Distribution>();
212
			distrList.add(distribution);
213
			List<NamedArea> areaList = new ArrayList<NamedArea>();
214
			areaList.add(area1);
215
			
216
		//	distribution.getInDescription().get
217
			appCtr.getTaxonService().save(taxon);
245 218

  
246
				System.out.println(taxon.getDescriptions().size());
247
				
248
				TransactionStatus txStatus = appCtr.startTransaction();
249
				
250
				Session session = appCtr.getSessionFactory().getCurrentSession();
251
				
252
				//String hqlQuery = "from DescriptionBase d join d.elements  as e " 
219
			System.out.println(taxon.getDescriptions().size());
220
			
221
			TransactionStatus txStatus = appCtr.startTransaction();
222
			
223
			Session session = appCtr.getSessionFactory().getCurrentSession();
224
			
225
			//String hqlQuery = "from DescriptionBase d join d.elements  as e " 
253 226
//				String hqlQuery = "from Taxon t join t.descriptions  as d "+
254 227
//				 " inner join d.elements e on e member of d "
255 228
//				+
256 229
//				"";//" where e.area = :namedArea " ; 
257
				String hqlQuery = "Select t from Distribution e join e.inDescription d join d.taxon t join t.name n "+
258
					" WHERE e.area in (:namedArea) AND n.nameCache = :nameCache ";				
259
				Query query = session.createQuery(hqlQuery);
260
 				
261
 				//query.setEntity("namedArea", area1);
262
 				query.setParameter("nameCache", nameCache);
263
 				query.setParameterList("namedArea", areaList);
264
				List resultList = query.list();
265
				//List list = appCtr.getCommonService().getHqlResult(hqlQuery);
266
				
267
				for (Object o:resultList){
268
					System.out.println(o);
269
				}
270
				appCtr.commitTransaction(txStatus);
271
				
272
				//System.out.println(l);
273
				//Agent agent = new Agent();
274
				//appCtr.getAgentService().saveAgent(agent);
275
				appCtr.close();
276
			} catch (RuntimeException e) {
277
				logger.error("Runtime Exception");
278
				e.printStackTrace();
279
				appCtr.close();
280
				
230
			String hqlQuery = "Select t from Distribution e join e.inDescription d join d.taxon t join t.name n "+
231
				" WHERE e.area in (:namedArea) AND n.nameCache = :nameCache ";				
232
			Query query = session.createQuery(hqlQuery);
233
			
234
			//query.setEntity("namedArea", area1);
235
			query.setParameter("nameCache", nameCache);
236
			query.setParameterList("namedArea", areaList);
237
			List resultList = query.list();
238
			//List list = appCtr.getCommonService().getHqlResult(hqlQuery);
239
			
240
			for (Object o:resultList){
241
				System.out.println(o);
281 242
			}
282
		} catch (DataSourceNotFoundException e) {
283
			logger.error("Error in LOCAL HSQL");
284
		} catch (TermNotFoundException e) {
285
			logger.error("defined terms not found");
243
			appCtr.commitTransaction(txStatus);
244
			
245
			//System.out.println(l);
246
			//Agent agent = new Agent();
247
			//appCtr.getAgentService().saveAgent(agent);
248
			appCtr.close();
249
		} catch (RuntimeException e) {
250
			logger.error("Runtime Exception");
251
			e.printStackTrace();
252
			appCtr.close();
253
			
286 254
		}
287 255
	}
288 256
		
......
294 262
	private boolean testH2(){
295 263
//		testLocalH2();
296 264
//		if (true)return true;
297
		try{
298
			DbSchemaValidation validation = DbSchemaValidation.CREATE;
299
			ICdmDataSource ds = 
300
				CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "", null);
301
				//CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
302
	//		ds =
303
	//			 CdmPersistentDataSource.NewInstance("localH2");
304
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds, validation);
265

  
266
		DbSchemaValidation validation = DbSchemaValidation.CREATE;
267
		ICdmDataSource ds = 
268
			CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "", null);
269
			//CdmDataSource.NewH2EmbeddedInstance("cdm", "sa", "");
270
//		ds =
271
//			 CdmPersistentDataSource.NewInstance("localH2");
272
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(ds, validation);
273
		try {
274
			BotanicalName botName1 = BotanicalName.NewInstance(Rank.SPECIES());
275
			BotanicalName botName2 = BotanicalName.NewInstance(Rank.SPECIES());
276
			BotanicalName hybridName = BotanicalName.NewInstance(Rank.SPECIES());
277
			botName1.addRelationshipToName(botName2, NameRelationshipType.ORTHOGRAPHIC_VARIANT(), null);
278
			UUID uuid1 = botName1.getUuid();
279
			UUID uuid2 = botName2.getUuid();
305 280
			try {
306
				BotanicalName botName1 = BotanicalName.NewInstance(Rank.SPECIES());
307
				BotanicalName botName2 = BotanicalName.NewInstance(Rank.SPECIES());
308
				BotanicalName hybridName = BotanicalName.NewInstance(Rank.SPECIES());
309
				botName1.addRelationshipToName(botName2, NameRelationshipType.ORTHOGRAPHIC_VARIANT(), null);
310
				UUID uuid1 = botName1.getUuid();
311
				UUID uuid2 = botName2.getUuid();
312
				try {
313
					Logger loggerTrace = logger.getLogger("org.hibernate.type");
314
					loggerTrace.setLevel(Level.TRACE);
315
					System.out.println(logger.getName());
316
					
317
					appCtr.getNameService().save(botName1);
318
					ResultSet rs = ds.executeQuery("Select count(*) as n FROM NameRelationship");
319
					rs.next();
320
					int c = rs.getInt("n");
321
					System.out.println("Begin :" + c);
322
					
323
					botName1.removeRelationToTaxonName(botName2);
324
					botName1.setSpecificEpithet("DELETED");
325
					botName2.addHybridParent(hybridName, HybridRelationshipType.FIRST_PARENT(), null);
326
					
327
					TransactionStatus tx = appCtr.startTransaction();
328
					appCtr.getNameService().saveOrUpdate(botName2);
329
					rs = ds.executeQuery("Select count(*) as n FROM NameRelationship");
330
					rs.next();
331
					c = rs.getInt("n");
332
					System.out.println("End: " + c);
333
		
334
					appCtr.commitTransaction(tx);
335
					
336
					appCtr.getNameService().saveOrUpdate(botName1);
337
					
338
					rs = ds.executeQuery("Select count(*) as n FROM NameRelationship");
339
					rs.next();
340
					c = rs.getInt("n");
341
					System.out.println("End: " + c);
342
					
343
				} catch (SQLException e) {
344
					// TODO Auto-generated catch block
345
					e.printStackTrace();
346
				}
281
				Logger loggerTrace = logger.getLogger("org.hibernate.type");
282
				loggerTrace.setLevel(Level.TRACE);
283
				System.out.println(logger.getName());
347 284
				
285
				appCtr.getNameService().save(botName1);
286
				ResultSet rs = ds.executeQuery("Select count(*) as n FROM NameRelationship");
287
				rs.next();
288
				int c = rs.getInt("n");
289
				System.out.println("Begin :" + c);
348 290
				
349
				//Agent agent = new Agent();
350
				//appCtr.getAgentService().saveAgent(agent);
351
				appCtr.close();
352
				return true;
353
			} catch (RuntimeException e) {
354
				logger.error("Runtime Exception");
355
				e.printStackTrace();
356
				appCtr.close();
291
				botName1.removeRelationToTaxonName(botName2);
292
				botName1.setSpecificEpithet("DELETED");
293
				botName2.addHybridParent(hybridName, HybridRelationshipType.FIRST_PARENT(), null);
357 294
				
295
				TransactionStatus tx = appCtr.startTransaction();
296
				appCtr.getNameService().saveOrUpdate(botName2);
297
				rs = ds.executeQuery("Select count(*) as n FROM NameRelationship");
298
				rs.next();
299
				c = rs.getInt("n");
300
				System.out.println("End: " + c);
301
	
302
				appCtr.commitTransaction(tx);
303
				
304
				appCtr.getNameService().saveOrUpdate(botName1);
305
				
306
				rs = ds.executeQuery("Select count(*) as n FROM NameRelationship");
307
				rs.next();
308
				c = rs.getInt("n");
309
				System.out.println("End: " + c);
310
				
311
			} catch (SQLException e) {
312
				// TODO Auto-generated catch block
313
				e.printStackTrace();
358 314
			}
359
		} catch (DataSourceNotFoundException e) {
360
			logger.error("Error in LOCAL HSQL");
361
		} catch (TermNotFoundException e) {
362
			logger.error("defined terms not found");
315
			
316
			
317
			//Agent agent = new Agent();
318
			//appCtr.getAgentService().saveAgent(agent);
319
			appCtr.close();
320
			return true;
321
		} catch (RuntimeException e) {
322
			logger.error("Runtime Exception");
323
			e.printStackTrace();
324
			appCtr.close();
325
			
363 326
		}
364 327
		return false;
365 328
	}
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestDatabase.java
21 21

  
22 22
import org.apache.log4j.Logger;
23 23
import org.hibernate.mapping.Column;
24
import org.junit.Test;
25 24
import org.springframework.core.io.ClassPathResource;
26 25
import org.springframework.core.io.Resource;
27 26

  
......
39 38
import eu.etaxonomy.cdm.model.agent.Contact;
40 39
import eu.etaxonomy.cdm.model.agent.Person;
41 40
import eu.etaxonomy.cdm.model.common.Annotation;
42
import eu.etaxonomy.cdm.model.common.AnnotationType;
43 41
import eu.etaxonomy.cdm.model.common.Language;
44
import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;
45 42
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
46 43
import eu.etaxonomy.cdm.model.description.DescriptionBase;
47 44
import eu.etaxonomy.cdm.model.description.Feature;
......
56 53
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
57 54
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
58 55
import eu.etaxonomy.cdm.model.taxon.Taxon;
59
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
60 56

  
61 57

  
62 58
public class TestDatabase {
......
74 70
	}
75 71
	
76 72
	public void testNewDatabaseConnection(){
77
		try {
78
			
79
			Column coL;
80
			boolean omitTermLoading = false;
81
			Resource applicationContextResource = new ClassPathResource(CdmApplicationController.DEFAULT_APPLICATION_CONTEXT_RESOURCE);
82
			CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance();
83
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(applicationContextResource, dataSource, DbSchemaValidation.CREATE, omitTermLoading);
84
			appCtr.NewConversation();
85
			appCtr.NewConversation();
86
			
87
			//CdmApplicationController appCtr = CdmApplicationController.NewInstance(DbSchemaValidation.CREATE);
88
			appCtr.close();
89
		} catch (DataSourceNotFoundException e) {
90
			logger.error("datasource error");
91
		} catch (TermNotFoundException e) {
92
			logger.error("defined terms not found");
93
		}
73

  
74
		Column coL;
75
		boolean omitTermLoading = false;
76
		Resource applicationContextResource = new ClassPathResource(CdmApplicationController.DEFAULT_APPLICATION_CONTEXT_RESOURCE);
77
		CdmPersistentDataSource dataSource = CdmPersistentDataSource.NewDefaultInstance();
78
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(applicationContextResource, dataSource, DbSchemaValidation.CREATE, omitTermLoading);
79
		appCtr.NewConversation();
80
		appCtr.NewConversation();
81
		
82
		//CdmApplicationController appCtr = CdmApplicationController.NewInstance(DbSchemaValidation.CREATE);
83
		appCtr.close();
94 84
	}
95 85
	
96 86
	public void testNewDatasourceClass(){
97
		try {
98 87
//			String server = "192.168.2.10";
99 88
//			String database = "cdm_test_andreasM";
100 89
//			String username = "edit";
101 90
//			String password = CdmUtils.readInputLine("Password: ");
102
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
91
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
103 92

  
104 93
//			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
105
			ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
106
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
107
			
108
			Rank genus = Rank.GENUS();
109
			BotanicalName botanicalName = BotanicalName.NewInstance(genus);
110
			botanicalName.setGenusOrUninomial("GenusName");
94
		ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
95
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
111 96
		
112
			IJournal journal = refFactory.newJournal();
113
			journal.setTitleCache("Afro+Doc", true);
114
			
115
			//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
97
		Rank genus = Rank.GENUS();
98
		BotanicalName botanicalName = BotanicalName.NewInstance(genus);
99
		botanicalName.setGenusOrUninomial("GenusName");
100
	
101
		IJournal journal = refFactory.newJournal();
102
		journal.setTitleCache("Afro+Doc", true);
103
		
104
		//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
116 105
//			Taxon taxon2 = Taxon.NewInstance(botanicalName2, null);
117
	//		botanicalName.getTitleCache();
118
			
119
			Taxon taxon1 = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
120
			appCtr.getTaxonService().save(taxon1);
121
			BotanicalName homotypName = BotanicalName.NewInstance(Rank.SUBGENUS(), botanicalName.getHomotypicalGroup());
122
			homotypName.setGenusOrUninomial("Subgenus");
123
			homotypName.setInfraGenericEpithet("homotyp");
124
			
125
			//Synonym synonym = Synonym.NewInstance(homotypName, journal);
126
			
127
			System.out.println("Taxa of " + botanicalName + ": " + botanicalName.getTaxonBases());
128
			System.out.println("Synonyms of " + homotypName + ": " + homotypName.getSynonyms());
129
			
130
			HomotypicalGroup homotypicalGroup = taxon1.getHomotypicGroup();
131
			System.out.println("HomotypicNames of " + botanicalName + ":" + homotypicalGroup.getTypifiedNames());
132
			System.out.println("HomotypicSynonymsByGroup of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicGroup());
133
			System.out.println("HomotypicSynonymsBySynonymy of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicRelationship());
134
			
106
//		botanicalName.getTitleCache();
107
		
108
		Taxon taxon1 = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
109
		appCtr.getTaxonService().save(taxon1);
110
		BotanicalName homotypName = BotanicalName.NewInstance(Rank.SUBGENUS(), botanicalName.getHomotypicalGroup());
111
		homotypName.setGenusOrUninomial("Subgenus");
112
		homotypName.setInfraGenericEpithet("homotyp");
113
		
114
		//Synonym synonym = Synonym.NewInstance(homotypName, journal);
115
		
116
		System.out.println("Taxa of " + botanicalName + ": " + botanicalName.getTaxonBases());
117
		System.out.println("Synonyms of " + homotypName + ": " + homotypName.getSynonyms());
118
		
119
		HomotypicalGroup homotypicalGroup = taxon1.getHomotypicGroup();
120
		System.out.println("HomotypicNames of " + botanicalName + ":" + homotypicalGroup.getTypifiedNames());
121
		System.out.println("HomotypicSynonymsByGroup of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicGroup());
122
		System.out.println("HomotypicSynonymsBySynonymy of " + taxon1 + ":" + taxon1.getHomotypicSynonymsByHomotypicRelationship());
123
		
135 124
//			appCtr.getTaxonService().saveTaxon(taxon2);
136 125
//			appCtr.getTaxonService().saveTaxon(taxon);
137
			
138
			appCtr.close();
139

  
140
		} catch (DataSourceNotFoundException e) {
141
			logger.error("datasource error");
142
		} catch (TermNotFoundException e) {
143
			logger.error("defined terms not found");
144
		}
126
		
127
		appCtr.close();
145 128
	}
146 129
	
147 130
	
148 131
	public void testFacts(){
149
		try {
150
			String server = "192.168.2.10";
151
			String database = "cdm_test_andreasM";
152
			String username = "edit";
153
			String password = CdmUtils.readInputLine("Password: ");
154
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;
155
			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
156
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
157
			
158
			Rank genus = Rank.GENUS();
159
			BotanicalName botanicalName = BotanicalName.NewInstance(genus);
160
			botanicalName.setGenusOrUninomial("GenusName");
161
		
162
			IJournal journal = refFactory.newJournal();
163
			journal.setTitleCache("Afro+Doc", true);
164
			
165
			Taxon taxon = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
166
			appCtr.getTaxonService().save(taxon);
167
			
168
			TaxonDescription taxonDescription = TaxonDescription.NewInstance();
169
			taxon.addDescription(taxonDescription);
170
			
171
			//textData
172
			TextData textData = TextData.NewInstance();
173
			textData.putText("XXX", Language.DEFAULT());
174
			taxonDescription.addElement(textData);
175
			
176
			//commonNames
177
			String commonNameString;
178
			if (taxon.getName() != null){
179
				commonNameString = "Common " + taxon.getName().getTitleCache(); 
180
			}else{
181
				commonNameString = "Common (null)";
182
			}
183
			CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, Language.DEFAULT());
184
			taxonDescription.addElement(commonName);
185
			
186
			//save
187
			appCtr.getTaxonService().save(taxon);
188 132

  
189
			
190
			appCtr.close();
191

  
192
		} catch (DataSourceNotFoundException e) {
193
			logger.error("datasource error");
194
		} catch (TermNotFoundException e) {
195
			logger.error("defined terms not found");
133
		String server = "192.168.2.10";
134
		String database = "cdm_test_andreasM";
135
		String username = "edit";
136
		String password = CdmUtils.readInputLine("Password: ");
137
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.VALIDATE;
138
		ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
139
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
140
		
141
		Rank genus = Rank.GENUS();
142
		BotanicalName botanicalName = BotanicalName.NewInstance(genus);
143
		botanicalName.setGenusOrUninomial("GenusName");
144
	
145
		IJournal journal = refFactory.newJournal();
146
		journal.setTitleCache("Afro+Doc", true);
147
		
148
		Taxon taxon = Taxon.NewInstance(botanicalName,(ReferenceBase)journal);
149
		appCtr.getTaxonService().save(taxon);
150
		
151
		TaxonDescription taxonDescription = TaxonDescription.NewInstance();
152
		taxon.addDescription(taxonDescription);
153
		
154
		//textData
155
		TextData textData = TextData.NewInstance();
156
		textData.putText("XXX", Language.DEFAULT());
157
		taxonDescription.addElement(textData);
158
		
159
		//commonNames
160
		String commonNameString;
161
		if (taxon.getName() != null){
162
			commonNameString = "Common " + taxon.getName().getTitleCache(); 
163
		}else{
164
			commonNameString = "Common (null)";
196 165
		}
166
		CommonTaxonName commonName = CommonTaxonName.NewInstance(commonNameString, Language.DEFAULT());
167
		taxonDescription.addElement(commonName);
168
		
169
		//save
170
		appCtr.getTaxonService().save(taxon);
171

  
172
		
173
		appCtr.close();
197 174
	}
198 175
	
199 176
	
200 177
	public void testHybridRelationships(){
201
		try {
178

  
202 179
//			String database = "cdm";
203 180
//			String username = "sa";
204 181

  
205
			String server = "192.168.2.10";
206
			String database = "cdm_test_andreasM";
207
			String username = "edit";
208
			String password = CdmUtils.readInputLine("Password: ");
209
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
210
			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
211
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
212
			
213
			Rank genus = Rank.GENUS();
214
			BotanicalName parentName = BotanicalName.NewInstance(genus);
215
			parentName.setGenusOrUninomial("parent");
182
		String server = "192.168.2.10";
183
		String database = "cdm_test_andreasM";
184
		String username = "edit";
185
		String password = CdmUtils.readInputLine("Password: ");
186
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
187
		ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
188
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
216 189
		
217
			BotanicalName childName = BotanicalName.NewInstance(genus);
218
			childName.setGenusOrUninomial("child");
219
			parentName.addHybridChild(childName, HybridRelationshipType.FIRST_PARENT(), null);
220
			
221
			//save
222
			appCtr.getNameService().save(parentName);
223

  
224
			
225
			appCtr.close();
190
		Rank genus = Rank.GENUS();
191
		BotanicalName parentName = BotanicalName.NewInstance(genus);
192
		parentName.setGenusOrUninomial("parent");
193
	
194
		BotanicalName childName = BotanicalName.NewInstance(genus);
195
		childName.setGenusOrUninomial("child");
196
		parentName.addHybridChild(childName, HybridRelationshipType.FIRST_PARENT(), null);
197
		
198
		//save
199
		appCtr.getNameService().save(parentName);
226 200

  
227
		} catch (DataSourceNotFoundException e) {
228
			logger.error("datasource error");
229
		} catch (TermNotFoundException e) {
230
			logger.error("defined terms not found");
231
		}
201
		
202
		appCtr.close();
232 203
	}
233 204
	
234 205
	public void testPaddie(){
206
		String server = "PADDIE";
207
		String database = "edit_test";
208
		String username = "andreas";
209
		String password = CdmUtils.readInputLine("Password: ");
210
		DbSchemaValidation validation = DbSchemaValidation.VALIDATE;
211
		ICdmDataSource datasource = CdmDataSource.NewSqlServer2005Instance(server, database, -1, username, password, null);
212
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, validation);
235 213
		
236

  
237
		try {
238
			String server = "PADDIE";
239
			String database = "edit_test";
240
			String username = "andreas";
241
			String password = CdmUtils.readInputLine("Password: ");
242
			DbSchemaValidation validation = DbSchemaValidation.VALIDATE;
243
			ICdmDataSource datasource = CdmDataSource.NewSqlServer2005Instance(server, database, -1, username, password, null);
244
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, validation);
245
			
246
			Rank genus = Rank.GENUS();
247
			BotanicalName botanicalName = BotanicalName.NewInstance(genus);
248
			botanicalName.setGenusOrUninomial("GenusName");
214
		Rank genus = Rank.GENUS();
215
		BotanicalName botanicalName = BotanicalName.NewInstance(genus);
216
		botanicalName.setGenusOrUninomial("GenusName");
217
	
218
		IJournal journal = refFactory.newJournal();
219
		journal.setTitle("JournalTitel");
249 220
		
250
			IJournal journal = refFactory.newJournal();
251
			journal.setTitle("JournalTitel");
252
			
253
			//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
221
		//			Taxon taxon = Taxon.NewInstance(botanicalName, journal);
254 222
//			Taxon taxon2 = Taxon.NewInstance(botanicalName2, null);
255
	//		botanicalName.getTitleCache();
256
			Rank.SPECIES();
257
			appCtr.getNameService().save(botanicalName);
223
//		botanicalName.getTitleCache();
224
		Rank.SPECIES();
225
		appCtr.getNameService().save(botanicalName);
258 226

  
259 227
//			appCtr.getTaxonService().saveTaxon(taxon2);
260 228
//			appCtr.getTaxonService().saveTaxon(taxon);
261
			
262
			appCtr.close();
263
		} catch (DataSourceNotFoundException e) {
264
			logger.error("datasource error");
265
		} catch (TermNotFoundException e) {
266
			logger.error("defined terms not found");
267
		}
229
		
230
		appCtr.close();
268 231
	}
269 232
	
270 233
	
271 234
	public void testContact(){
272
		try {
273 235
//			String server = "192.168.2.10";
274 236
//			String database = "cdm_test_andreasM";
275 237
//			String username = "edit";
276 238
//			String password = CdmUtils.readInputLine("Password: ");
277
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
239
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
278 240

  
279 241
//			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
280
			//ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "");
281
			ICdmDataSource datasource = cdm_test_anahit2();
282
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
283
			AgentBase person = Person.NewTitledInstance("TestPerson");
284
			Contact contact1 = new Contact();
285
			Set<String> set = new HashSet<String>();
286
			set.add("email1");
287
			set.add("c@d.org");
242
		//ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "");
243
		ICdmDataSource datasource = cdm_test_anahit2();
244
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
245
		AgentBase person = Person.NewTitledInstance("TestPerson");
246
		Contact contact1 = new Contact();
247
		Set<String> set = new HashSet<String>();
248
		set.add("email1");
249
		set.add("c@d.org");
288 250
//			contact1.setEmail(set);
289 251
//			person.setContact(contact1);
290
			appCtr.getAgentService().save(person);
291
			appCtr.close();
292
			System.out.println("End");
293
		} catch (DataSourceNotFoundException e) {
294
			logger.error("datasource error");
295
		} catch (TermNotFoundException e) {
296
			logger.error("defined terms not found");
297
		}
252
		appCtr.getAgentService().save(person);
253
		appCtr.close();
254
		System.out.println("End");
298 255
	}
299 256
	
300 257
	
301 258
	public void testNewVersion(){
302
		try {
303
			System.out.println("Start");
304
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
259
		System.out.println("Start");
260
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
305 261

  
306 262
//			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
307
			ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
308
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
309
			BotanicalName botName = BotanicalName.NewInstance(Rank.SPECIES());
310
			botName.setGenusOrUninomial("Genus");
311
			botName.setSpecificEpithet("species");
312
			appCtr.getNameService().save(botName);
313
			List<?> names = appCtr.getNameService().findNamesByTitle("Genus species");
263
		ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "", null);
264
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
265
		BotanicalName botName = BotanicalName.NewInstance(Rank.SPECIES());
266
		botName.setGenusOrUninomial("Genus");
267
		botName.setSpecificEpithet("species");
268
		appCtr.getNameService().save(botName);
269
		List<?> names = appCtr.getNameService().findNamesByTitle("Genus species");
314 270

  
315
			names.size();
271
		names.size();
316 272
//			AgentBase person = Person.NewTitledInstance("TestPerson");
317 273
//			Contact contact1 = new Contact();
318 274
//			Set<String> set = new HashSet<String>();
......
321 277
////			contact1.setEmail(set);
322 278
//			person.setContact(contact1);
323 279
//			appCtr.getAgentService().save(person);
324
			appCtr.close();
325
			System.out.println("End");
326
		} catch (DataSourceNotFoundException e) {
327
			logger.error("datasource error");
328
		} catch (TermNotFoundException e) {
329
			logger.error("defined terms not found");
330
		}
280
		appCtr.close();
281
		System.out.println("End");
331 282
	}
332 283
	
333 284
	public void testDataSourceWithNomenclaturalCode(){
......
358 309
	public void testLoadedAnnotationGetAnnotatedObjectCall(){
359 310
		String password = CdmUtils.readInputLine("Password: ");
360 311
		ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("192.168.2.10", "cdm_test_niels2", 3306, "edit", password, NomenclaturalCode.ICBN);
361
		try {
362
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(dataSource, DbSchemaValidation.UPDATE);
363
			
364
			ConversationHolder conversation = appCtr.NewConversation();
365
			
366
			// make the taxon and description elements 
367
			Taxon taxon = Taxon.NewInstance(null, null);			
368 312

  
369
			TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);
370
			
371
			UUID taxonDescriptionUuid = taxonDescription.getUuid();
372
			
373
			Feature featureAnatomy = Feature.ANATOMY(); 
374
			
375
			TextData textData = TextData.NewInstance();
376
			textData.addAnnotation(Annotation.NewInstance(null, null));
377
			
378
			assertNotNull(textData.getAnnotations().iterator().next().getAnnotatedObj());
379
			
380
			textData.setFeature(featureAnatomy);
381
			
382
			taxonDescription.addElement(textData);
313
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(dataSource, DbSchemaValidation.UPDATE);
314
		
315
		ConversationHolder conversation = appCtr.NewConversation();
316
		
317
		// make the taxon and description elements 
318
		Taxon taxon = Taxon.NewInstance(null, null);			
383 319

  
384
			appCtr.getTaxonService().save(taxon);
385
			
386
			conversation.commit(false);
387
			// end of creation phase
388
			
389
			
390
			// load the new taxon in a new conversation to assure that it was loaded into a new session
391
			// if you are willing to blame it on conversations, please rewrite into two methods 
392
			// the result will be the same
393
			ConversationHolder newConversation = appCtr.NewConversation();
394
			DescriptionBase loadedDescription = appCtr.getDescriptionService().load(taxonDescriptionUuid);
395
			
396
			TextData descriptionElement = (TextData) loadedDescription.getElements().iterator().next();
320
		TaxonDescription taxonDescription = TaxonDescription.NewInstance(taxon);
397 321
		
398
			Annotation annotation = descriptionElement.getAnnotations().iterator().next();
399
			
400
			// this should not be null
401
			assertNotNull(annotation.getAnnotatedObj());
402
			
403
			
404
		} catch (DataSourceNotFoundException e) {
405
			// TODO Auto-generated catch block
406
			e.printStackTrace();
407
		} catch (TermNotFoundException e) {
408
			// TODO Auto-generated catch block
409
			e.printStackTrace();
410
		}
322
		UUID taxonDescriptionUuid = taxonDescription.getUuid();
323
		
324
		Feature featureAnatomy = Feature.ANATOMY(); 
325
		
326
		TextData textData = TextData.NewInstance();
327
		textData.addAnnotation(Annotation.NewInstance(null, null));
328
		
329
		assertNotNull(textData.getAnnotations().iterator().next().getAnnotatedObj());
330
		
331
		textData.setFeature(featureAnatomy);
332
		
333
		taxonDescription.addElement(textData);
334

  
335
		appCtr.getTaxonService().save(taxon);
336
		
337
		conversation.commit(false);
338
		// end of creation phase
339
		
340
		
341
		// load the new taxon in a new conversation to assure that it was loaded into a new session
342
		// if you are willing to blame it on conversations, please rewrite into two methods 
343
		// the result will be the same
344
		ConversationHolder newConversation = appCtr.NewConversation();
345
		DescriptionBase loadedDescription = appCtr.getDescriptionService().load(taxonDescriptionUuid);
346
		
347
		TextData descriptionElement = (TextData) loadedDescription.getElements().iterator().next();
348
	
349
		Annotation annotation = descriptionElement.getAnnotations().iterator().next();
350
		
351
		// this should not be null
352
		assertNotNull(annotation.getAnnotatedObj());
411 353
		
412 354
	}
413 355
	
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestLocationServiceImpl.java
21 21
import eu.etaxonomy.cdm.api.service.ILocationService;
22 22
import eu.etaxonomy.cdm.api.service.ILocationService.NamedAreaVocabularyType;
23 23
import eu.etaxonomy.cdm.database.CdmDataSource;
24
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
25 24
import eu.etaxonomy.cdm.database.DbSchemaValidation;
26 25
import eu.etaxonomy.cdm.database.ICdmDataSource;
27
import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;
28

  
29 26
import eu.etaxonomy.cdm.model.taxon.Taxon;
30 27
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
31 28

  
......
59 56
	}
60 57
	
61 58
	public void testNewDatasourceClass(){
62
		try {
63 59
//			String server = "192.168.2.10";
64 60
//			String database = "cdm_test_andreasM";
65 61
//			String username = "edit";
66 62
//			String password = CdmUtils.readInputLine("Password: ");
67
			DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
63
		DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
68 64

  
69 65
//			ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
70
			ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("test", "sa", "", null);
71
			CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
72
			
73
			ConversationHolder conversation = appCtr.NewConversation();
74
			conversation.bind();
75
			
76
			Taxon taxon = Taxon.NewInstance(null, null);
77

  
66
		ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("test", "sa", "", null);
67
		CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
68
		
69
		ConversationHolder conversation = appCtr.NewConversation();
70
		conversation.bind();
71
		
72
		Taxon taxon = Taxon.NewInstance(null, null);
78 73

  
79
		} catch (DataSourceNotFoundException e) {
80
			logger.error("datasource error");
81
		} catch (TermNotFoundException e) {
82
			logger.error("defined terms not found");
83
		}
84 74
	}
85 75
}
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestTaxonFunction.java
18 18
import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
19 19
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
20 20
import eu.etaxonomy.cdm.database.DbSchemaValidation;
21
import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;
22 21
import eu.etaxonomy.cdm.model.name.BotanicalName;
23
import eu.etaxonomy.cdm.model.name.NonViralName;
24 22
import eu.etaxonomy.cdm.model.name.Rank;
25 23
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
26
import eu.etaxonomy.cdm.model.reference.IBook;
27 24
import eu.etaxonomy.cdm.model.reference.ReferenceBase;
28 25
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
29 26
import eu.etaxonomy.cdm.model.taxon.Synonym;
......
43 40
			cdmApp = CdmApplicationController.NewInstance(dataSource, hbm2dll);
44 41
		} catch (DataSourceNotFoundException e) {
45 42
			e.printStackTrace();
46
		} catch (TermNotFoundException e) {
47
			logger.error("defined terms not found");
48
		}
43
		} 
49 44
		return cdmApp;
50 45
		
51 46
	}
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/integration/CreateDataTestNoUnit.java
19 19
import org.apache.log4j.Logger;
20 20

  
21 21
import eu.etaxonomy.cdm.api.application.CdmApplicationController;
22
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
23 22
import eu.etaxonomy.cdm.database.DbSchemaValidation;
24 23
import eu.etaxonomy.cdm.database.ICdmDataSource;
25 24
import eu.etaxonomy.cdm.model.common.Language;
26
import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;
27 25
import eu.etaxonomy.cdm.model.description.CommonTaxonName;
28 26
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
29 27
import eu.etaxonomy.cdm.model.description.TaxonDescription;
......
51 49
			 dbSchemaValidation = DbSchemaValidation.CREATE;
52 50
		}
53 51
		ICdmDataSource dataSource = CreateDataTest.cdm_test();
54
		try {
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff