cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestConcurrentSession.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestConversationEnabled.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestDatabase.java -text
+cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestLocationServiceImpl.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestService.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestTaxonFunction.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/hibernate.cfg.xml -text
import eu.etaxonomy.cdm.io.berlinModel.out.mapper.DbStringMapper;\r
import eu.etaxonomy.cdm.io.berlinModel.out.mapper.IdMapper;\r
import eu.etaxonomy.cdm.io.berlinModel.out.mapper.MethodMapper;\r
-import eu.etaxonomy.cdm.io.berlinModel.out.mapper.NomStatusMapper;\r
import eu.etaxonomy.cdm.io.berlinModel.out.mapper.RefDetailMapper;\r
import eu.etaxonomy.cdm.io.common.IExportConfigurator;\r
import eu.etaxonomy.cdm.io.common.Source;\r
import org.hibernate.annotations.CascadeType;
import org.hibernate.envers.Audited;
+import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.OrderedTermBase;
import eu.etaxonomy.cdm.model.common.TermVocabulary;
}\r
}\r
\r
+ \r
//name\r
protected String dataSourceName;\r
\r
return save(strDataSourceName, databaseTypeEnum, server, databaseName, port, username, password, driverManagerDataSource, "init", "destroy", true, true, databasePath, null);\r
}\r
\r
+ /**\r
+ * Saves an H2 instance \r
+ * \r
+ * @param strDataSourceName\r
+ * @param databasePath\r
+ * @param databaseName\r
+ * @param username\r
+ * @param password\r
+ * @param mode\r
+ * @return\r
+ */\r
+ public static CdmPersistentDataSource saveLocalH2(String strDataSourceName, String databasePath, String databaseName, String username, String password, H2Mode mode){\r
+ DatabaseTypeEnum databaseTypeEnum = DatabaseTypeEnum.H2;\r
+ Class<? extends DriverManagerDataSource> driverManagerDataSource = LocalH2.class;\r
+ String server = "localhost";\r
+ int port = databaseTypeEnum.getDefaultPort();\r
+ return save(strDataSourceName, databaseTypeEnum, server, databaseName, port, username, password, driverManagerDataSource, null, null, null, null, databasePath, mode);\r
+ }\r
+ \r
//\r
private static CdmPersistentDataSource save(String strDataSourceName, \r
DatabaseTypeEnum databaseTypeEnum, \r
return;\r
} else {\r
Map<UUID,DefinedTermBase> terms = new HashMap<UUID,DefinedTermBase>();\r
- logger.info("PersistentTermInitializer.omit == false, initializing " + terms.size() + " term classes");\r
+ logger.info("PersistentTermInitializer.omit == false, initializing " + classesToInitialize.length + " term classes");\r
for(Class clazz : classesToInitialize) {\r
UUID vocabularyUuid = firstPass(clazz,terms);\r
secondPass(clazz,vocabularyUuid,terms);\r
@Override\r
public String getServerNameByConnectionString(String connectionString) {\r
String result;\r
- if (connectionString.startsWith("file:")){\r
+ if (connectionString.startsWith("file:") || connectionString.startsWith( urlString + "file:")){\r
result = null; \r
}else if (connectionString.startsWith("tcp://")){\r
String prefix = "tcp://";\r
public String getDatabaseNameByConnectionString(String connectionString) {\r
int pos = -1;\r
String result;\r
- if (connectionString.startsWith("file:")){\r
+ if (connectionString.startsWith("file:") || connectionString.startsWith( urlString + "file:")){\r
pos = connectionString.lastIndexOf("/");\r
result = connectionString.substring(pos + 1);\r
}else if (connectionString.startsWith("tcp://")){\r
@Override\r
public int getPortByConnectionString(String connectionString) {\r
int result;\r
- if (connectionString.startsWith("file:")){\r
+ if (connectionString.startsWith("file:") || connectionString.startsWith( urlString + "file:")){\r
result = -1; \r
}else if (connectionString.startsWith("tcp://")){\r
String prefix = "tcp://";\r
if (results.isEmpty()){\r
return null;\r
}else{\r
+ if(results.size() > 1){\r
+ logger.error("findByUuid() delivers more than one result for UUID: " + uuid);\r
+ }\r
return results.get(0); \r
}\r
}\r
http://www.springframework.org/schema/context\r
http://www.springframework.org/schema/context/spring-context-2.5.xsd">\r
\r
-\r
- <bean id="localDefaultH2DataSource" \r
- lazy-init="true"\r
- class="eu.etaxonomy.cdm.database.LocalH2" \r
- init-method="init"\r
- destroy-method="destroy"\r
- >\r
- <property name="driverClassName" value="org.h2.Driver"/>\r
- <property name="username" value="sa"/>\r
- <property name="password" value=""/>\r
- <!-- property name="startServer" value="true"/> -->\r
- <!-- property name="silent" value="true"/>-->\r
- <!-- property name="pureUrl" value="jdbc:h2:tcp://localhost/"/-->\r
- <!-- property name="dbName" value="cdm"/> -->\r
- <!-- <property name="databasePath" value="C:\tmp\cdmDb\"/> -->\r
- </bean>\r
- \r
- \r
<!--JDBC datasource pattern-->\r
<!-- <bean id="defaultDataSource" lazy-init="true" class="org.springframework.jdbc.datasource.DriverManagerDataSource">-->\r
<!-- <property name="driverClassName" value="com.mysql.jdbc.Driver"/>-->\r
* @param vocabularyType
* @return
*/
- public OrderedTermVocabulary<NamedArea> getNamedAreaVocabulary(NamedAreaVocabularyType vocabularyType, NamedAreaLevel namedAreaLevel, NamedAreaType namedAreaType);
+ public OrderedTermVocabulary<NamedArea> getNamedAreaVocabulary(NamedAreaVocabularyType vocabularyType);
public TermVocabulary<NamedAreaType> getNamedAreaTypeVocabulary();
* @return
*/
public OrderedTermVocabulary<AbsenceTerm> getAbsenceTermVocabulary();
-
+
+ /**
+ *
+ */
+ public List<NamedArea> getTopLevelNamedAreasByVocabularyType(NamedAreaVocabularyType vocabularyType);
}
import eu.etaxonomy.cdm.model.common.TermVocabulary;
import eu.etaxonomy.cdm.model.description.AbsenceTerm;
import eu.etaxonomy.cdm.model.description.PresenceTerm;
-import eu.etaxonomy.cdm.model.location.Continent;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.location.NamedAreaLevel;
import eu.etaxonomy.cdm.model.location.NamedAreaType;
-import eu.etaxonomy.cdm.model.location.TdwgArea;
-import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;
import eu.etaxonomy.cdm.persistence.dao.common.IOrderedTermVocabularyDao;
import eu.etaxonomy.cdm.persistence.dao.common.ITermVocabularyDao;
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.api.service.ILocationService#getNamedAreas(java.lang.Object)
*/
- public OrderedTermVocabulary<NamedArea> getNamedAreaVocabulary(NamedAreaVocabularyType vocabularyType, NamedAreaLevel level, NamedAreaType type) {
+ public OrderedTermVocabulary<NamedArea> getNamedAreaVocabulary(NamedAreaVocabularyType vocabularyType) {
- OrderedTermVocabulary<NamedArea> namedAreaVocabulary = new OrderedTermVocabulary<NamedArea>();
-
- List<NamedArea> namedAreaList = definedTermDao.list(level, type, null, null);
-
- for(NamedArea namedArea : namedAreaList){
- if(vocabularyType == NamedAreaVocabularyType.TDWG_AREA && (namedArea instanceof TdwgArea)){
- namedAreaVocabulary.addTerm(namedArea);
- }
- if(vocabularyType == NamedAreaVocabularyType.CONTINENT && (namedArea instanceof Continent)){
- namedAreaVocabulary.addTerm(namedArea);
- }
- if(vocabularyType == NamedAreaVocabularyType.WATERBODY_OR_COUNTRY && (namedArea instanceof WaterbodyOrCountry)){
- namedAreaVocabulary.addTerm(namedArea);
- }
+ UUID namedAreaVocabularyUuid = null;
+
+ if(vocabularyType == NamedAreaVocabularyType.TDWG_AREA){
+ namedAreaVocabularyUuid = UUID.fromString("1fb40504-d1d7-44b0-9731-374fbe6cac77");
+ }
+ if(vocabularyType == NamedAreaVocabularyType.CONTINENT){
+ namedAreaVocabularyUuid = UUID.fromString("e72cbcb6-58f8-4201-9774-15d0c6abc128");
+ }
+ if(vocabularyType == NamedAreaVocabularyType.WATERBODY_OR_COUNTRY){
+ namedAreaVocabularyUuid = UUID.fromString("006b1870-7347-4624-990f-e5ed78484a1a");
}
- return namedAreaVocabulary;
+ return (OrderedTermVocabulary)orderedVocabularyDao.findByUuid(namedAreaVocabularyUuid);
}
/* (non-Javadoc)
return namedAreaTypeVocabulary;
}
+ public List<NamedArea> getTopLevelNamedAreasByVocabularyType(NamedAreaVocabularyType vocabularyType){
+
+ OrderedTermVocabulary<NamedArea> vocabulary = getNamedAreaVocabulary(vocabularyType);
+ List<NamedArea> topLevelTerms = new ArrayList<NamedArea>();
+
+ for(NamedArea area : vocabulary){
+ if(area.getPartOf() == null){
+ topLevelTerms.add(area);
+ }
+ }
+
+ return topLevelTerms;
+ }
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2007 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+
+package eu.etaxonomy.cdm.test.function;
+
+
+import org.apache.log4j.Logger;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.unitils.spring.annotation.SpringBeanByType;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;
+import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.api.service.ILocationService;
+import eu.etaxonomy.cdm.api.service.ILocationService.NamedAreaVocabularyType;
+import eu.etaxonomy.cdm.database.CdmDataSource;
+import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
+import eu.etaxonomy.cdm.database.DbSchemaValidation;
+import eu.etaxonomy.cdm.database.ICdmDataSource;
+import eu.etaxonomy.cdm.model.common.init.TermNotFoundException;
+import eu.etaxonomy.cdm.model.name.BotanicalName;
+import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.name.Rank;
+import eu.etaxonomy.cdm.model.reference.Journal;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
+import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
+
+/**
+ * @author n.hoffman
+ * @created 12.05.2009
+ * @version 1.0
+ */
+public class TestLocationServiceImpl extends CdmIntegrationTest{
+ private static final Logger logger = Logger
+ .getLogger(TestLocationServiceImpl.class);
+
+ @SpringBeanByType
+ private ILocationService locationService;
+
+ @Ignore
+ @Test
+ public void testGetTopLevelContinentAreas(){
+ locationService.getTopLevelNamedAreasByVocabularyType(NamedAreaVocabularyType.CONTINENT);
+ }
+
+ @Test
+ public void testGetTopLevelTdwgAreas(){
+ locationService.getTopLevelNamedAreasByVocabularyType(NamedAreaVocabularyType.TDWG_AREA);
+ }
+
+ @Ignore
+ @Test
+ public void testGetTopLevelWaterbodyOrCoutryAreas(){
+ locationService.getTopLevelNamedAreasByVocabularyType(NamedAreaVocabularyType.WATERBODY_OR_COUNTRY);
+ }
+
+ public void testNewDatasourceClass(){
+ try {
+// String server = "192.168.2.10";
+// String database = "cdm_test_andreasM";
+// String username = "edit";
+// String password = CdmUtils.readInputLine("Password: ");
+ DbSchemaValidation dbSchemaValidation = DbSchemaValidation.CREATE;
+
+// ICdmDataSource datasource = CdmDataSource.NewMySqlInstance(server, database, username, password);
+ ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("test", "sa", "");
+ CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);
+
+ ConversationHolder conversation = appCtr.NewConversation();
+ conversation.bind();
+
+ Taxon taxon = Taxon.NewInstance(null, null);
+
+
+ } catch (DataSourceNotFoundException e) {
+ logger.error("datasource error");
+ } catch (TermNotFoundException e) {
+ logger.error("defined terms not found");
+ }
+ }
+}