cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/PostgreSQLDatabaseType.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SqlServer2000DatabaseType.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SqlServer2005DatabaseType.java -text
+cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SqlServer2008DatabaseType.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SybaseDatabaseType.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/CdmUpdater.java -text
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/ColumnAdder.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/PolytomousKeyDaoHibernateImplTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/media/MediaDaoImplTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/media/MediaRepresentationPartDaoImplTest.java -text
+cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/molecular/MolecularHibernateImplTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/ConfigurableNameCacheStrategyGeneratorsTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImplTest.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TestingBotanicalNameCacheStrategy.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/test/unitils/CleanSweepInsertLoadStrategy.java -text
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/test/unitils/FlatFullXmlWriter.java -text
cdmlib-persistence/src/test/resources/META-INF/persistence.xml -text
+cdmlib-persistence/src/test/resources/c3p0-config.xml -text
cdmlib-persistence/src/test/resources/dbscripts/001-cdm.h2.sql -text
cdmlib-persistence/src/test/resources/dbscripts/hibernate.cfg.xml -text
cdmlib-persistence/src/test/resources/dbscripts/hibernate.properties -text
cdmlib-print/src/site/apt/writing-templates.apt -text
cdmlib-print/src/site/fml/troubleshooting.fml -text
cdmlib-print/src/site/site.xml -text
+cdmlib-print/src/test/java/eu/etaxonomy/cdm/print/PubTest.java -text
cdmlib-print/src/test/java/eu/etaxonomy/cdm/print/PublisherTest.java -text
cdmlib-print/src/test/java/eu/etaxonomy/cdm/print/TransformatorTest.java -text
cdmlib-print/src/test/java/eu/etaxonomy/cdm/print/out/odf/OdfOutputModuleTest.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/VocabularyListController.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/csv/CsvExportController.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/dto/NameCatalogueController.java -text
+cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/dto/PolytomousKeyNodeDtoController.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/ext/ExternalBhleController.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/ext/ExternalGeoController.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/interceptor/ContentNegociationHandlerInterceptor.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/oaipmh/package-info.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/package.html -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/AbstractLinkDto.java -text
-cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/LinkedPolytomousKeyNodeEntryDto.java -text
+cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/LinkedPolytomousKeyNodeRowDto.java -text
+cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/PolytomousKeyNodeLinkDto.java -text
+cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/TaxonLinkDto.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/tdwg/Actor.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/tdwg/BaseThing.java -text
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/tdwg/Concept.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/CommonServiceImplTest.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImplTest.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBaseTest.java -text
-cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentificationKeyGeneratorTest.java -text
-cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/MediaServiceImplTest.java -text
+cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentificationKeyGeneratorTTT.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/NameServiceImplTest.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/NaturalLanguageGeneratorTest.java -text
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/PolytomousKeyServiceImplTest.java -text
import java.util.ArrayList;\r
import java.util.List;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.http.HttpException;\r
import org.apache.http.NameValuePair;\r
<artifactId>unitils-core</artifactId>
<scope>test</scope>
</dependency>
+ <!-- probably most unitis dependencies can be deleted from here -->
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-database</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ </exclusion>
+ </exclusions>
<scope>test</scope>
</dependency>
<dependency>
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-orm</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ </exclusion>
+ </exclusions>
<scope>test</scope>
</dependency>
<dependency>
\r
import javax.xml.stream.XMLStreamException;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
class="org.springframework.beans.factory.config.PropertiesFactoryBean">\r
<property name="properties">\r
<props>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
- <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
+ <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.impl.FSDirectoryProvider</prop>\r
<!-- TODO trying to use a managed session context\r
<prop key="hibernate.current_session_context_class">managed</prop>\r
-->\r
</bean>\r
\r
\r
+ <!-- \r
+ We do not use old springmodules spelling module anymore. See persistence spelling.xml comments for details.\r
+ Try to work with modern annotationbased spelling instead.\r
+ \r
<bean id="taxonSpellingDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">\r
<property name="location" value="file:./target/index/eu.etaxonomy.cdm.model.taxon.TaxonBase_spelling"/>\r
<property name="create" value="true"/>\r
- </bean>\r
+ </bean> -->\r
</beans>
\ No newline at end of file
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-database</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ </exclusion>
+ </exclusions>
<scope>test</scope>
</dependency>
<dependency>
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-orm</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ </exclusion>
+ </exclusions>
<scope>test</scope>
</dependency>
<dependency>
int newTaxonId = rs.getInt("taxonId");\r
String tdwgCodeString = rs.getString("TDWGCode");\r
String emCodeString = state.getConfig().isIncludesAreaEmCode() ? rs.getString("EMCode") : null;\r
- Integer emStatusId = (Integer)rs.getObject("emOccurSumCatId");\r
+ Integer emStatusId = nullSafeInt(rs, "emOccurSumCatId");\r
\r
try {\r
//status\r
if ((i++ % modCount) == 0 && i!= 1 ){ logger.info("occurrence sources handled: " + (i-1));}\r
\r
Integer occurrenceSourceId = rs.getInt("OccurrenceSourceId");\r
- Integer occurrenceFk = (Integer)rs.getObject("OccurrenceFk");\r
+ Integer occurrenceFk =nullSafeInt(rs, "OccurrenceFk");\r
String sourceNumber = rs.getString("SourceNumber");\r
String oldName = rs.getString("OldName");\r
- Integer oldNameFk = (Integer)rs.getObject("OldNameFk");\r
+ Integer oldNameFk = nullSafeInt(rs, "OldNameFk");\r
\r
Distribution distribution = (Distribution)state.getRelatedObject(BerlinModelOccurrenceImport.NAMESPACE, String.valueOf(occurrenceFk));\r
\r
// $Id$\r
/**\r
* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
-* \r
+*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
private STATE state;\r
private String tableName;\r
private Class<? extends CdmBase> cdmClass;\r
- \r
- \r
+\r
+\r
/**\r
* @param state\r
* @param tableName\r
*/\r
public void initialize(STATE state, Class<? extends CdmBase> cdmClass) {\r
this.state = state;\r
- this.tableName = tableName;\r
this.cdmClass = cdmClass;\r
}\r
\r
import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.dialect.FirebirdDialect;\r
\r
import eu.etaxonomy.cdm.api.service.IIdentifiableEntityService;\r
import eu.etaxonomy.cdm.io.common.ImportStateBase;\r
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
import eu.etaxonomy.cdm.model.name.NonViralName;
+import eu.etaxonomy.cdm.model.name.Rank;
import fr.lis.ikeyplus.IO.SDDSaxParser;
import fr.lis.ikeyplus.model.DataSet;
import fr.lis.ikeyplus.model.ICharacter;
pkNode = createPkNode(null, statement);
- NonViralName nonViralName = NonViralName.NewInstance(null);
+ //TODO handle rank
+ NonViralName<?> nonViralName = NonViralName.NewInstance(Rank.UNKNOWN_RANK());
nonViralName.setTitleCache(taxon.getName(), true);
eu.etaxonomy.cdm.model.taxon.Taxon cdmTaxon = eu.etaxonomy.cdm.model.taxon.Taxon.NewInstance(
nonViralName, null); //FIXME !!!!!!
import java.util.UUID;\r
\r
import org.apache.commons.lang.StringUtils;\r
-import org.apache.http.HttpException;\r
import org.apache.log4j.Logger;\r
import org.jdom.Element;\r
import org.jdom.Namespace;\r
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
import eu.etaxonomy.cdm.model.media.Rights;\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.occurrence.Specimen;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
\r
NonViralName<?> tnb = null;\r
if (!id.equals("")) {\r
- tnb = NonViralName.NewInstance(null);\r
+ tnb = NonViralName.NewInstance(Rank.UNKNOWN_RANK());\r
IdentifiableSource source = null;\r
if (uri != null) {\r
if (!uri.equals("")) {\r
*/\r
private Taxon handleCDNoScope(Namespace sddNamespace, SDDImportState cdmState, Element elCodedDescription ) {\r
Taxon taxon = null;\r
- NonViralName<?> nonViralName = NonViralName.NewInstance(null);\r
+ NonViralName<?> nonViralName = NonViralName.NewInstance(Rank.UNKNOWN_RANK());\r
String id = new String("" + taxonNamesCount);\r
IdentifiableSource source = IdentifiableSource.NewInstance(id, "TaxonName");\r
importRepresentation(elCodedDescription, sddNamespace, nonViralName, id, cdmState);\r
import java.util.Set;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
-\r
import org.apache.log4j.Logger;\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
private static final Logger logger = Logger.getLogger(NormalExplicitImportTest.class);\r
\r
@SpringBeanByName\r
- CdmApplicationAwareDefaultImport defaultImport;\r
+ CdmApplicationAwareDefaultImport<?> defaultImport;\r
\r
@SpringBeanByType\r
INameService nameService;\r
Set<Synonym> synonyms = noctuaPronubaTaxon.getSynonyms();\r
assertEquals("Number of synonyms should be 1", 1, synonyms.size());\r
Synonym synonym = synonyms.iterator().next();\r
- assertEquals("Synonym name should be ", "Noctua atlantica", ((NonViralName)synonym.getName()).getNameCache());\r
+ assertEquals("Synonym name should be ", "Noctua atlantica", ((NonViralName<?>)synonym.getName()).getNameCache());\r
Set<TaxonDescription> descriptions = noctuaPronubaTaxon.getDescriptions();\r
Assert.assertEquals("Number of descriptions should be 1", 1, descriptions.size());\r
TaxonDescription taxonDescription = descriptions.iterator().next();\r
assertEquals("Unexpected description text", expectedText, text);\r
assertEquals("Number of source elements should be 1", 1, textData.getSources().size());\r
DescriptionElementSource source = textData.getSources().iterator().next();\r
- Reference ref = source.getCitation();\r
+ Reference<?> ref = source.getCitation();\r
assertNotNull("Citation should not be null", ref);\r
assertNotNull("AuthorTeam should not be null", ref.getAuthorTeam());\r
assertEquals("Source author should be 'Meyer et. al.'", "Meyer et. al.",ref.getAuthorTeam().getTitleCache());\r
assertEquals("Publication title should be 'My first book'", "My first book", ref.getTitle());\r
assertEquals("Publication year should be '1987'", "1987", ref.getYear());\r
- TaxonNameBase nameUsedInSource = source.getNameUsedInSource();\r
+ TaxonNameBase<?,?> nameUsedInSource = source.getNameUsedInSource();\r
assertNotNull("Name used in source should not be null", nameUsedInSource);\r
assertEquals("Name used in source title should be ", "Abies", nameUsedInSource.getTitleCache());\r
\r
import java.io.InputStreamReader;\r
import java.net.URI;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.cdm.model.agent.Person;\r
\r
package eu.etaxonomy.cdm.io.sdd.in;\r
\r
-import static org.junit.Assert.assertEquals;\r
import static org.junit.Assert.assertNotNull;\r
\r
import java.net.URI;\r
import java.net.URL;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
-\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
-import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;\r
import eu.etaxonomy.cdm.io.sdd.ikeyplus.IkeyPlusImport;\r
import eu.etaxonomy.cdm.model.description.PolytomousKey;\r
@Test\r
@DataSet(/*loadStrategy=CleanSweepInsertLoadStrategy.class, */value="../../BlankDataSet.xml")\r
public void testDoInvoke() {\r
- UUID newKeyUuid = null;\r
+ commitAndStartNewTransaction(null);\r
+ \r
+ UUID newKeyUuid = null;\r
try {\r
ikeyPlusImport.getKey(sddUri, null);\r
newKeyUuid = ikeyPlusImport.getCdmKey().getUuid();\r
import java.net.URL;\r
import java.sql.SQLException;\r
\r
-import junit.framework.Assert;\r
-\r
import org.apache.log4j.Level;\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Ignore;\r
import org.junit.Test;\r
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
import eu.etaxonomy.cdm.io.common.IExportConfigurator;\r
-import eu.etaxonomy.cdm.io.common.Source;\r
import eu.etaxonomy.cdm.io.sdd.out.SDDCdmExporter;\r
import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;\r
import eu.etaxonomy.cdm.io.sdd.out.SDDExportState;\r
\r
package eu.etaxonomy.cdm.io.sdd.in;\r
\r
-import static org.junit.Assert.assertEquals;\r
-import static org.junit.Assert.assertNotNull;\r
+import static org.junit.Assert.*;\r
\r
import java.net.URI;\r
import java.net.URISyntaxException;\r
import java.net.URL;\r
\r
-import junit.framework.Assert;\r
-\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
URL url = this.getClass().getResource("/eu/etaxonomy/cdm/io/sdd/SDD-Test-Simple.xml");\r
URI uri = url.toURI();\r
// URI uri = URI.create("file:///C:/localCopy/Data/xper/Cichorieae-DA2.sdd.xml");\r
- Assert.assertNotNull(url);\r
+ assertNotNull(url);\r
configurator = SDDImportConfigurator.NewInstance(uri, null);\r
}\r
\r
class="org.springframework.beans.factory.config.PropertiesFactoryBean">\r
<property name="properties">\r
<props>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
- <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
+ <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.impl.FSDirectoryProvider</prop>\r
<prop key="hibernate.search.default.indexBase">./target/index</prop>\r
</props>\r
</property>\r
</bean>\r
\r
\r
- <bean id="taxonSpellingDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">\r
+<!-- <bean id="taxonSpellingDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">\r
<property name="location" value="file:./target/test-classes/eu.etaxonomy.cdm.model.taxon.TaxonBase_spelling"/>\r
<property name="create" value="true"/>\r
</bean>\r
<property name="analyzer">\r
<bean class="org.apache.lucene.analysis.SimpleAnalyzer"/>\r
</property>\r
- </bean>\r
+ </bean> -->\r
\r
<bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">\r
<property name="providers">\r
<HOMOTYPICALGROUP ID="1" UUID="8b214eb9-a6ac-58e5-af02-bbea634d2a17"/>\r
<TAXONBASE DTYPE="Taxon" ID="1" UUID="aafce7fe-0c5f-42ed-814b-4c7c2c715660" TITLECACHE="Abies sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="1" USENAMECACHE="false" EXCLUDED="false" UNPLACED="false"/>\r
<TAXONBASE DTYPE="Synonym" ID="2" UUID="fc4a995b-37a9-4984-afe6-e352c6c04d92" TITLECACHE="Pinus sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" TAXONSTATUSUNKNOWN="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="2" USENAMECACHE="false" EXCLUDED="false" UNPLACED="false"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" UUID="88fab5b3-0d9a-42c3-9915-71fc17266116" TITLECACHE="Abies" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" UUID="26287f97-f147-4451-ba9f-aac0559324b1" TITLECACHE="Pinus" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" UUID="88fab5b3-0d9a-42c3-9915-71fc17266116" TITLECACHE="Abies" GENUSORUNINOMIAL="Abies" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="774"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" UUID="26287f97-f147-4451-ba9f-aac0559324b1" TITLECACHE="Pinus" GENUSORUNINOMIAL="Pinus" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="774"/>\r
<SYNONYMRELATIONSHIP ID="1" UUID="aa5868e5-84eb-4a3b-a9e2-2920ce14de2e" DOUBTFUL="false" PARTIAL="false" PROPARTE="false" RELATEDFROM_ID="2" RELATEDTO_ID="1" TYPE_ID="870"/>\r
\r
</dataset>
\ No newline at end of file
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-annotations</artifactId>
- </dependency>
+<!-- Part of hibernate-core since 3.6 -->
+<!-- <dependency> -->
+<!-- <groupId>org.hibernate</groupId> -->
+<!-- <artifactId>hibernate-annotations</artifactId> -->
+<!-- </dependency> -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-search</artifactId>
+ <artifactId>hibernate-search-engine</artifactId>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<dependency>
+ <groupId>org.jadira.usertype</groupId>
+ <artifactId>usertype.jodatime</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+<!-- <dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time-hibernate</artifactId>
<exclusions>
<groupId>hibernate</groupId>
</exclusion>
</exclusions>
- </dependency>
+ </dependency> -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
\r
package eu.etaxonomy.cdm.hibernate;\r
\r
-import java.io.Serializable;\r
import java.sql.PreparedStatement;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
import java.sql.Types;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.Hibernate;\r
import org.hibernate.HibernateException;\r
+import org.hibernate.engine.spi.SessionImplementor;\r
+import org.hibernate.type.StandardBasicTypes;\r
import org.hibernate.usertype.UserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractSingleColumnUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.ColumnMapper;\r
import org.joda.time.DateTimeFieldType;\r
import org.joda.time.Partial;\r
\r
* Only year, month and day is stored\r
* @author a.mueller\r
* @created 11.11.2008\r
- * @version 1.0\r
+ * @version 2.0\r
*/\r
-public class PartialUserType implements UserType {\r
+public class PartialUserType extends AbstractUserType implements UserType /* extends AbstractSingleColumnUserType<Partial, String, ColumnMapper<Partial,String>> implements UserType */ {\r
+ private static final long serialVersionUID = -5323104403077597869L;\r
+\r
private static final Logger logger = Logger.getLogger(PartialUserType.class);\r
\r
+ //not required\r
public final static PartialUserType INSTANCE = new PartialUserType();\r
\r
- private static final int[] SQL_TYPES = new int[]\r
- {\r
+ private static final int[] SQL_TYPES = new int[]{\r
Types.VARCHAR,\r
};\r
\r
- public int[] sqlTypes()\r
- {\r
- return SQL_TYPES;\r
- }\r
-\r
- public Class returnedClass()\r
- {\r
- return Partial.class;\r
- }\r
-\r
- public boolean equals(Object x, Object y) throws HibernateException\r
- {\r
- if (x == y)\r
- {\r
- return true;\r
- }\r
- if (x == null || y == null)\r
- {\r
- return false;\r
- }\r
- Partial dtx = (Partial) x;\r
- Partial dty = (Partial) y;\r
-\r
- return dtx.equals(dty);\r
- }\r
-\r
- public int hashCode(Object object) throws HibernateException\r
- {\r
- return object.hashCode();\r
- }\r
-\r
- public Object nullSafeGet(ResultSet resultSet, String[] strings, Object object) throws HibernateException, SQLException\r
- {\r
- return nullSafeGet(resultSet, strings[0]);\r
\r
- }\r
-\r
- public Object nullSafeGet(ResultSet resultSet, String string) throws SQLException\r
- {\r
- String partial = (String)Hibernate.STRING.nullSafeGet(resultSet, string);\r
+ @Override\r
+ public Partial nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) \r
+ throws HibernateException, SQLException {\r
+ String partial = (String)StandardBasicTypes.STRING.nullSafeGet(rs, names, session, owner);\r
Partial result = new Partial(); \r
- if (partial == null || partial.length() != 8)\r
- {\r
+ if (partial == null || partial.length() != 8) {\r
return null;\r
}\r
Integer year = Integer.valueOf(partial.substring(0,4));\r
return result;\r
}\r
\r
-\r
- public void nullSafeSet(PreparedStatement preparedStatement, Object value, int index) throws HibernateException, SQLException\r
- {\r
- if (value == null)\r
- {\r
- Hibernate.STRING.nullSafeSet(preparedStatement, null, index);\r
- }\r
- else\r
- {\r
+ @Override\r
+ public void nullSafeSet(PreparedStatement preparedStatement, Object value, int index,\r
+ SessionImplementor session) throws HibernateException, SQLException {\r
+ if (value == null){\r
+ StandardBasicTypes.STRING.nullSafeSet(preparedStatement, null, index, session);\r
+ }else {\r
Partial p = ((Partial) value);\r
- Hibernate.STRING.nullSafeSet(preparedStatement, partialToString(p), index);\r
+ StandardBasicTypes.STRING.nullSafeSet(preparedStatement, partialToString(p), index, session);\r
}\r
}\r
\r
}\r
}\r
\r
- public Object deepCopy(Object value) throws HibernateException\r
- {\r
- if (value == null)\r
- {\r
+ public Object deepCopy(Object value) throws HibernateException {\r
+ if (value == null) {\r
return null;\r
}\r
\r
return new Partial((Partial)value);\r
}\r
\r
- public boolean isMutable()\r
- {\r
- return false;\r
- }\r
-\r
- public Serializable disassemble(Object value) throws HibernateException\r
- {\r
- return (Serializable) value;\r
- }\r
-\r
- public Object assemble(Serializable cached, Object value) throws HibernateException\r
- {\r
- return cached;\r
- }\r
-\r
- public Object replace(Object original, Object target, Object owner) throws HibernateException\r
- {\r
- return original;\r
- }\r
+ @Override\r
+ public int[] sqlTypes() {\r
+ // TODO Auto-generated method stub\r
+ return SQL_TYPES;\r
+ }\r
\r
+ @Override\r
+ public Class returnedClass() {\r
+ // TODO Auto-generated method stub\r
+ return null;\r
+ } \r
\r
}\r
\r
package eu.etaxonomy.cdm.hibernate;\r
\r
\r
-import java.io.Serializable;\r
import java.net.URI;\r
import java.net.URISyntaxException;\r
import java.sql.PreparedStatement;\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
import java.sql.Types;\r
+import java.util.UUID;\r
\r
+import org.hibernate.HibernateException;\r
import org.hibernate.TypeMismatchException;\r
+import org.hibernate.engine.spi.SessionImplementor;\r
+import org.hibernate.type.StandardBasicTypes;\r
import org.hibernate.usertype.UserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractSingleColumnUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.ColumnMapper;\r
\r
/**\r
* This class maps java.net.URI to varchar(255)\r
* @author a.mueller\r
*\r
*/\r
-public class URIUserType implements UserType, Serializable {\r
+public class URIUserType extends AbstractUserType implements UserType {\r
private static final long serialVersionUID = -5825017496962569105L;\r
\r
/**\r
*/\r
private static final int[] SQL_TYPES = {Types.VARCHAR};\r
\r
- /**\r
- * @return returns SQL type for the column to which the UserType is mapped\r
- */\r
- public int[] sqlTypes() {\r
- return SQL_TYPES;\r
- }\r
+ /* (non-Javadoc)\r
+ * @see org.jadira.usertype.dateandtime.shared.spi.AbstractSingleColumnUserType#returnedClass()\r
+ */\r
+ @Override\r
+ public Class returnedClass() {\r
+ return UUID.class;\r
+ }\r
\r
- /**\r
- * @return returns the class of the instance being managed by the UserType\r
- */\r
- public Class returnedClass() {\r
- return URI.class;\r
- }\r
+ @Override\r
+ public int[] sqlTypes() {\r
+ return SQL_TYPES;\r
+ }\r
\r
- /**\r
- * @param x first object to compare\r
- * @param y second object to compare\r
- * @return comparison result\r
- * @throws HibernateException\r
- */\r
- public boolean equals(Object x, Object y) {\r
- if (x == y) {\r
- return true;\r
- } else if (x == null || y == null) {\r
- return false;\r
- } else {\r
- return x.equals(y);\r
- }\r
- }\r
\r
- /**\r
- * @param resultSet resultset object\r
- * @param names names of the columns in the resultset\r
- * @param owner parent object on which the value is to be set\r
- * @return returns URI object\r
- * @throws SQLException throws exception when error occurs in accessing the resultSet\r
- */\r
- public Object nullSafeGet(ResultSet resultSet, String[] names, Object owner)\r
- throws SQLException {\r
- String strURI = resultSet.getString(names[0]);\r
- URI uri = null;\r
- if (null != strURI) {\r
+ @Override\r
+ public URI nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) \r
+ throws HibernateException, SQLException {\r
+ String val = (String) StandardBasicTypes.STRING.nullSafeGet(rs, names, session, owner);\r
+ \r
+ if(val == null) {\r
+ return null;\r
+ } else {\r
try {\r
- uri = new URI(strURI);\r
- } catch (URISyntaxException e) {\r
- throw new TypeMismatchException(e);\r
- }\r
- }\r
- return uri;\r
+ return new URI(val);\r
+ } catch (URISyntaxException e) {\r
+ throw new TypeMismatchException(e);\r
+ }\r
+ }\r
}\r
\r
- /**\r
- * @param statement prepared statement object\r
- * @param value value being set in the statement\r
- * @param index location of the value in the statement\r
- * @throws SQLException throws exception when error occurs in accessing the statement\r
- */\r
- public void nullSafeSet(PreparedStatement statement, Object value, int index)\r
- throws SQLException {\r
- if (value == null) {\r
- statement.setString(index, null);\r
- } else {\r
- URI uri = (URI) value;\r
- statement.setString(index, uri.toString());\r
- }\r
+ \r
+\r
+ @Override\r
+ public void nullSafeSet(PreparedStatement statement, Object value, int index, SessionImplementor session) \r
+ throws HibernateException, SQLException {\r
+\r
+ if (value == null) { \r
+// statement.setString(index, null); old version\r
+ StandardBasicTypes.STRING.nullSafeSet(statement, value, index, session);\r
+ } else {\r
+ URI uri = (URI) value;\r
+// statement.setString(index, uri.toString()); //old version\r
+ StandardBasicTypes.STRING.nullSafeSet(statement, uri.toString(), index, session);\r
+ }\r
+ \r
}\r
\r
/**\r
}\r
}\r
\r
- /**\r
- * @return returns false\r
- */\r
- public boolean isMutable() {\r
- return false;\r
- }\r
-\r
- /**\r
- * @param arg0 object to be assembled\r
- * @param arg1 object to be assembled\r
- * @return returns assembled object\r
- */\r
- public Object assemble(Serializable arg0, Object arg1) {\r
- return (Serializable) deepCopy(arg0);\r
- }\r
-\r
- /**\r
- * @param arg0 object to be disassembled\r
- * @return returns disassembled object\r
- */\r
- public Serializable disassemble(Object arg0) {\r
- return (Serializable) deepCopy(arg0);\r
- }\r
\r
- /**\r
- * @param arg0 object whose hashcode is to be determined\r
- * @return returns 0\r
- */\r
- public int hashCode(Object arg0) {\r
- return 0;\r
- }\r
\r
- /**\r
- * @param arg0 argument 0\r
- * @param arg1 argument 1\r
- * @param arg2 argument 2\r
- * @return returns arg0\r
- */\r
- public Object replace(Object arg0, Object arg1, Object arg2) {\r
- return arg0;\r
- }\r
}\r
import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.Hibernate;\r
import org.hibernate.HibernateException;\r
+import org.hibernate.engine.spi.SessionImplementor;\r
+import org.hibernate.type.StandardBasicTypes;\r
import org.hibernate.usertype.UserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractSingleColumnUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.ColumnMapper;\r
\r
/**\r
* @author a.mueller\r
* @created 22.07.2008\r
- * @version 1.0\r
+ * @version 2.0\r
*/\r
-public class UUIDUserType implements UserType {\r
+public class UUIDUserType extends AbstractUserType implements UserType {\r
+ static final long serialVersionUID = -3959049831344758708L;\r
+\r
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(UUIDUserType.class);\r
\r
- private static final int[] TYPES = { Types.VARCHAR };\r
-\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#assemble(java.io.Serializable, java.lang.Object)\r
- */\r
- public Object assemble(Serializable cached, Object owner) throws HibernateException {\r
- try {\r
- if(cached == null) {\r
- return null;\r
- } else {\r
- return UUID.fromString(cached.toString());\r
- }\r
- } catch (IllegalArgumentException e) {\r
- throw new HibernateException(e);\r
- }\r
- }\r
+ private static final int[] SQL_TYPES = { Types.VARCHAR };\r
\r
/* (non-Javadoc)\r
* @see org.hibernate.usertype.UserType#deepCopy(java.lang.Object)\r
}\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#equals(java.lang.Object, java.lang.Object)\r
- */\r
- public boolean equals(Object x, Object y) throws HibernateException {\r
- return (x == y) || (x != null && y != null && (x.equals(y)));\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#hashCode(java.lang.Object)\r
- */\r
- public int hashCode(Object x) throws HibernateException {\r
- return x.hashCode();\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#isMutable()\r
- */\r
- public boolean isMutable() {\r
- return false;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#nullSafeGet(java.sql.ResultSet, java.lang.String[], java.lang.Object)\r
- */\r
- public Object nullSafeGet(ResultSet resultSet, String[] names, Object o)\r
+ @Override\r
+ public UUID nullSafeGet(ResultSet rs, String[] names, SessionImplementor session, Object owner) \r
throws HibernateException, SQLException {\r
- String val = (String) Hibernate.STRING.nullSafeGet(resultSet, names[0]);\r
+ String val = (String) StandardBasicTypes.STRING.nullSafeGet(rs, names, session, owner);\r
\r
if(val == null) {\r
return null;\r
}\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#nullSafeSet(java.sql.PreparedStatement, java.lang.Object, int)\r
- */\r
- public void nullSafeSet(PreparedStatement preparedStatement, Object o, int index)\r
+ @Override\r
+ public void nullSafeSet(PreparedStatement statement, Object value, int index, SessionImplementor session) \r
throws HibernateException, SQLException {\r
- if (null == o) { \r
- preparedStatement.setNull(index, Types.VARCHAR); \r
+ if (value == null) { \r
+// statement.setNull(index, Types.VARCHAR); old version\r
+ StandardBasicTypes.STRING.nullSafeSet(statement, value, index, session);\r
} else { \r
- UUID uuid = (UUID)o;\r
- preparedStatement.setString(index, uuid.toString()); \r
+ UUID uuid = (UUID)value;\r
+// statement.setString(index, uuid.toString()); //old version\r
+ StandardBasicTypes.STRING.nullSafeSet(statement, uuid.toString(), index, session);\r
}\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#replace(java.lang.Object, java.lang.Object, java.lang.Object)\r
- */\r
- public Object replace(Object original, Object target, Object owner)\r
- throws HibernateException {\r
- return original;\r
- }\r
\r
/* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#returnedClass()\r
+ * @see org.jadira.usertype.dateandtime.shared.spi.AbstractSingleColumnUserType#returnedClass()\r
*/\r
+ @Override\r
public Class returnedClass() {\r
return UUID.class;\r
}\r
\r
- /* (non-Javadoc)\r
- * @see org.hibernate.usertype.UserType#sqlTypes()\r
- */\r
+ @Override\r
public int[] sqlTypes() {\r
- return TYPES;\r
+ return SQL_TYPES;\r
}\r
+\r
+ \r
+\r
+\r
+\r
}\r
import javax.wsdl.xml.WSDLReader;\r
import javax.wsdl.xml.WSDLWriter;\r
\r
-import org.apache.commons.logging.Log;\r
-import org.apache.commons.logging.LogFactory;\r
-import org.hibernate.Hibernate;\r
import org.hibernate.HibernateException;\r
+import org.hibernate.engine.spi.SessionImplementor;\r
+import org.hibernate.type.StandardBasicTypes;\r
import org.hibernate.usertype.UserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractSingleColumnUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.AbstractUserType;\r
+import org.jadira.usertype.dateandtime.shared.spi.ColumnMapper;\r
\r
import com.ibm.wsdl.factory.WSDLFactoryImpl;\r
\r
* @see org.hibernate.usertype.UserType UserType\r
* @see javax.wsdl.Definition Definition\r
*/\r
-public class WSDLDefinitionUserType implements UserType {\r
- private static Log log = LogFactory.getLog(WSDLDefinitionUserType.class);\r
- private static final int[] TYPES = { Types.CLOB };\r
+public class WSDLDefinitionUserType extends AbstractUserType implements UserType {\r
+ \r
+ private static final int[] SQL_TYPES = { Types.CLOB };\r
\r
public Object deepCopy(Object o) throws HibernateException {\r
\r
}\r
}\r
\r
+ \r
+ //not tested if this works with jadira.usertype\r
+ @Override\r
public Object assemble(Serializable cached, Object owner) throws HibernateException {\r
try {\r
WSDLFactory wsdlFactory = WSDLFactoryImpl.newInstance();\r
}\r
}\r
\r
+ //not tested if this works with jadira.usertype\r
+ @Override\r
public Serializable disassemble(Object value) throws HibernateException {\r
try {\r
WSDLFactory wsdlFactory = WSDLFactoryImpl.newInstance();\r
}\r
}\r
\r
- public boolean equals(Object x, Object y) throws HibernateException {\r
- return (x == y) || (x != null && y != null && (x.equals(y)));\r
- }\r
-\r
- public int hashCode(Object x) throws HibernateException {\r
- return x.hashCode();\r
- }\r
\r
- public boolean isMutable() {\r
- return true;\r
- }\r
\r
- public Object nullSafeGet(ResultSet resultSet, String[] names, Object o)\r
+ @Override\r
+ public Definition nullSafeGet(ResultSet rs, String[]names, SessionImplementor session, Object o)\r
throws HibernateException, SQLException {\r
- Clob val = (Clob) resultSet.getClob(names[0]);\r
+ Clob val = (Clob)StandardBasicTypes.CLOB.nullSafeGet(rs, names, session, o);\r
+// Clob val = (Clob) rs.getClob(names[0]);\r
if(val == null) {\r
return null;\r
} else {\r
}\r
}\r
\r
- public void nullSafeSet(PreparedStatement preparedStatement, Object o, int index)\r
+ \r
+\r
+ @Override\r
+ public void nullSafeSet(PreparedStatement statement, Object value, int index, SessionImplementor session) \r
throws HibernateException, SQLException {\r
- if (null == o) { \r
- preparedStatement.setNull(index, Types.CLOB); \r
+ if (value == null) { \r
+// statement.setNull(index, Types.CLOB); //old version\r
+ StandardBasicTypes.CLOB.nullSafeSet(statement, value, index, session);\r
} else { \r
try {\r
- Definition definition = (Definition) o;\r
+ Definition definition = (Definition) value;\r
WSDLFactory wsdlFactory = WSDLFactoryImpl.newInstance();\r
StringWriter stringWriter = new StringWriter();\r
WSDLWriter writer = wsdlFactory.newWSDLWriter();\r
writer.writeWSDL(definition, stringWriter);\r
- preparedStatement.setClob(index, Hibernate.createClob(stringWriter.getBuffer().toString()));\r
+// statement.setClob(index, Hibernate.createClob(stringWriter.getBuffer().toString())); //old version\r
+ StandardBasicTypes.CLOB.nullSafeSet(statement, stringWriter.getBuffer().toString(), index, session);\r
} catch (WSDLException e) {\r
throw new HibernateException(e);\r
}\r
}\r
}\r
\r
- public Object replace(Object original, Object target, Object owner)\r
- throws HibernateException {\r
- return original;\r
- }\r
-\r
+ \r
public Class returnedClass() {\r
return Definition.class;\r
}\r
\r
+\r
+ @Override\r
public int[] sqlTypes() {\r
- return TYPES;\r
+ return SQL_TYPES;\r
}\r
\r
}\r
*/
package eu.etaxonomy.cdm.hibernate.search;
+import org.apache.log4j.Logger;
+import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.Field.TermVector;
*
*/
public class IdFieldOptions implements LuceneOptions {
-
+ private static final Logger logger = Logger.getLogger(IdFieldOptions.class);
+
@Override
public Store getStore() {
}
@Override
- public Float getBoost() {
+ public float getBoost() {
return 1.0f;
}
+ @Override
+ public void addFieldToDocument(String arg0, String arg1, Document arg2) {
+ logger.warn("not yet implemented");
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void addNumericFieldToDocument(String arg0, Object arg1, Document arg2) {
+ logger.warn("not yet implemented");
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public String indexNullAs() {
+ logger.warn("not yet implemented");
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean isCompressed() {
+ logger.warn("not yet implemented");
+ // TODO Auto-generated method stub
+ return false;
+ }
+
}
*/
package eu.etaxonomy.cdm.hibernate.search;
+import org.apache.log4j.Logger;
+import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.Field.TermVector;
*
*/
public class SortFieldOptions implements LuceneOptions {
-
-
+ private static final Logger logger = Logger.getLogger(SortFieldOptions.class);
+
@Override
public Store getStore() {
return Store.YES;
}
@Override
- public Float getBoost() {
+ public float getBoost() {
return 1.0f;
}
+ @Override
+ public void addFieldToDocument(String arg0, String arg1, Document arg2) {
+ logger.warn("not yet implemented");
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void addNumericFieldToDocument(String arg0, Object arg1, Document arg2) {
+ logger.warn("not yet implemented");
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public String indexNullAs() {
+ // TODO Auto-generated method stub
+ logger.warn("not yet implemented");
+ return null;
+ }
+
+ @Override
+ public boolean isCompressed() {
+ // TODO Auto-generated method stub
+ logger.warn("not yet implemented");
+ return false;
+ }
+
}
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.Transient;
-import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
@Embedded
@Merge(MergeMode.MERGE)
@Match(MatchMode.IGNORE)
- @NotNull
private Contact contact;
/**
import java.util.List;
import java.util.Set;
+import javax.persistence.ElementCollection;
import javax.persistence.Embeddable;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlSchemaType;
import javax.xml.bind.annotation.XmlType;
+import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
-import org.hibernate.annotations.CollectionOfElements;
import org.hibernate.envers.Audited;
-import eu.etaxonomy.cdm.common.CdmUtils;
import eu.etaxonomy.cdm.model.location.Point;
import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;
import eu.etaxonomy.cdm.strategy.merge.MergeException;
@Audited
public class Contact implements Serializable, Cloneable {
private static final long serialVersionUID = -1851305307069277625L;
- @SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(Contact.class);
WaterbodyOrCountry country, String pobox, String region,
String email, String faxNumber, String phoneNumber, String url, Point location) {
Contact result = new Contact();
- if (country != null || CdmUtils.isNotEmpty(locality) || CdmUtils.isNotEmpty(pobox) || CdmUtils.isNotEmpty(postcode) ||
- CdmUtils.isNotEmpty(region) || CdmUtils.isNotEmpty(street) ){
+ if (country != null || StringUtils.isNotBlank(locality) || StringUtils.isNotBlank(pobox) || StringUtils.isNotBlank(postcode) ||
+ StringUtils.isNotBlank(region) || StringUtils.isNotBlank(street) ){
Address newAddress = Address.NewInstance(country, locality, pobox, postcode, region, street, location);
result.addAddress(newAddress);
}
@XmlElementWrapper(name = "EmailAddresses", nillable = true)
@XmlElement(name = "EmailAddress")
- @CollectionOfElements(fetch = FetchType.LAZY)
+ @ElementCollection(fetch = FetchType.LAZY)
private List<String> emailAddresses;
@XmlElementWrapper(name = "URLs", nillable = true)
@XmlElement(name = "URL")
@XmlSchemaType(name = "anyURI")
- @CollectionOfElements(fetch = FetchType.LAZY)
+ @ElementCollection(fetch = FetchType.LAZY)
private List<String> urls;
@XmlElementWrapper(name = "PhoneNumbers", nillable = true)
@XmlElement(name = "PhoneNumber")
- @CollectionOfElements(fetch = FetchType.LAZY)
+ @ElementCollection(fetch = FetchType.LAZY)
private List<String> phoneNumbers;
@XmlElementWrapper(name = "FaxNumbers", nillable = true)
@XmlElement(name = "FaxNumber")
- @CollectionOfElements(fetch = FetchType.LAZY)
+ @ElementCollection(fetch = FetchType.LAZY)
private List<String> faxNumbers;
@XmlElementWrapper(name = "Addresses", nillable = true)
public static final Logger logger = Logger.getLogger(Institution.class);
@XmlElement(name = "Code")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Size(max = 255)
private String code;
@XmlElement(name = "Name")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Size(max = 255)
private String name;
import java.util.HashSet;
import java.util.Set;
+import javassist.compiler.ast.Keyword;
+
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import org.springframework.beans.factory.annotation.Configurable;
import eu.etaxonomy.cdm.model.common.TimePeriod;
-import eu.etaxonomy.cdm.model.common.User;
import eu.etaxonomy.cdm.strategy.cache.agent.PersonDefaultCacheStrategy;
import eu.etaxonomy.cdm.strategy.match.Match;
import eu.etaxonomy.cdm.strategy.match.MatchMode;
public static final Logger logger = Logger.getLogger(Person.class);
@XmlElement(name = "Prefix")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES ) //TODO H42
@NullOrNotEmpty
@Size(max = 255)
private String prefix;
@XmlElement(name = "FirstName")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Size(max = 255)
private String firstname;
@XmlElement(name = "LastName")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Size(max = 255)
private String lastname;
@XmlElement(name = "Suffix")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Size(max = 255)
private String suffix;
* @see #getLifespan()
*/
public void setLifespan(TimePeriod lifespan){
+ if (lifespan == null){
+ this.lifespan = TimePeriod.NewInstance(new Partial(), new Partial());
+ }
this.lifespan = lifespan;
}
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
* <li> AgentNames (partially) according to the TCS
* <li> MicroAgent (partially) according to the ABCD schema
* </ul>
- *
+ *
* @author m.doering
* @version 1.0
* @created 08-Nov-2007 13:06:58
public class Team extends TeamOrPersonBase<Team> {
private static final long serialVersionUID = 97640416905934622L;
public static final Logger logger = Logger.getLogger(Team.class);
-
+
@XmlElement(name = "ProtectedNomenclaturalTitleCache")
private boolean protectedNomenclaturalTitleCache = false;
@Cascade(CascadeType.SAVE_UPDATE)
@Match(MatchMode.MATCH)
private List<Person> teamMembers;
-
-
- /**
+
+
+ /**
* Creates a new team instance without any concrete {@link Person members}.
*/
static public Team NewInstance(){
return new Team();
}
-
- /**
+
+ /**
* Creates a new team instance with a bibliographic and nomenclatural title
* but without any {@link Person members}. The caches are set to protected.
*/
result.setNomenclaturalTitle(nomTitle, true);
return result;
}
-
- /**
+
+ /**
* Class constructor (including the cache strategy defined in
* {@link eu.etaxonomy.cdm.strategy.cache.agent.TeamDefaultCacheStrategy TeamDefaultCacheStrategy}).
*/
*/
private void addListenerForTeamMember(Person member) {
PropertyChangeListener listener = new PropertyChangeListener() {
- public void propertyChange(PropertyChangeEvent e) {
- if (! isProtectedTitleCache()){
- titleCache = titleCache;
- }
- if (! isProtectedNomenclaturalTitleCache()){
- nomenclaturalTitle = nomenclaturalTitle;
- }
+ @Override
+ public void propertyChange(PropertyChangeEvent e) {
+
+// ---- code with no effect below -----
+// if (! isProtectedTitleCache()){
+// titleCache = titleCache;
+// }
+// if (! isProtectedNomenclaturalTitleCache()){
+// nomenclaturalTitle = nomenclaturalTitle;
+// }
}
};
member.addPropertyChangeListener(listener);
}
- /**
- * Returns the list of {@link Person members} belonging to <i>this</i> team.
- * A person may be a member of several distinct teams.
+ /**
+ * Returns the list of {@link Person members} belonging to <i>this</i> team.
+ * A person may be a member of several distinct teams.
*/
public List<Person> getTeamMembers(){
if(teamMembers == null) {
}
return this.teamMembers;
}
-
+
protected void setTeamMembers(List<Person> teamMembers) {
this.teamMembers = teamMembers;
addListenersToMembers();
}
-
- /**
- * Adds a new {@link Person person} to <i>this</i> team at the end of the members' list.
+
+ /**
+ * Adds a new {@link Person person} to <i>this</i> team at the end of the members' list.
*
* @param person the person who should be added to the other team members
* @see #getTeamMembers()
addListenerForTeamMember(person);
}
}
-
- /**
+
+ /**
* Adds a new {@link Person person} to <i>this</i> team
* at the given index place of the members' list. If the person is already
- * a member of the list he will be moved to the given index place.
+ * a member of the list he will be moved to the given index place.
* The index must be an integer (>=0). If the index is larger than
* the present number of members the person will be added at the end of the list.
*
firePropertyChange("teamMember", null, person);
}
}
-
- /**
+
+ /**
* Removes one person from the list of members of <i>this</i> team.
*
* @param person the person who should be deleted from <i>this</i> team
if (wasMember){
firePropertyChange("teamMember", person, null);
}
-
+
}
-
+
/**
* Generates or returns the {@link TeamOrPersonBase#getnomenclaturalTitle() nomenclatural identification} string for <i>this</i> team.
* This method overrides {@link TeamOrPersonBase#getNomenclaturalTitle() getNomenclaturalTitle}.
* {@link eu.etaxonomy.cdm.strategy.cache.agent.TeamDefaultCacheStrategy TeamDefaultCacheStrategy}.
* The result might be kept as nomenclatural abbreviation
* by using the {@link #setNomenclaturalTitle(String) setNomenclaturalTitle} method.
- *
+ *
* @return a string which identifies <i>this</i> team for nomenclature
*/
@Override
//as long as team members to not inform the team about changes the cache must be created new each time
nomenclaturalTitle = cacheStrategy.getNomenclaturalTitle(this);
}
- return nomenclaturalTitle;
+ return nomenclaturalTitle;
}
-
+
/**
* Assigns a {@link TeamOrPersonBase#nomenclaturalTitle nomenclatural identification} string to <i>this</i> team
* and protects it from overwriting.
* This method overrides {@link TeamOrPersonBase#setNomenclaturalTitle(String) setNomenclaturalTitle}.
- *
+ *
* @see #getNomenclaturalTitle()
* @see #setNomenclaturalTitle(String, boolean)
*/
/**
* Assigns a {@link TeamOrPersonBase#nomenclaturalTitle nomenclatural identification} string to <i>this</i> team
* and a protection flag status to this string.
- *
+ *
* @see #getNomenclaturalTitle()
*/
public void setNomenclaturalTitle(String nomenclaturalTitle, boolean protectedNomenclaturalTitleCache) {
this.nomenclaturalTitle = nomenclaturalTitle;
this.protectedNomenclaturalTitleCache = protectedNomenclaturalTitleCache;
}
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.model.agent.TeamOrPersonBase#getTitleCache()
*/
isGeneratingTitleCache = true;
String result = "";
if (isProtectedTitleCache()){
- result = this.titleCache;
+ result = this.titleCache;
}else{
result = generateTitle();
result = replaceEmptyTitleByNomTitle(result);
boolean protectedNomenclaturalTitleCache) {
this.protectedNomenclaturalTitleCache = protectedNomenclaturalTitleCache;
}
-
+
//*********************** CLONE ********************************************************/
-
- /**
+
+ /**
* Clones <i>this</i> Team. This is a shortcut that enables to create
* a new instance that differs only slightly from <i>this</i> Team.
- * The corresponding person is cloned.
- *
+ * The corresponding person is cloned.
+ *
* @see eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity#clone()
* @see java.lang.Object#clone()
*/
e.printStackTrace();
return null;
}
-
-
+
+
}
-
-
+
+
}
\ No newline at end of file
import javax.xml.bind.annotation.XmlTransient;\r
import javax.xml.bind.annotation.XmlType;\r
\r
+import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
import org.hibernate.envers.Audited;\r
import org.hibernate.search.annotations.Field;\r
import org.hibernate.search.annotations.Index;\r
import org.hibernate.search.annotations.Indexed;\r
\r
-import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.strategy.cache.agent.INomenclaturalAuthorCacheStrategy;\r
import eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty;\r
\r
public static final Logger logger = Logger.getLogger(TeamOrPersonBase.class);\r
\r
@XmlElement(name="NomenclaturalTitle")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Size(max = 255)\r
protected String nomenclaturalTitle;\r
@Transient\r
public String getNomenclaturalTitle() {\r
String result = nomenclaturalTitle;\r
- if (CdmUtils.isEmpty(nomenclaturalTitle) && (isGeneratingTitleCache == false)){\r
+ if (StringUtils.isBlank(nomenclaturalTitle) && (isGeneratingTitleCache == false)){\r
result = getTitleCache();\r
}\r
return result;\r
* @return\r
*/\r
protected String replaceEmptyTitleByNomTitle(String result) {\r
- if (CdmUtils.isEmpty(result)){\r
+ if (StringUtils.isBlank(result)){\r
result = nomenclaturalTitle;\r
}\r
- if (CdmUtils.isEmpty(result)){\r
+ if (StringUtils.isBlank(result)){\r
result = super.getTitleCache();\r
}\r
return result;\r
import org.apache.log4j.Logger;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
+import org.hibernate.envers.Audited;
import eu.etaxonomy.cdm.strategy.merge.Merge;
import eu.etaxonomy.cdm.strategy.merge.MergeMode;
"markers",
"annotations"
})
+@Audited
@MappedSuperclass
public abstract class AnnotatableEntity extends VersionableEntity implements IAnnotatableEntity {
private static final long serialVersionUID = 9151211842542443102L;
import org.apache.log4j.Logger;
import org.hibernate.annotations.NaturalId;
import org.hibernate.annotations.Type;
+import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Analyzer;
import org.hibernate.search.annotations.DocumentId;
import org.hibernate.search.annotations.Field;
@Match(MatchMode.IGNORE)
@NotNull
@Min(0)
+ @Audited
private int id;
@XmlAttribute(required = true)
@Column(length=36)
@Match(MatchMode.IGNORE)
@NotNull
- @Field(store = Store.YES, index = Index.UN_TOKENIZED)
+ @Field(store = Store.YES, index = Index.YES, analyze = Analyze.NO) //TODO H42 (was Index.UN_TOKENIZED)
@FieldBridge(impl = UuidBridge.class)
+ @Audited
protected UUID uuid;
@XmlElement (name = "Created", type= String.class)
@Type(type="dateTimeUserType")
@Basic(fetch = FetchType.LAZY)
@Match(MatchMode.IGNORE)
- @Field(index = Index.UN_TOKENIZED)
+ @Field(index = Index.YES, analyze = Analyze.NO) //TODO H42 (was Index.UN_TOKENIZED)
@FieldBridge(impl = DateTimeBridge.class)
+ @Audited
private DateTime created;
@XmlElement (name = "CreatedBy")
@XmlSchemaType(name = "IDREF")
@ManyToOne(fetch=FetchType.LAZY)
@Match(MatchMode.IGNORE)
+ @Audited
private User createdBy;
/**
private AgentBase actor;
@XmlElement(name = "Description")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
private String description;
\r
@XmlElement(name = "Name")\r
@NaturalId\r
- @Field(index = Index.UN_TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
protected String name;\r
\r
@XmlElementWrapper(name = "Members")\r
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.IndexColumn;
+import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FieldBridge;
import org.hibernate.search.annotations.Fields;
import org.hibernate.search.annotations.Index;
-import org.hibernate.search.annotations.IndexedEmbedded;
import org.hibernate.search.annotations.Store;
import org.hibernate.validator.constraints.NotEmpty;
"credits",
"sources"
})
+@Audited
@MappedSuperclass
public abstract class IdentifiableEntity<S extends IIdentifiableEntityCacheStrategy> extends AnnotatableEntity
implements IIdentifiableEntity /*, ISourceable<IdentifiableSource> */ {
@Size(max = 255)
@Fields({
@Field(store=Store.YES),
- @Field(name = "titleCache__sort", index = Index.UN_TOKENIZED, store=Store.YES)
+ @Field(name = "titleCache__sort", index = Index.YES, analyze = Analyze.NO, store=Store.YES) //TODO H42 was UN_TOKENIZED
})
@FieldBridge(impl=StripHtmlBridge.class)
protected String titleCache;
import java.util.HashMap;\r
import java.util.Map;\r
\r
+import javax.persistence.Column;\r
+import javax.persistence.ElementCollection;\r
import javax.persistence.Entity;\r
import javax.persistence.FetchType;\r
+import javax.persistence.MapKeyColumn;\r
+import javax.persistence.MapKeyJoinColumn;\r
import javax.persistence.Transient;\r
import javax.wsdl.Definition;\r
import javax.xml.bind.annotation.XmlAccessType;\r
import javax.xml.bind.annotation.XmlType;\r
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
\r
-import org.hibernate.annotations.CollectionOfElements;\r
import org.hibernate.annotations.NaturalId;\r
import org.hibernate.annotations.Type;\r
import org.hibernate.annotations.TypeDef;\r
\r
@XmlElement(name = "Namespaces")\r
@XmlJavaTypeAdapter(NamespacesAdapter.class)\r
- @CollectionOfElements(fetch = FetchType.LAZY)\r
- private Map<String,Class<? extends IIdentifiableEntity>> namespaces = new HashMap<String,Class<? extends IIdentifiableEntity>>();\r
+ @ElementCollection(fetch = FetchType.LAZY)\r
+ @MapKeyColumn(name="namespaces_mapkey") //from hibernate 3, maybe changed in future to default "namespaces_key"\r
+ @Column(name="namespaces_element") //from hibernate 3, maybe changed in future to default "namespaces"\r
+ private Map<String,Class<? extends IIdentifiableEntity>> namespaces = new HashMap<String,Class<? extends IIdentifiableEntity>>();\r
\r
/**\r
- * Hibernate requires a no-arguement constructor (this could be private, I suppose)\r
+ * Hibernate requires a no-arguement constructor\r
*/\r
private LSIDAuthority() { }\r
\r
* @return\r
*/\r
public boolean equals(Object o) {\r
- if (!(o instanceof LSIDAuthority))\r
+ if (o == this){\r
+ return true;\r
+ }\r
+ if (!(o instanceof LSIDAuthority)){\r
return false;\r
+ }\r
LSIDAuthority auth = (LSIDAuthority)o;\r
- return o.toString().equals(toString());\r
+ //is toString really good for equal?\r
+ //Waht about empty strings?\r
+ //AM\r
+ return auth.toString().equals(toString());\r
}\r
\r
/**\r
@XmlElement(name = "Text")
@XmlJavaTypeAdapter(FormattedTextAdapter.class)
@Column(length=65536)
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@FieldBridge(impl=StripHtmlBridge.class)
@Lob
protected String text;
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* 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.
*/
import org.apache.log4j.Logger;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
private static final UUID uuidEndemic = UUID.fromString("efe95ade-8a6c-4a0e-800e-437c8b50c45e");
private static final UUID uuidModifiable = UUID.fromString("c21bc83f-c8ae-4126-adee-10dfe817e96a");
private static final UUID uuidUse = UUID.fromString("2e6e42d9-e92a-41f4-899b-03c0ac64f039");
-
- protected static Map<UUID, MarkerType> termMap = null;
+ private static final UUID uuidComputed = UUID.fromString("5cc15a73-2947-44e3-9319-85dd20736e55");
+
+ protected static Map<UUID, MarkerType> termMap = null;
public static MarkerType NewInstance(String term, String label, String labelAbbrev){
return new MarkerType(term, label, labelAbbrev);
}
-
-
-
+
+
+
@XmlAttribute(name = "isTechnical")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
private boolean isTechnical=false;
-
-
+
+
/**
* Constructor
* @param term
* to be used by applications only. E.g. a FeatureTree may have a marker that defines
* the role of this FeatureTree ("for ordering") whereas a {@link eu.etaxonomy.cdm.model.taxon.Taxon taxon}
* may have a user defined marker "completed" that indicates that this taxon does not
- * need further investigation. The earlier will be flagged isTechnical=true whereas
- * the later will be flagged as isTechnical=false
+ * need further investigation. The earlier will be flagged isTechnical=true whereas
+ * the later will be flagged as isTechnical=false
* @return the isTechnical
*/
public boolean isTechnical() {
public void setTechnical(boolean isTechnical) {
this.isTechnical = isTechnical;
}
-
-//***************************** CONSTRUCTOR **************************************/
+
+//***************************** CONSTRUCTOR **************************************/
/**
* Constructor
}
//***************************** TERMS **************************************/
-
-
+
+
/* (non-Javadoc)
* @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
*/
termMap = null;
}
-
+
protected static MarkerType getTermByUuid(UUID uuid){
if (termMap == null){
DefaultTermInitializer vocabularyStore = new DefaultTermInitializer();
vocabularyStore.initialize();
}
- return (MarkerType)termMap.get(uuid);
+ return termMap.get(uuid);
}
-
+
public static final MarkerType IMPORTED(){
return getTermByUuid(uuidImported);
}
public static final MarkerType PUBLISH(){
return getTermByUuid(uuidPublish);
}
-
+
public static final MarkerType IN_BIBLIOGRAPHY(){
return getTermByUuid(uuidInBibliography);
}
public static final MarkerType ENDEMIC(){
return getTermByUuid(uuidEndemic);
}
-
+
public static final MarkerType MODIFIABLE(){
return getTermByUuid(uuidModifiable);
}
public static final MarkerType USE(){
return getTermByUuid(uuidUse);
}
-
+ public static final MarkerType COMPUTED(){
+ return getTermByUuid(uuidComputed);
+ }
+
@Override
protected void setDefaultTerms(TermVocabulary<MarkerType> termVocabulary) {
termMap = new HashMap<UUID, MarkerType>();
for (MarkerType term : termVocabulary.getTerms()){
- termMap.put(term.getUuid(), (MarkerType)term);
+ termMap.put(term.getUuid(), term);
}
}
import java.util.List;
-import org.hibernate.collection.PersistentMap;
-import org.hibernate.engine.SessionImplementor;
+import org.hibernate.collection.internal.PersistentMap;
+import org.hibernate.engine.spi.SessionImplementor;
public class PersistentMultiLanguageText extends PersistentMap implements IMultiLanguageText {
super();
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.cdm.model.common.IMultiLanguageText#add(eu.etaxonomy.cdm.model.common.LanguageString)
+ */
@Deprecated
public LanguageString add(LanguageString languageString) {
if (languageString == null){
import java.util.Map;
import org.hibernate.HibernateException;
-import org.hibernate.collection.PersistentCollection;
-import org.hibernate.engine.SessionImplementor;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.persister.collection.CollectionPersister;
import org.hibernate.usertype.UserCollectionType;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
private static final Logger logger = Logger.getLogger(RelationshipTermBase.class);
@XmlElement(name = "Symmetrical")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@Column(name="symmetrical") //to be compatible with PostGreSQL
private boolean symmetric;
@XmlElement(name = "Transitive")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
private boolean transitive;
@XmlElementWrapper(name = "InverseRepresentations")
private static final Logger logger = Logger.getLogger(Representation.class);
@XmlElement(name = "Label")
- @Field(index=Index.TOKENIZED, store=Store.YES)
+ @Field(index=Index.YES, store=Store.YES) //TODO H42
private String label;
@XmlElement(name = "AbbreviatedLabel")
- @Field(index=Index.TOKENIZED, store=Store.YES)
+ @Field(index=Index.YES, store=Store.YES) //TODO H42
private String abbreviatedLabel;
/**
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Type;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
-import org.hibernate.search.annotations.IndexedEmbedded;
import org.hibernate.validator.constraints.Length;
import eu.etaxonomy.cdm.model.description.FeatureTree;
import eu.etaxonomy.cdm.model.description.TextData;
+import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
import eu.etaxonomy.cdm.strategy.cache.common.TermDefaultCacheStrategy;
import eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty;
FeatureTree.class
})
@MappedSuperclass
-public abstract class TermBase extends IdentifiableEntity{
+public abstract class TermBase extends IdentifiableEntity<IIdentifiableEntityCacheStrategy >{
private static final long serialVersionUID = 1471561531632115822L;
@SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(TermBase.class);
@XmlElement(name = "URI")
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)
- @NullOrNotEmpty
- @Length(max = 255)
+ @Field(index=org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@Type(type="uriUserType")
private URI uri;
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Type;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.IndexedEmbedded;
import org.hibernate.validator.constraints.Length;
// Software can go and grap these terms incl labels and description.
// UUID needed? Further vocs can be setup through our own ontology.
@XmlElement(name = "TermSourceURI")
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)
- @Length(max = 255)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@Type(type="uriUserType")
private URI termSourceUri;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import org.apache.commons.lang.time.DateUtils;
import org.apache.log4j.Logger;
import org.hibernate.annotations.Type;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FieldBridge;
import org.joda.time.DateTime;
@XmlElement(name = "Start")
@XmlJavaTypeAdapter(value = PartialAdapter.class)
@Type(type="partialUserType")
- @Field(index = org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Field(index = org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@FieldBridge(impl = PartialBridge.class)
private Partial start;
@XmlElement(name = "End")
@XmlJavaTypeAdapter(value = PartialAdapter.class)
@Type(type="partialUserType")
- @Field(index = org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Field(index = org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@FieldBridge(impl = PartialBridge.class)
private Partial end;
import org.hibernate.envers.NotAudited;\r
\r
\r
+import org.hibernate.search.annotations.Analyze;\r
import org.hibernate.search.annotations.Field;\r
import org.hibernate.search.annotations.Index;\r
import org.hibernate.search.annotations.Indexed;\r
\r
@XmlElement(name = "Username")\r
@NaturalId\r
- @Field(index = Index.UN_TOKENIZED)\r
+ @Field(index = Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED\r
protected String username;\r
\r
/**\r
Class<T> type;
UUID uuid;
String titleCache;
+ boolean isOrphaned;
public UuidAndTitleCache(Class<T> type, UUID uuid, String titleCache) {
this(uuid, titleCache);
this.type = type;
+ this.isOrphaned = false;
+ }
+
+ public UuidAndTitleCache(Class<T> type, UUID uuid, String titleCache, Boolean isOrphaned) {
+ this(type, uuid, titleCache);
+ this.isOrphaned = isOrphaned;
}
/**
return type;
}
+ public boolean getIsOrphaned() {
+ return this.isOrphaned;
+ }
+
}
import org.apache.log4j.Logger;
import org.hibernate.annotations.Type;
+import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.FieldBridge;
import org.joda.time.DateTime;
"updatedBy"
})
@XmlJavaTypeAdapter(value=DateTimeAdapter.class,type=DateTime.class)
+@Audited
@MappedSuperclass
public abstract class VersionableEntity extends CdmBase implements IVersionableEntity{
private static final long serialVersionUID = 1409299200302758513L;
@Type(type="dateTimeUserType")
@Basic(fetch = FetchType.LAZY)
@Match(MatchMode.IGNORE)
- @Field(index = org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Field(index = org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@FieldBridge(impl = DateTimeBridge.class)
private DateTime updated;
\r
\r
@org.hibernate.annotations.TypeDefs( { \r
- @org.hibernate.annotations.TypeDef(name="persistentDuration", typeClass=org.joda.time.contrib.hibernate.PersistentDuration.class),\r
- @org.hibernate.annotations.TypeDef(name="dateTimeUserType", typeClass=org.joda.time.contrib.hibernate.PersistentDateTime.class),\r
+ //TODO needed ??\r
+ @org.hibernate.annotations.TypeDef(name="persistentDuration", typeClass=org.jadira.usertype.dateandtime.joda.PersistentDurationAsString.class), \r
+ @org.hibernate.annotations.TypeDef(name="dateTimeUserType", typeClass=org.jadira.usertype.dateandtime.joda.PersistentDateTime.class),\r
@org.hibernate.annotations.TypeDef(name="partialUserType", typeClass=eu.etaxonomy.cdm.hibernate.PartialUserType.class),\r
@org.hibernate.annotations.TypeDef(name="uuidUserType", typeClass=eu.etaxonomy.cdm.hibernate.UUIDUserType.class),\r
@org.hibernate.annotations.TypeDef(name="uriUserType", typeClass=eu.etaxonomy.cdm.hibernate.URIUserType.class)\r
private static final Logger logger = Logger.getLogger(CommonTaxonName.class);
@XmlElement(name = "Name")
- @Field(index = Index.TOKENIZED, store=Store.YES)
+ @Field(index = Index.YES, store=Store.YES) //TODO H42
private String name;
@XmlElement(name = "Language")
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
+import javax.persistence.MapKeyJoinColumn;
import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany(fetch = FetchType.LAZY)
@JoinTable(name = "DescriptionElementBase_ModifyingText")
+ @MapKeyJoinColumn(name="modifyingtext_mapkey_id")
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE})
@IndexedEmbedded
private Map<Language,LanguageString> modifyingText = new HashMap<Language,LanguageString>();
import javax.persistence.FetchType;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
+import javax.persistence.MapKeyJoinColumn;
import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@XmlElement(name = "Description")
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany(fetch = FetchType.LAZY)
- @Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE, CascadeType.DELETE, CascadeType.DELETE_ORPHAN })
+ @MapKeyJoinColumn(name="description_mapkey_id")
+ @Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE, CascadeType.DELETE, CascadeType.DELETE_ORPHAN })
@JoinTable(name = "IndividualAssociation_LanguageString")
private Map<Language,LanguageString> description = new HashMap<Language,LanguageString>();
\r
import javax.persistence.Entity;\r
import javax.persistence.FetchType;\r
+import javax.persistence.MapKeyJoinColumn;\r
import javax.persistence.OneToMany;\r
import javax.xml.bind.annotation.XmlAccessType;\r
import javax.xml.bind.annotation.XmlAccessorType;\r
@XmlElement(name = "MultiLanguageText")\r
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)\r
@OneToMany (fetch= FetchType.LAZY)\r
+ @MapKeyJoinColumn(name="label_mapkey_id")\r
@Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE, CascadeType.DELETE, CascadeType.DELETE_ORPHAN })\r
// @IndexedEmbedded\r
private Map<Language, LanguageString> label = new HashMap<Language, LanguageString>();\r
import javax.xml.bind.annotation.XmlSchemaType;\r
import javax.xml.bind.annotation.XmlType;\r
\r
+import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
import org.hibernate.annotations.Cascade;\r
import org.hibernate.annotations.CascadeType;\r
import org.hibernate.envers.Audited;\r
import org.hibernate.search.annotations.Indexed;\r
-import org.hibernate.tool.hbm2x.StringUtils;\r
\r
import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
result += otherNodeString + separator;\r
}\r
\r
- result = StringUtils.chompLast(result, separator);\r
+ result = StringUtils.chomp(result, separator);\r
result += "\n";\r
}\r
}\r
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
+import javax.persistence.MapKeyJoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Transient;
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany(fetch = FetchType.LAZY)
// @JoinTable(name = "DescriptionElementBase_ModifyingText")
- @Cascade({ CascadeType.SAVE_UPDATE, CascadeType.MERGE })
+ @MapKeyJoinColumn(name="modifyingtext_mapkey_id")
+ @Cascade({ CascadeType.SAVE_UPDATE, CascadeType.MERGE })
private Map<Language, LanguageString> modifyingText = new HashMap<Language, LanguageString>();
public static final Integer ROOT_NODE_NUMBER = 1;
import javax.persistence.FetchType;\r
import javax.persistence.ManyToMany;\r
import javax.persistence.ManyToOne;\r
+import javax.persistence.MapKeyJoinColumn;\r
import javax.persistence.OneToMany;\r
import javax.validation.constraints.NotNull;\r
import javax.xml.bind.annotation.XmlAccessType;\r
@XmlElement(name = "ModifyingText")\r
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)\r
@OneToMany(fetch = FetchType.LAZY)\r
+ @MapKeyJoinColumn(name="modifyingtext_mapkey_id")\r
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE})\r
@Field(name="modifyingText")\r
@FieldBridge(impl=MultilanguageTextFieldBridge.class)\r
import javax.persistence.FetchType;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
+import javax.persistence.MapKeyJoinColumn;
import javax.persistence.OneToMany;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@XmlElement(name = "Description")
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany(fetch = FetchType.LAZY)
+ @MapKeyJoinColumn(name="description_mapkey_id")
@JoinTable(name = "TaxonInteraction_LanguageString")
@Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE, CascadeType.DELETE, CascadeType.DELETE_ORPHAN })
private Map<Language,LanguageString> description = new HashMap<Language,LanguageString>();
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
+import javax.persistence.MapKeyJoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
@XmlElement(name = "MultiLanguageText")
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany (fetch= FetchType.LAZY)
+ @MapKeyJoinColumn(name="multilanguagetext_mapkey_id")
@Cascade({CascadeType.SAVE_UPDATE,CascadeType.MERGE, CascadeType.DELETE, CascadeType.DELETE_ORPHAN })
@Field(name="text", store=Store.YES)
@FieldBridge(impl=MultilanguageTextFieldBridge.class)
import javax.persistence.InheritanceType;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
+import javax.persistence.MapKeyJoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
import javax.validation.constraints.NotNull;
import eu.etaxonomy.cdm.model.common.Language;
import eu.etaxonomy.cdm.model.common.LanguageString;
import eu.etaxonomy.cdm.model.common.MultilanguageText;
+import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
import eu.etaxonomy.cdm.strategy.cache.media.MediaDefaultCacheStrategy;
import eu.etaxonomy.cdm.validation.Level2;
@Indexed
@Audited
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
-public class Media extends IdentifiableEntity implements Cloneable, IMultiLanguageTextHolder {
+public class Media extends IdentifiableEntity<IIdentifiableEntityCacheStrategy> implements Cloneable, IMultiLanguageTextHolder {
private static final long serialVersionUID = -1927421567263473658L;
@SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(Media.class);
@XmlElement(name = "MediaTitle")
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany(fetch = FetchType.LAZY)
+ @MapKeyJoinColumn(name="title_mapkey_id")
@IndexedEmbedded
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE,CascadeType.DELETE, CascadeType.DELETE_ORPHAN, CascadeType.REFRESH})
@NotNull
@XmlElement(name = "MediaDescription")
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany(fetch = FetchType.LAZY)
- @IndexedEmbedded
+ @MapKeyJoinColumn(name="description_mapkey_id")
@JoinTable(name = "Media_Description")
@Cascade({CascadeType.SAVE_UPDATE, CascadeType.MERGE,CascadeType.DELETE,CascadeType.DELETE_ORPHAN, CascadeType.REFRESH})
+ @IndexedEmbedded
@NotNull
private Map<Language,LanguageString> description = new HashMap<Language,LanguageString>();
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Type;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.validator.constraints.Length;
//external location of copyright text
@XmlElement(name = "URI")
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)
- @NullOrNotEmpty
- @Length(max = 255)
- @Pattern(regexp = "^([a-z0-9+.-]+):(?://(?:((?:[a-z0-9-._~!$&'()*+,;=:]|%[0-9A-F]{2})*)@)?((?:[a-z0-9-._~!$&'()*+,;=]|%[0-9A-F]{2})*)(?::(\\d*))?(/(?:[a-z0-9-._~!$&'()*+,;=:@/]|%[0-9A-F]{2})*)?|(/?(?:[a-z0-9-._~!$&'()*+,;=:@]|%[0-9A-F]{2})+(?:[a-z0-9-._~!$&'()*+,;=:@/]|%[0-9A-F]{2})*)?)(?:\\?((?:[a-z0-9-._~!$&'()*+,;=:/?@]|%[0-9A-F]{2})*))?(?:#((?:[a-z0-9-._~!$&'()*+,;=:/?@]|%[0-9A-F]{2})*))?$", groups = Level2.class, message = "{eu.etaxonomy.cdm.model.reference.Reference.uri.message}")
+ @Field(index=org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@Type(type="uriUserType")
private URI uri;
import org.apache.log4j.Logger;
import org.hibernate.annotations.Type;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.validator.constraints.Length;
private String accessionNumber;
@XmlElement(name = "URI")
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)
- @NullOrNotEmpty
- @Length(max = 255)
- @Pattern(regexp = "^([a-z0-9+.-]+):(?://(?:((?:[a-z0-9-._~!$&'()*+,;=:]|%[0-9A-F]{2})*)@)?((?:[a-z0-9-._~!$&'()*+,;=]|%[0-9A-F]{2})*)(?::(\\d*))?(/(?:[a-z0-9-._~!$&'()*+,;=:@/]|%[0-9A-F]{2})*)?|(/?(?:[a-z0-9-._~!$&'()*+,;=:@]|%[0-9A-F]{2})+(?:[a-z0-9-._~!$&'()*+,;=:@/]|%[0-9A-F]{2})*)?)(?:\\?((?:[a-z0-9-._~!$&'()*+,;=:/?@]|%[0-9A-F]{2})*))?(?:#((?:[a-z0-9-._~!$&'()*+,;=:/?@]|%[0-9A-F]{2})*))?$", groups = Level2.class, message = "{eu.etaxonomy.cdm.model.reference.Reference.uri.message}")
+ @Field(index=org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@Type(type="uriUserType")
private URI uri;
package eu.etaxonomy.cdm.model.molecular;
-import eu.etaxonomy.cdm.model.common.VersionableEntity;
-import eu.etaxonomy.cdm.strategy.cache.common.IdentifiableEntityDefaultCacheStrategy;
-
-import org.apache.log4j.Logger;
-import org.hibernate.envers.Audited;
-
-import javax.persistence.*;
+import javax.persistence.Entity;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
+import org.apache.log4j.Logger;
+import org.hibernate.envers.Audited;
+
+import eu.etaxonomy.cdm.model.common.VersionableEntity;
+
/**
- * The region name of a DNA string. E.g. 18S, COX, etc.
- * @author m.doering
- * @version 1.0
- * @created 08-Nov-2007 13:06:32
+ * @author a.mueller
+ * @created 04-Mar-2013 13:06:32
*/
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Locus", propOrder = {
//*********************** CONSTRUCTOR ****************************************************/
- private Locus() {
+ //Locus currently does not allow private constructor (javassist can't lazy load
+ // and create class).
+ //Still need to find out why.
+ protected Locus() {
}
//Author team and year of the subgenus name
@XmlElement(name = "SubGenusAuthorship")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
private String subGenusAuthorship;
//Approbation of name according to approved list, validation list, or validly published, paper in IJSB after 1980
@XmlElement(name = "NameApprobation")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
private String nameApprobation;
// ************* CONSTRUCTORS *************/
@Configurable
public class BotanicalName extends NonViralName<BotanicalName> implements Cloneable /*, IMergable*/ {
private static final long serialVersionUID = 6818651572463497727L;
+ @SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(BotanicalName.class);
//Only for fungi: to indicate that the type of the name is asexual or not
@XmlElement(name ="IsAnamorphic")
private boolean anamorphic;
- static private INonViralNameParser nameParser = new NonViralNameParserImpl();
+ static private INonViralNameParser<?> nameParser = new NonViralNameParserImpl();
// ************* CONSTRUCTORS *************/
//needed by hibernate
import org.hibernate.annotations.CascadeType;
import org.hibernate.annotations.Target;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Fields;
import org.hibernate.search.annotations.Index;
private static final Logger logger = Logger.getLogger(NonViralName.class);
@XmlElement(name = "NameCache")
- @Fields({@Field(name = "nameCache_tokenized",index = org.hibernate.search.annotations.Index.TOKENIZED),
- @Field(index = org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Fields({@Field(name = "nameCache_tokenized",index = org.hibernate.search.annotations.Index.YES), //TODO H42
+ @Field(index = Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
})
@Match(value=MatchMode.CACHE, cacheReplaceMode=ReplaceMode.DEFINED,
cacheReplacedProperties={"genusOrUninomial", "infraGenericEpithet", "specificEpithet", "infraSpecificEpithet"} )
protected boolean protectedNameCache;
@XmlElement(name = "GenusOrUninomial")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@Match(MatchMode.EQUAL_REQUIRED)
@CacheUpdate("nameCache")
@NullOrNotEmpty
private String genusOrUninomial;
@XmlElement(name = "InfraGenericEpithet")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@CacheUpdate("nameCache")
@NullOrNotEmpty
@Size(max = 255)
private String infraGenericEpithet;
@XmlElement(name = "SpecificEpithet")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@CacheUpdate("nameCache")
@NullOrNotEmpty
@Size(max = 255)
private String specificEpithet;
@XmlElement(name = "InfraSpecificEpithet")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@CacheUpdate("nameCache")
@NullOrNotEmpty
@Size(max = 255)
private INomenclaturalAuthor exBasionymAuthorTeam;
@XmlElement(name = "AuthorshipCache")
- @Fields({@Field(name = "authorshipCache_tokenized",index = org.hibernate.search.annotations.Index.TOKENIZED),
- @Field(index = org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Fields({@Field(name = "authorshipCache_tokenized",index = org.hibernate.search.annotations.Index.YES), //TODO H42
+ @Field(index = Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
})
@Match(value=MatchMode.CACHE, cacheReplaceMode=ReplaceMode.DEFINED,
cacheReplacedProperties={"combinationAuthorTeam", "basionymAuthorTeam", "exCombinationAuthorTeam", "exBasionymAuthorTeam"} )
if (protectedAuthorshipCache == false){
String oldCache = this.authorshipCache;
String newCache = this.getAuthorshipCache();
- if ( (oldCache == null && newCache != null) || ! oldCache.equals(newCache)){
+ if ( (oldCache == null && newCache != null) || CdmUtils.nullSafeEqual(oldCache,newCache)){
this.setAuthorshipCache(this.getAuthorshipCache(), false);
}
}
private Set<TaxonNameDescription> descriptions = new HashSet<TaxonNameDescription>();
@XmlElement(name = "AppendedPhrase")
- @Field(index= org.hibernate.search.annotations.Index.TOKENIZED)
+ @Field(index= org.hibernate.search.annotations.Index.YES) //TODO H42
@CacheUpdate(value ="nameCache")
@NullOrNotEmpty
@Size(max = 255)
private String appendedPhrase;
@XmlElement(name = "NomenclaturalMicroReference")
- @Field(index= org.hibernate.search.annotations.Index.TOKENIZED)
+ @Field(index= org.hibernate.search.annotations.Index.YES) //TODO H42
@CacheUpdate(noUpdate ="titleCache")
@NullOrNotEmpty
@Size(max = 255)
// protected INameCacheStrategy<ViralName> cacheStrategy;
@XmlElement(name = "Acronym")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Length(max = 255)
private String acronym;
import org.apache.log4j.Logger;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
//Name of the breed of an animal
@XmlElement(name = "Breed")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Length(max = 255)
private String breed;
@XmlElement(name = "PublicationYear")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@CacheUpdate(value ="authorshipCache")
@Min(0)
private Integer publicationYear;
@XmlElement(name = "OriginalPublicationYear")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@CacheUpdate(value ="authorshipCache")
@Min(0)
private Integer originalPublicationYear;
import org.apache.log4j.Logger;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
-import org.hibernate.annotations.Index;
import org.hibernate.annotations.Table;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
+import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
import org.hibernate.search.annotations.IndexedEmbedded;
import org.hibernate.validator.constraints.Length;
import eu.etaxonomy.cdm.model.agent.Institution;
import eu.etaxonomy.cdm.model.media.IdentifiableMediaEntity;
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
-import eu.etaxonomy.cdm.strategy.cache.common.IdentifiableEntityDefaultCacheStrategy;
import eu.etaxonomy.cdm.strategy.cache.occurrence.CollectionDefaultCacheStrategy;
import eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty;
@Indexed(index = "eu.etaxonomy.cdm.model.occurrence.Collection")
@Audited
@Configurable
-@Table(appliesTo="Collection", indexes = { @Index(name = "collectionTitleCacheIndex", columnNames = { "titleCache" }) })
+@Table(appliesTo="Collection", indexes = { @org.hibernate.annotations.Index(name = "collectionTitleCacheIndex", columnNames = { "titleCache" }) })
public class Collection extends IdentifiableMediaEntity<IIdentifiableEntityCacheStrategy<Collection>> implements Cloneable{
private static final long serialVersionUID = -7833674897174732255L;
private static final Logger logger = Logger.getLogger(Collection.class);
@XmlElement(name = "Code")
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@NullOrNotEmpty
@Length(max = 255)
private String code;
@XmlElement(name = "CodeStandard")
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@NullOrNotEmpty
@Length(max = 255)
private String codeStandard;
@XmlElement(name = "Name")
- @Field(index=org.hibernate.search.annotations.Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Length(max = 255)
private String name;
@XmlElement(name = "TownOrLocation")
- @Field(index=org.hibernate.search.annotations.Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Length(max = 255)
private String townOrLocation;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
private Collection collection;
@XmlElement(name = "CatalogNumber")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@NullOrNotEmpty
@Length(max = 255)
private String catalogNumber;
@XmlElement(name = "AccessionNumber")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@NullOrNotEmpty
@Length(max = 255)
private String accessionNumber;
@XmlElement(name = "CollectorsNumber")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@NullOrNotEmpty
@Length(max = 255)
private String collectorsNumber;
@XmlElement(name = "Barcode")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@NullOrNotEmpty
@Length(max = 255)
private String barcode;
private static final Logger logger = Logger.getLogger(FieldObservation.class);
@XmlElement(name = "FieldNumber")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Length(max = 255)
private String fieldNumber;
private Person primaryCollector;
@XmlElement(name = "FieldNotes")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Length(max = 255)
private String fieldNotes;
import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.Index;
import org.hibernate.search.annotations.Indexed;
private Set<NamedArea> collectingAreas = new HashSet<NamedArea>();
@XmlElement(name = "CollectingMethod")
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@NullOrNotEmpty
@Length(max = 255)
private String collectingMethod;
// meter above/below sea level of the surface
@XmlElement(name = "AbsoluteElevation")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
private Integer absoluteElevation;
@XmlElement(name = "AbsoluteElevationError")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
private Integer absoluteElevationError;
// distance in meter from the ground surface when collecting. E.g. 10m below the ground or 10m above the ground/bottom of a lake or 20m up in the canope
@XmlElement(name = "DistanceToGround")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
private Integer distanceToGround;
// distance in meters to lake or sea surface. Similar to distanceToGround use negative integers for distance *below* the surface, ie under water
@XmlElement(name = "DistanceToWaterSurface")
- @Field(index=Index.UN_TOKENIZED)
+ @Field(index=Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
private Integer distanceToWaterSurface;
/**
@XmlElement(name = "Exsiccatum")
@NullOrNotEmpty
- @Field(index=Index.TOKENIZED)
+ @Field(index=Index.YES) //TODO H42
@Size(max = 255)
private String exsiccatum;
import javax.persistence.InheritanceType;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
+import javax.persistence.MapKeyJoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Transient;
import javax.validation.constraints.Min;
import org.hibernate.annotations.Index;
import org.hibernate.annotations.Table;
import org.hibernate.envers.Audited;
+import org.hibernate.search.annotations.Analyze;
import org.hibernate.search.annotations.Field;
import org.hibernate.search.annotations.IndexedEmbedded;
private Stage lifeStage;
@XmlElement(name = "IndividualCount")
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)
+ @Field(index=org.hibernate.search.annotations.Index.YES, analyze = Analyze.NO) //TODO H42 was UN_TOKENIZED
@Min(0)
private Integer individualCount;
@XmlElement(name = "Description")
@XmlJavaTypeAdapter(MultilanguageTextAdapter.class)
@OneToMany(fetch = FetchType.LAZY)
- @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE, CascadeType.DELETE_ORPHAN})
+ @MapKeyJoinColumn(name="definition_mapkey_id")
+ @Cascade({CascadeType.SAVE_UPDATE, CascadeType.DELETE, CascadeType.DELETE_ORPHAN})
@IndexedEmbedded
@NotNull
protected Map<Language,LanguageString> definition = new HashMap<Language,LanguageString>();
import org.hibernate.annotations.Table;\r
import org.hibernate.annotations.Type;\r
import org.hibernate.envers.Audited;\r
+import org.hibernate.search.annotations.Analyze;\r
import org.hibernate.search.annotations.Field;\r
import org.hibernate.search.annotations.Index;\r
import org.hibernate.search.annotations.IndexedEmbedded;\r
@XmlElement(name ="Title" )\r
@Column(length=4096, name="title")\r
@Lob\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@Match(MatchMode.EQUAL_REQUIRED)\r
@NullOrNotEmpty\r
@Length(max = 4096)\r
\r
\r
@XmlElement(name = "Editor")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String editor;\r
\r
@XmlElement(name = "Series")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String series;\r
\r
@XmlElement(name = "Volume")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String volume;\r
\r
@XmlElement(name = "Pages")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String pages;\r
\r
@XmlElement(name = "Edition")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String edition;\r
\r
@XmlElement(name = "ISBN")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
@Pattern(regexp = "(?=.{13}$)\\d{1,5}([- ])\\d{1,7}\\1\\d{1,6}\\1(\\d|X)$", groups = Level2.class, message = "{eu.etaxonomy.cdm.model.reference.Reference.isbn.message}") \r
protected String isbn;\r
\r
@XmlElement(name = "ISSN")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
@Pattern(regexp = "(?=.{9}$)\\d{4}([- ])\\d{4} (\\d|X)$", groups = Level2.class, message = "{eu.etaxonomy.cdm.model.reference.Reference.issn.message}") \r
protected String issn;\r
\r
@XmlElement(name = "SeriesPart")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String seriesPart;\r
\r
@XmlElement(name = "Organization")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String organization;\r
\r
@XmlElement(name = "Publisher")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String publisher;\r
\r
\r
@XmlElement(name = "PlacePublished")\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 255)\r
protected String placePublished;\r
@XmlElement(name ="Abstract" )\r
@Column(length=65536, name="referenceAbstract")\r
@Lob\r
- @Field(index=Index.TOKENIZED)\r
+ @Field(index=Index.YES) //TODO H42\r
@NullOrNotEmpty\r
@Length(max = 65536)\r
private String referenceAbstract; //abstract is a reserved term in Java\r
\r
//URIs like DOIs, LSIDs or Handles for this reference\r
@XmlElement(name = "URI")\r
- @Field(index=org.hibernate.search.annotations.Index.UN_TOKENIZED)\r
+ @Field(index=Index.YES, analyze = Analyze.NO) // TODO H42 was UN_TOKENIZED\r
@Type(type="uriUserType")\r
private URI uri;\r
\r
// $Id$\r
/**\r
* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
+* European Distributed Institute of Taxonomy\r
* http://www.e-taxonomy.eu\r
-* \r
+*\r
* The contents of this file are subject to the Mozilla Public License Version 1.1\r
* See LICENSE.TXT at the top of this package for the full license terms.\r
*/\r
@XmlEnum\r
public enum ReferenceType implements IDefinedTerm<ReferenceType>, Serializable{\r
//0\r
- @XmlEnumValue("Article") \r
+ @XmlEnumValue("Article")\r
Article(UUID.fromString("fddfb343-f652-4f33-b6cb-7c94daa2f1ec"), "Article", ArticleDefaultCacheStrategy.class),\r
//1\r
- @XmlEnumValue("Book") \r
+ @XmlEnumValue("Book")\r
Book(UUID.fromString("9280876c-accb-4c47-873d-46bbf4296f18"), "Book", BookDefaultCacheStrategy.class),\r
//2\r
- @XmlEnumValue("Book Section") \r
+ @XmlEnumValue("Book Section")\r
BookSection(UUID.fromString("b197435d-deec-46fa-9c66-e0e6c44c57fb"), "Book Section", BookSectionDefaultCacheStrategy.class),\r
//3\r
@XmlEnumValue("CD or DVD")\r
//15\r
@XmlEnumValue("Web Page")\r
WebPage(UUID.fromString("1ed8b0df-0532-40ea-aef6-ee4361341165"), "Web Page", ReferenceBaseDefaultCacheStrategy.class);\r
- \r
+\r
private static final Logger logger = Logger.getLogger(ReferenceType.class);\r
- \r
+\r
private String readableString;\r
private Class<? extends IReferenceBaseCacheStrategy> cacheStrategy;\r
private UUID uuid;\r
- \r
+\r
private ReferenceType(UUID uuid, String defaultString, Class<? extends IReferenceBaseCacheStrategy> cacheStrategy){\r
this.uuid = uuid;\r
readableString = defaultString;\r
this.cacheStrategy = cacheStrategy;\r
}\r
- \r
+\r
@Transient\r
public String getMessage(){\r
return getMessage(Language.DEFAULT());\r
\r
public IReferenceBaseCacheStrategy getCacheStrategy(){\r
switch(this){\r
- case Article: \r
+ case Article:\r
return ArticleDefaultCacheStrategy.NewInstance();\r
case Book:\r
return BookDefaultCacheStrategy.NewInstance();\r
return JournalDefaultCacheStrategy.NewInstance();\r
case Thesis:\r
return ThesisDefaultCacheStrategy.NewInstance();\r
+ default:\r
+ return ReferenceBaseDefaultCacheStrategy.NewInstance();\r
}\r
- return ReferenceBaseDefaultCacheStrategy.NewInstance();\r
}\r
- \r
+\r
/**\r
* Returns true if references of this type have volume information.\r
*/\r
public boolean isVolumeReference(){\r
return (this == Article || isPrintedUnit() || this == Generic);\r
}\r
- \r
+\r
/**\r
* Returns true if references of this type are publications (inheriting from\r
* {@link IPublicationBase}) and therefore have a publisher and a publication place.\r
public boolean isPublication(){\r
return (this == CdDvd || this == Database || this == Generic\r
|| this == Journal || isPrintedUnit() || this == PrintSeries\r
- || this == Report || this == Thesis \r
- || this == WebPage || this == Map); \r
+ || this == Report || this == Thesis\r
+ || this == WebPage || this == Map);\r
}\r
- \r
+\r
/**\r
* Returns true if references of this type are printed units (inheriting from\r
- * {@link IPrintedUnitBase}) and therefore may have an editor, an in-series or an string \r
+ * {@link IPrintedUnitBase}) and therefore may have an editor, an in-series or an string\r
* representing the series (seriesPart).\r
*/\r
public boolean isPrintedUnit(){\r
return (this == Book || this == Proceedings);\r
}\r
- \r
+\r
/**\r
* Returns true if references of this type are parts of other references (inheriting from\r
* {@link ISectionBase}) and therefore may have an in-reference and pages.\r
*/\r
public boolean isSection(){\r
- return (this == BookSection || this == InProceedings \r
+ return (this == BookSection || this == InProceedings\r
|| isPrintedUnit() || this == Article );\r
}\r
\r
- \r
- public ReferenceType readCsvLine(Class<ReferenceType> termClass,\r
+\r
+ @Override\r
+ public ReferenceType readCsvLine(Class<ReferenceType> termClass,\r
List<String> csvLine, java.util.Map<UUID, DefinedTermBase> terms) {\r
// TODO Auto-generated method stub\r
return null;\r
}\r
\r
- \r
- public void writeCsvLine(CSVWriter writer, ReferenceType term) {\r
+\r
+ @Override\r
+ public void writeCsvLine(CSVWriter writer, ReferenceType term) {\r
logger.warn("write csvLine not yet implemented");\r
}\r
\r
- \r
- public UUID getUuid() {\r
+\r
+ @Override\r
+ public UUID getUuid() {\r
return this.uuid;\r
}\r
\r
- \r
- public ReferenceType getByUuid(UUID uuid) {\r
+\r
+ @Override\r
+ public ReferenceType getByUuid(UUID uuid) {\r
for (ReferenceType referenceType : ReferenceType.values()){\r
if (referenceType.getUuid().equals(uuid)){\r
return referenceType;\r
return null;\r
}\r
\r
- \r
- public ReferenceType getKindOf() {\r
+\r
+ @Override\r
+ public ReferenceType getKindOf() {\r
return null;\r
}\r
\r
- \r
- public Set<ReferenceType> getGeneralizationOf() {\r
+\r
+ @Override\r
+ public Set<ReferenceType> getGeneralizationOf() {\r
return new HashSet<ReferenceType>();\r
}\r
\r
- \r
- public ReferenceType getPartOf() {\r
+\r
+ @Override\r
+ public ReferenceType getPartOf() {\r
return null;\r
}\r
\r
- \r
- public Set<ReferenceType> getIncludes() {\r
+\r
+ @Override\r
+ public Set<ReferenceType> getIncludes() {\r
return new HashSet<ReferenceType>();\r
}\r
\r
- \r
- public Set<Media> getMedia() {\r
+\r
+ @Override\r
+ public Set<Media> getMedia() {\r
return new HashSet<Media>();\r
}\r
- \r
+\r
}\r
return getAcceptedTaxa().contains(taxon);
}
+ @Transient
+ public boolean isOrphaned() {
+ return false;
+ }
/**
* Returns the set of {@link SynonymRelationshipType synonym relationship types} of the
* {@link SynonymRelationship synonym relationships} where the {@link SynonymRelationship#getSynonym() synonym}
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import eu.etaxonomy.cdm.hibernate.search.GroupByTaxonClassBridge;
import eu.etaxonomy.cdm.model.common.IRelated;
+import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.RelationshipBase;
import eu.etaxonomy.cdm.model.description.TaxonDescription;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
return unplaced;
}
+ @Transient
+ public boolean isOrphaned() {
+
+ if(taxonNodes == null || taxonNodes.isEmpty()) {
+ if(getRelationsFromThisTaxon().isEmpty() && getRelationsToThisTaxon().isEmpty()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
public void setUnplaced(boolean unplaced) {
this.unplaced = unplaced;
}
public void setUseNameCache(boolean useNameCache) {
this.useNameCache = useNameCache;
}
+
+ @Transient
+ public abstract boolean isOrphaned();
//*********************** CLONE ********************************************************/
/**
authorPart = getAuthorAndExAuthor(combinationAuthor, exCombinationAuthor);\r
}\r
result = CdmUtils.concat(BasionymAuthorCombinationAuthorSeperator, basionymPart, authorPart);\r
+ if ("".equals(result)){\r
+ result = null;\r
+ }\r
return result;\r
}\r
\r
authorPart = CdmUtils.concat(AuthorYearSeperator, authorAndEx, publicationYearString);\r
}\r
result = CdmUtils.concat(BasionymAuthorCombinationAuthorSeperator, basionymPart, authorPart);\r
+ if ("".equals(result)){\r
+ result = null;\r
+ }\r
return result;\r
}\r
\r
@Constraint(validatedBy = BasionymsMustShareEpithetsAndAuthorsValidator.class)\r
@Documented\r
public @interface BasionymsMustShareEpithetsAndAuthors {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = ChildTaxaMustBeLowerRankThanParentValidator.class)\r
@Documented\r
public @interface ChildTaxaMustBeLowerRankThanParent {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustBeLowerRankThanParent.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = ChildTaxaMustDeriveNameFromParentValidator.class)\r
@Documented\r
public @interface ChildTaxaMustDeriveNameFromParent {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustDeriveNameFromParent.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = ChildTaxaMustNotSkipRanksValidator.class)\r
@Documented\r
public @interface ChildTaxaMustNotSkipRanks {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustNotSkipRanks.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = CorrectEpithetsForRankValidator.class)\r
@Documented\r
public @interface CorrectEpithetsForRank {\r
-String message() default "{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.message}";\r
-Class<? extends Payload>[] payload() default {};\r
-Class<?>[] groups() default {};\r
+ \r
+ String message() default "{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.message}";\r
+ \r
+ Class<? extends Payload>[] payload() default {};\r
+ \r
+ Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = HomotypicSynonymsShouldBelongToGroupValidator.class)\r
@Documented\r
public @interface HomotypicSynonymsShouldBelongToGroup {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.HomotypicSynonymsShouldBelongToGroup.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = InReferenceValidator.class)\r
@Documented\r
public @interface InReference {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.InReference.wrongInReferenceForReferenceType.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
-\r
}\r
@Constraint(validatedBy = MustHaveAuthorityValidator.class)\r
@Documented\r
public @interface MustHaveAuthority {\r
-String message() default "{eu.etaxonomy.cdm.validation.annotation.MustHaveAuthority.message}";\r
-Class<? extends Payload>[] payload() default {};\r
-Class<?>[] groups() default {};\r
+ \r
+ String message() default "{eu.etaxonomy.cdm.validation.annotation.MustHaveAuthority.message}";\r
+ \r
+ Class<? extends Payload>[] payload() default {};\r
+ \r
+ Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = NamesWithHomotypicRelationshipsMustBelongToSameGroupValidator.class)\r
@Documented\r
public @interface NamesWithHomotypicRelationshipsMustBelongToSameGroup {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.NamesWithHomotypicRelationshipsMustBelongToSameGroup.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = StubValidator.class)\r
@Documented\r
public @interface NoDuplicateNames {\r
-String message() default "{eu.etaxonomy.cdm.validation.annotation.NoDuplicateNames.message}";\r
-Class<? extends Payload>[] payload() default {};\r
-Class<?>[] groups() default {};\r
+ \r
+ String message() default "{eu.etaxonomy.cdm.validation.annotation.NoDuplicateNames.message}";\r
+ \r
+ Class<? extends Payload>[] payload() default {};\r
+ \r
+ Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = NullOrNotEmptyValidator.class)\r
@Documented\r
public @interface NullOrNotEmpty {\r
-String message() default "{eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty.message}";\r
-Class<? extends Payload>[] payload() default {};\r
-Class<?>[] groups() default {};\r
+ \r
+ String message() default "{eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty.message}";\r
+ \r
+ Class<? extends Payload>[] payload() default {};\r
+ \r
+ Class<?>[] groups() default {};\r
}\r
@Constraint(validatedBy = ReferenceCheckValidator.class)\r
@Documented\r
public @interface ReferenceCheck {\r
+ \r
String message() default "{eu.etaxonomy.cdm.validation.annotation.InReference.ReferenceShouldNotHaveIsbn.message}";\r
+ \r
Class<? extends Payload>[] payload() default {};\r
+ \r
Class<?>[] groups() default {};\r
-\r
}
\ No newline at end of file
@Constraint(validatedBy = TaxonNameCannotBeAcceptedAndSynonymValidator.class)\r
@Documented\r
public @interface TaxonNameCannotBeAcceptedAndSynonym {\r
-String message() default "{eu.etaxonomy.cdm.validation.annotation.TaxonNameCannotBeAcceptedAndSynonym.synonymAndTaxonNotAllowed.message}";\r
-Class<? extends Payload>[] payload() default {};\r
-Class<?>[] groups() default {};\r
+ \r
+ String message() default "{eu.etaxonomy.cdm.validation.annotation.TaxonNameCannotBeAcceptedAndSynonym.synonymAndTaxonNotAllowed.message}";\r
+ \r
+ Class<? extends Payload>[] payload() default {};\r
+ \r
+ Class<?>[] groups() default {};\r
}\r
public boolean isValid(NameRelationship nameRelationship, ConstraintValidatorContext constraintContext) {\r
boolean valid = true;\r
if(nameRelationship.getType().equals(NameRelationshipType.BASIONYM())) {\r
- TaxonNameBase from = CdmBase.deproxy(nameRelationship.getFromName(), TaxonNameBase.class);\r
- TaxonNameBase to = CdmBase.deproxy(nameRelationship.getToName(), TaxonNameBase.class);\r
+ TaxonNameBase<?,?> from = CdmBase.deproxy(nameRelationship.getFromName(), TaxonNameBase.class);\r
+ TaxonNameBase<?,?> to = CdmBase.deproxy(nameRelationship.getToName(), TaxonNameBase.class);\r
\r
if(from instanceof NonViralName && to instanceof NonViralName) {\r
- NonViralName fromName = (NonViralName) from;\r
- NonViralName toName = (NonViralName) to;\r
+ NonViralName<?> fromName = (NonViralName<?>) from;\r
+ NonViralName<?> toName = (NonViralName<?>) to;\r
if(fromName.getBasionymAuthorTeam() == null || !fromName.getBasionymAuthorTeam().equals(toName.getBasionymAuthorTeam())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentAuthors.message}").addSubNode("fromName").addSubNode("basionymAuthorTeam").addError(); \r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentAuthors.message}").addSubNode("toName").addSubNode("basionymAuthorTeam").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentAuthors.message}").addNode("fromName").addNode("basionymAuthorTeam").addConstraintViolation(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentAuthors.message}").addNode("toName").addNode("basionymAuthorTeam").addConstraintViolation();\r
}\r
\r
String fromNameLastEpithet = fromName.getInfraSpecificEpithet() == null ? fromName.getInfraSpecificEpithet() : fromName.getSpecificEpithet();\r
String toNameLastEpithet = toName.getInfraSpecificEpithet() == null ? toName.getInfraSpecificEpithet() : toName.getSpecificEpithet();\r
if(!fromNameLastEpithet.equals(toNameLastEpithet)) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentEpithets.message}").addSubNode("fromName").addSubNode("nameCache").addError(); \r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentEpithets.message}").addSubNode("toName").addSubNode("nameCache").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentEpithets.message}").addNode("fromName").addNode("nameCache").addConstraintViolation(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentEpithets.message}").addNode("toName").addNode("nameCache").addConstraintViolation();\r
}\r
\r
if(fromName instanceof ZoologicalName && toName instanceof ZoologicalName) {\r
if(!fromName.getNomenclaturalReference().equals(toName.getNomenclaturalReference())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addSubNode("fromName").addSubNode("nomenclaturalReference").addError(); \r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addSubNode("toName").addSubNode("nomenclaturalReference").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addNode("fromName").addNode("nomenclaturalReference").addConstraintViolation(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addNode("toName").addNode("nomenclaturalReference").addConstraintViolation();\r
}\r
\r
if(!fromName.getNomenclaturalMicroReference().equals(toName.getNomenclaturalMicroReference())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addSubNode("fromName").addSubNode("nomenclaturalMicroReference").addError(); \r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addSubNode("toName").addSubNode("nomenclaturalMicroReference").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addNode("fromName").addNode("nomenclaturalMicroReference").addConstraintViolation(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.BasionymsMustShareEpithetsAndAuthors.differentNomenclaturalReference.message}").addNode("toName").addNode("nomenclaturalMicroReference").addConstraintViolation();\r
}\r
}\r
}\r
\r
public boolean isValid(TaxonRelationship taxonRelationship, ConstraintValidatorContext constraintContext) {\r
boolean valid = true;\r
+ //FIXME Replace by TaxonNode relationship\r
if(taxonRelationship.getType().equals(TaxonRelationshipType.TAXONOMICALLY_INCLUDED_IN())) {\r
Taxon parent = taxonRelationship.getToTaxon();\r
Taxon child = taxonRelationship.getFromTaxon();\r
\r
if(parent.getName().getRank().equals(child.getName().getRank()) || parent.getName().getRank().isLower(child.getName().getRank())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustBeLowerRankThanParent.message}").addSubNode("fromTaxon").addSubNode("name").addSubNode("rank").addError(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustBeLowerRankThanParent.message}").addNode("fromTaxon").addNode("name").addNode("rank").addConstraintViolation(); \r
}\r
}\r
\r
if(((NonViralName)childName).getRank().isSpecies() || ((NonViralName)childName).getRank().isInfraSpecific()) {\r
if(!((NonViralName)parentName).getGenusOrUninomial().equals(((NonViralName)childName).getGenusOrUninomial())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustDeriveNameFromParent.message}").addSubNode("fromTaxon").addSubNode("name").addSubNode("genusOrUninomial").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustDeriveNameFromParent.message}").addNode("fromTaxon").addNode("name").addNode("genusOrUninomial").addConstraintViolation();\r
}\r
if(((NonViralName)parentName).getRank().isSpecies() || ((NonViralName)parentName).getRank().isInfraSpecific()) {\r
if(!((NonViralName)parentName).getSpecificEpithet().equals(((NonViralName)childName).getSpecificEpithet())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustDeriveNameFromParent.message}").addSubNode("fromTaxon").addSubNode("name").addSubNode("specificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustDeriveNameFromParent.message}").addNode("fromTaxon").addNode("name").addNode("specificEpithet").addConstraintViolation();\r
} \r
}\r
}\r
\r
if(parent.getName().getRank().isSupraGeneric() && child.getName().getRank().isLower(Rank.GENUS())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustNotSkipRanks.cannotSkipGenus.message}").addSubNode("fromTaxon").addSubNode("name").addSubNode("rank").addError(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustNotSkipRanks.cannotSkipGenus.message}").addNode("fromTaxon").addNode("name").addNode("rank").addConstraintViolation(); \r
} else if(parent.getName().getRank().isHigher(Rank.SPECIES()) && child.getName().getRank().isLower(Rank.SPECIES())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustNotSkipRanks.cannotSkipSpecies.message}").addSubNode("fromTaxon").addSubNode("name").addSubNode("rank").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.ChildTaxaMustNotSkipRanks.cannotSkipSpecies.message}").addNode("fromTaxon").addNode("name").addNode("rank").addConstraintViolation();\r
}\r
}\r
\r
import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank;\r
\r
-public class CorrectEpithetsForRankValidator implements\r
- ConstraintValidator<CorrectEpithetsForRank, NonViralName> {\r
+public class CorrectEpithetsForRankValidator implements ConstraintValidator<CorrectEpithetsForRank, NonViralName> {\r
\r
public void initialize(CorrectEpithetsForRank correctEpithetsForRank) { }\r
\r
if(name.getRank().isSupraGeneric() || name.getRank().isGenus()) { \r
if(name.getInfraGenericEpithet() != null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addSubNode("infraGenericEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addNode("infraGenericEpithet").addConstraintViolation();\r
}\r
\r
if(name.getSpecificEpithet() != null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addSubNode("specificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addNode("specificEpithet").addConstraintViolation();\r
} \r
if(name.getInfraSpecificEpithet() != null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addSubNode("infraSpecificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addNode("infraSpecificEpithet").addConstraintViolation();\r
}\r
} else if(name.getRank().isInfraGeneric()) {\r
if(name.getInfraGenericEpithet() == null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addSubNode("infraGenericEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addNode("infraGenericEpithet").addConstraintViolation();\r
}\r
\r
if(name.getSpecificEpithet() != null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addSubNode("specificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addNode("specificEpithet").addConstraintViolation();\r
} \r
if(name.getInfraSpecificEpithet() != null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addSubNode("infraSpecificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addNode("infraSpecificEpithet").addConstraintViolation();\r
}\r
} else if(name.getRank().isSpecies()) {\r
if(name.getSpecificEpithet() == null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addSubNode("specificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addNode("specificEpithet").addConstraintViolation();\r
}\r
\r
if(name.getInfraSpecificEpithet() != null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addSubNode("infraSpecificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNotNull}").addNode("infraSpecificEpithet").addConstraintViolation();\r
}\r
} else if(name.getRank().isInfraSpecific()) {\r
if(name.getSpecificEpithet() == null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addSubNode("specificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addNode("specificEpithet").addConstraintViolation();\r
}\r
if(name.getInfraSpecificEpithet() == null) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addSubNode("infraSpecificEpithet").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank.epithetNull}").addNode("infraSpecificEpithet").addConstraintViolation();\r
}\r
}\r
\r
\r
if(!accepted.getName().getHomotypicalGroup().equals(synonym.getName().getHomotypicalGroup())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.HomotypicSynonymsShouldBelongToGroup.message}").addSubNode("tyoe").addError(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.HomotypicSynonymsShouldBelongToGroup.message}").addNode("tyoe").addConstraintViolation(); \r
}\r
}\r
\r
\r
}\r
\r
- public boolean isValid(Reference value,\r
- ConstraintValidatorContext constraintValidatorContext) {\r
+ public boolean isValid(Reference value, ConstraintValidatorContext constraintValidatorContext) {\r
boolean isValid = true;\r
try {\r
if (value.getInReference() != null){\r
\r
}\r
if (!isValid){\r
- constraintValidatorContext.disableDefaultError();\r
- constraintValidatorContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.InReference.wrongInReferenceForReferenceType.message}").addSubNode("inReference").addError();\r
+ constraintValidatorContext.disableDefaultConstraintViolation();\r
+ constraintValidatorContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.InReference.wrongInReferenceForReferenceType.message}").addNode("inReference").addConstraintViolation();\r
}\r
}catch(NullPointerException e){\r
return isValid;\r
nameRelationship.getType().equals(NameRelationshipType.REPLACED_SYNONYM())) {\r
if(!nameRelationship.getFromName().getHomotypicalGroup().equals(nameRelationship.getToName().getHomotypicalGroup())) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.NamesWithHomotypicRelationshipsMustBelongToSameGroup.message}").addSubNode("fromName").addSubNode("homotypicalGroup").addError(); \r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.NamesWithHomotypicRelationshipsMustBelongToSameGroup.message}").addSubNode("toName").addSubNode("homotypicalGroup").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.NamesWithHomotypicRelationshipsMustBelongToSameGroup.message}").addNode("fromName").addNode("homotypicalGroup").addConstraintViolation(); \r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.NamesWithHomotypicRelationshipsMustBelongToSameGroup.message}").addNode("toName").addNode("homotypicalGroup").addConstraintViolation();\r
}\r
}\r
\r
\r
import eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty;\r
\r
-public class NullOrNotEmptyValidator implements\r
- ConstraintValidator<NullOrNotEmpty, String> {\r
+public class NullOrNotEmptyValidator implements ConstraintValidator<NullOrNotEmpty, String> {\r
\r
public void initialize(NullOrNotEmpty nullOrNotEmpty) { }\r
\r
isValid &= validIsbn(value, constraintValidatorContext); \r
if (value.getType() == ReferenceType.Journal && value.getDatePublished() != null) {\r
isValid &= false;\r
- constraintValidatorContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.InReference.JournalShouldNotHaveDatePublished.message}");\r
+ constraintValidatorContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.InReference.JournalShouldNotHaveDatePublished.message}");\r
}\r
\r
return isValid;\r
if ((value.getType() != ReferenceType.Book && value.getType() != ReferenceType.Proceedings) ) {\r
if (value.getIsbn()!= null){\r
isValid = false;\r
- constraintValidatorContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.InReference.ReferenceShouldNotHaveIsbn.message}");\r
+ constraintValidatorContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.InReference.ReferenceShouldNotHaveIsbn.message}");\r
}\r
}\r
return isValid;\r
\r
import org.hibernate.Hibernate;\r
\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.cdm.validation.annotation.CorrectEpithetsForRank;\r
import eu.etaxonomy.cdm.validation.annotation.TaxonNameCannotBeAcceptedAndSynonym;\r
\r
public class TaxonNameCannotBeAcceptedAndSynonymValidator implements\r
\r
if(taxonBase1 instanceof Taxon && taxonBase2 instanceof Taxon) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.TaxonNameCannotBeAcceptedAndSynonym.twoAcceptedTaxaNotAllowed.message}").addSubNode("name").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.TaxonNameCannotBeAcceptedAndSynonym.twoAcceptedTaxaNotAllowed.message}").addNode("name").addConstraintViolation();\r
}\r
if((taxonBase1 instanceof Taxon && taxonBase2 instanceof Synonym) || (taxonBase1 instanceof Synonym && taxonBase2 instanceof Taxon)) {\r
valid = false;\r
- constraintContext.buildErrorWithMessageTemplate("{eu.etaxonomy.cdm.validation.annotation.TaxonNameCannotBeAcceptedAndSynonym.synonymAndTaxonNotAllowed.message}").addSubNode("name").addError();\r
+ constraintContext.buildConstraintViolationWithTemplate("{eu.etaxonomy.cdm.validation.annotation.TaxonNameCannotBeAcceptedAndSynonym.synonymAndTaxonNotAllowed.message}").addNode("name").addConstraintViolation();\r
} \r
}\r
}\r
"0522c2b3-b21c-400c-80fc-a251c3501dbc",,"publish","publish",\r
"2cdb492e-3b8b-4784-8c26-25159835231d",,"in bibliography","show in bibliography",\r
"efe95ade-8a6c-4a0e-800e-437c8b50c45e",,"endemic","endemic","endemic"\r
-"c21bc83f-c8ae-4126-adee-10dfe817e96a",,"modifiable","modifiable","modifiable"
\ No newline at end of file
+"c21bc83f-c8ae-4126-adee-10dfe817e96a",,"modifiable","modifiable","modifiable"\r
+"2e6e42d9-e92a-41f4-899b-03c0ac64f039",,"use","use","use"\r
+"5cc15a73-2947-44e3-9319-85dd20736e55",,"computed","computed","computed"
\ No newline at end of file
\r
import java.util.GregorianCalendar;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.junit.Before;\r
import org.junit.Test;\r
*/\r
package eu.etaxonomy.cdm.model.agent;\r
\r
-import static org.junit.Assert.*;\r
-\r
import java.beans.PropertyChangeEvent;\r
import java.beans.PropertyChangeListener;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
\r
import java.util.List;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.junit.Before;\r
import org.junit.Test;\r
\r
package eu.etaxonomy.cdm.model.common;\r
\r
-import junit.framework.Assert;\r
-\r
import org.apache.log4j.Logger;\r
import org.junit.Test;\r
\r
import static org.junit.Assert.assertNotNull;\r
import static org.junit.Assert.assertNull;\r
import static org.junit.Assert.assertTrue;\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.joda.time.DateTimeFieldType;\r
*/\r
package eu.etaxonomy.cdm.model.description;\r
\r
-import static org.junit.Assert.*;\r
-\r
import java.util.ArrayList;\r
import java.util.Arrays;\r
import java.util.List;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.junit.Before;\r
import org.junit.Test;\r
\r
import java.util.List;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
\r
\r
\r
\r
point2.setLongitudeSexagesimal(Sexagesimal.NewInstance(5, 22, null, Direction.WEST));\r
- Assert.assertEquals((Integer)22, (Integer)point2.getLongitudeSexagesimal().minutes);\r
- Assert.assertEquals((Integer)0, (Integer)point2.getLongitudeSexagesimal().seconds);\r
+ Assert.assertEquals((Integer)22, point2.getLongitudeSexagesimal().minutes);\r
+ Assert.assertEquals((Integer)0, point2.getLongitudeSexagesimal().seconds);\r
\r
Double latitudeDouble = -45.57389326; \r
point1.setLatitudeSexagesimal(Sexagesimal.valueOf(latitudeDouble, true));\r
\r
package eu.etaxonomy.cdm.model.media;\r
\r
-import static org.junit.Assert.*;\r
-\r
import java.net.URI;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.joda.time.DateTime;\r
import java.util.HashSet;\r
import java.util.Set;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.After;\r
\r
@Test\r
public final void testGetChildAndParentRelationships() {\r
- NonViralName nonViralName1 = new NonViralName();\r
+ NonViralName<?> nonViralName1 = new NonViralName();\r
assertEquals(0, nonViralName1.getParentRelationships().size());\r
- assertEquals(0, nonViralName1.getChildRelationships().size());\r
+ assertEquals(0, nonViralName1.getHybridChildRelations().size());\r
BotanicalName femaleParent = BotanicalName.NewInstance(null);\r
HybridRelationship hybridRelationship = new HybridRelationship(nonViralName1, femaleParent, HybridRelationshipType.FEMALE_PARENT(), null );\r
- assertEquals(1, nonViralName1.getChildRelationships().size());\r
- assertEquals(hybridRelationship, nonViralName1.getChildRelationships().iterator().next());\r
+ assertEquals(1, nonViralName1.getHybridChildRelations().size());\r
+ assertEquals(hybridRelationship, nonViralName1.getHybridChildRelations().iterator().next());\r
assertEquals(1, femaleParent.getParentRelationships().size());\r
}\r
\r
@Test\r
public final void testAddHybridRelationships() {\r
- NonViralName nonViralName1 = new NonViralName();\r
+ NonViralName<?> nonViralName1 = new NonViralName();\r
assertEquals(0, nonViralName1.getParentRelationships().size());\r
assertEquals(0, nonViralName1.getChildRelationships().size());\r
BotanicalName femaleParent = BotanicalName.NewInstance(null);\r
nonViralName1.addHybridParent(femaleParent, HybridRelationshipType.MALE_PARENT(), null);\r
nonViralName1.addHybridParent(maleParent, HybridRelationshipType.MALE_PARENT(), null);\r
\r
- assertEquals(2, nonViralName1.getChildRelationships().size());\r
- assertEquals(0, nonViralName1.getParentRelationships().size());\r
- assertEquals(1, maleParent.getParentRelationships().size());\r
- assertEquals(1, femaleParent.getParentRelationships().size());\r
- assertEquals(0, maleParent.getChildRelationships().size());\r
- assertEquals(0, femaleParent.getChildRelationships().size());\r
+ assertEquals(2, nonViralName1.getHybridChildRelations().size());\r
+ assertEquals(0, nonViralName1.getHybridParentRelations().size());\r
+ assertEquals(1, maleParent.getHybridParentRelations().size());\r
+ assertEquals(1, femaleParent.getHybridParentRelations().size());\r
+ assertEquals(0, maleParent.getHybridChildRelations().size());\r
+ assertEquals(0, femaleParent.getHybridChildRelations().size());\r
\r
}\r
\r
@Test(expected=IllegalArgumentException.class)\r
public final void testAddHybridRelationship() {\r
- NonViralName nonViralName1 = new NonViralName();\r
- assertEquals(0, nonViralName1.getParentRelationships().size());\r
- assertEquals(0, nonViralName1.getChildRelationships().size());\r
- NonViralName botanicalName2 = new NonViralName();\r
+ NonViralName<?> nonViralName1 = new NonViralName();\r
+ assertEquals(0, nonViralName1.getHybridParentRelations().size());\r
+ assertEquals(0, nonViralName1.getHybridChildRelations().size());\r
+ NonViralName<?> botanicalName2 = new NonViralName();\r
botanicalName2.addHybridRelationship(null);\r
}\r
\r
@Test\r
public final void testRemoveHybridRelationship() {\r
- NonViralName botanicalName1 = new NonViralName();\r
- assertEquals(0, botanicalName1.getParentRelationships().size());\r
- assertEquals(0, botanicalName1.getChildRelationships().size());\r
+ NonViralName<?> botanicalName1 = new NonViralName();\r
+ assertEquals(0, botanicalName1.getHybridParentRelations().size());\r
+ assertEquals(0, botanicalName1.getHybridChildRelations().size());\r
BotanicalName femaleParent = BotanicalName.NewInstance(null);\r
- NonViralName maleParent = NonViralName.NewInstance(null);\r
+ NonViralName<?> maleParent = NonViralName.NewInstance(null);\r
ZoologicalName child = ZoologicalName.NewInstance(null);\r
\r
botanicalName1.addHybridParent(femaleParent, HybridRelationshipType.FEMALE_PARENT(), null);\r
botanicalName1.addHybridParent(maleParent, HybridRelationshipType.MALE_PARENT(), null);\r
botanicalName1.addHybridChild(child, HybridRelationshipType.FIRST_PARENT(), null);\r
- assertEquals(2, botanicalName1.getChildRelationships().size());\r
- assertEquals(1, botanicalName1.getParentRelationships().size());\r
- assertEquals(1, child.getChildRelationships().size());\r
+ assertEquals(2, botanicalName1.getHybridChildRelations().size());\r
+ assertEquals(1, botanicalName1.getHybridParentRelations().size());\r
+ assertEquals(1, child.getHybridChildRelations().size());\r
\r
botanicalName1.removeHybridParent(femaleParent);\r
- assertEquals(1, botanicalName1.getChildRelationships().size());\r
- assertEquals(1, botanicalName1.getParentRelationships().size());\r
+ assertEquals(1, botanicalName1.getHybridChildRelations().size());\r
+ assertEquals(1, botanicalName1.getHybridParentRelations().size());\r
\r
botanicalName1.removeHybridParent(maleParent);\r
- assertEquals(0, botanicalName1.getChildRelationships().size());\r
- assertEquals(1, botanicalName1.getParentRelationships().size());\r
+ assertEquals(0, botanicalName1.getHybridChildRelations().size());\r
+ assertEquals(1, botanicalName1.getHybridParentRelations().size());\r
\r
botanicalName1.removeHybridChild(child);\r
- assertEquals(0, botanicalName1.getParentRelationships().size());\r
+ assertEquals(0, botanicalName1.getHybridParentRelations().size());\r
\r
//null\r
botanicalName1.removeHybridRelationship(null);\r
- assertEquals(0, botanicalName1.getChildRelationships().size());\r
+ assertEquals(0, botanicalName1.getHybridChildRelations().size());\r
}\r
\r
\r
nonViralName1.setInfraSpecificEpithet("infrabus");\r
nonViralName1.setBinomHybrid(true);\r
\r
- NonViralName parent = NonViralName.NewInstance(Rank.SPECIES());\r
- NonViralName parent2 = NonViralName.NewInstance(Rank.SPECIES());\r
- NonViralName child = NonViralName.NewInstance(Rank.SPECIES());\r
- NonViralName child2 = NonViralName.NewInstance(Rank.SPECIES());\r
+ NonViralName<?> parent = NonViralName.NewInstance(Rank.SPECIES());\r
+ NonViralName<?> parent2 = NonViralName.NewInstance(Rank.SPECIES());\r
+ NonViralName<?> child = NonViralName.NewInstance(Rank.SPECIES());\r
+ NonViralName<?> child2 = NonViralName.NewInstance(Rank.SPECIES());\r
nonViralName1.addHybridParent(parent, HybridRelationshipType.FIRST_PARENT(), "parent rule");\r
nonViralName1.addHybridParent(parent2, HybridRelationshipType.SECOND_PARENT(), "parent rule2");\r
nonViralName1.addHybridChild(child, HybridRelationshipType.FEMALE_PARENT(), "child rule");\r
\r
\r
- NonViralName clone = (NonViralName)nonViralName1.clone();\r
+ NonViralName<?> clone = (NonViralName)nonViralName1.clone();\r
Assert.assertEquals("Genus should be equal", "Aus", clone.getGenusOrUninomial());\r
Assert.assertEquals("Infragenus should be equal", "Infaus", clone.getInfraGenericEpithet());\r
Assert.assertEquals("Specific epithet should be equal", "bus", clone.getSpecificEpithet());\r
Assert.assertEquals("There should be exactly 2 hybrid relationships in which the clone takes the child role", 2, clone.getChildRelationships().size());\r
Set<NonViralName> parentSet = new HashSet<NonViralName>();\r
Set<NonViralName> childSet = new HashSet<NonViralName>();\r
- for (Object object : clone.getChildRelationships()){\r
+ for (Object object : clone.getHybridChildRelations()){\r
HybridRelationship childRelation = (HybridRelationship)object;\r
- NonViralName relatedFrom = childRelation.getRelatedFrom();\r
+ NonViralName<?> relatedFrom = childRelation.getRelatedFrom();\r
parentSet.add(relatedFrom);\r
- NonViralName relatedTo = childRelation.getRelatedTo();\r
+ NonViralName<?> relatedTo = childRelation.getRelatedTo();\r
childSet.add(relatedTo);\r
}\r
Assert.assertTrue("Parent set should contain parent1", parentSet.contains(parent));\r
\r
//hybrid child of clone\r
Assert.assertEquals("There should be exactly 1 hybrid relationship in which the clone takes the parent role", 1, clone.getParentRelationships().size());\r
- HybridRelationship parentRelation = (HybridRelationship)clone.getParentRelationships().iterator().next();\r
+ HybridRelationship parentRelation = (HybridRelationship)clone.getHybridParentRelations().iterator().next();\r
Assert.assertSame("Clone should be parent in parentRelationship", clone, parentRelation.getRelatedFrom());\r
Assert.assertSame("Child should be child in parentRelationship", child, parentRelation.getRelatedTo());\r
Assert.assertSame("Relationship type should be cloned correctly", HybridRelationshipType.FEMALE_PARENT(), parentRelation.getType());\r
import java.util.Iterator;\r
import java.util.Set;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
private static TaxonNameBase<?,?> taxonName3;\r
private static TaxonNameBase<?,?> taxonName12;\r
private static TaxonNameBase<?,?> taxonName121;\r
- private static Reference ref1;\r
- private static Reference ref2;\r
- private static Reference ref3;\r
+ private static Reference<?> ref1;\r
+ private static Reference<?> ref2;\r
+ private static Reference<?> ref3;\r
//private ReferenceFactory refFactory;\r
\r
\r
CdmBase referencedCdmBase = Person.NewInstance();\r
Set<Class<? extends CdmBase>> allCdmClasses = findAllCdmClasses();\r
\r
- Class referencedClass = referencedCdmBase.getClass();\r
+ Class<? extends CdmBase> referencedClass = referencedCdmBase.getClass();\r
Set<CdmBase> result = new HashSet<CdmBase>();\r
System.out.println("Referenced Class: " + referencedClass.getName());\r
\r
\r
}\r
\r
- private boolean handleSingleClass(Class classToBeSearchedFor, Class type, Field field, Class cdmClass, Set<CdmBase> result,CdmBase value){\r
+ private boolean handleSingleClass(Class<?> classToBeSearchedFor, Class<?> type, Field field, Class<?> cdmClass, Set<CdmBase> result, CdmBase value){\r
if (! Modifier.isStatic(field.getModifiers())){\r
String methodName = StringUtils.rightPad(field.getName(), 30);\r
String className = StringUtils.rightPad(cdmClass.getSimpleName(), 30);\r
return true;\r
}\r
\r
- private Set<Field> getFields(Class clazz){\r
+ private Set<Field> getFields(Class<?> clazz){\r
Set<Field> result = new HashSet<Field>();\r
for (Field field: clazz.getDeclaredFields()){\r
if (!Modifier.isStatic(field.getModifiers())){\r
result.add(field); \r
}\r
}\r
- Class superclass = clazz.getSuperclass();\r
+ Class<?> superclass = clazz.getSuperclass();\r
if (CdmBase.class.isAssignableFrom(superclass)){\r
result.addAll(getFields(superclass));\r
}\r
return result;\r
}\r
\r
- private Set<CdmBase> getCdmBasesByFieldAndClass(Field field, Class clazz, CdmBase value){\r
+ private Set<CdmBase> getCdmBasesByFieldAndClass(Field field, Class<?> clazz, CdmBase value){\r
//FIXME make not dummy but use dao\r
Set<CdmBase> result = new HashSet<CdmBase>();\r
\r
BotanicalName name = BotanicalName.NewInstance(Rank.GENUS());\r
name.setTitleCache("A dummy name", true);\r
result.add(name);\r
- Reference ref = ReferenceFactory.newBook();\r
+ Reference<?> ref = ReferenceFactory.newBook();\r
ref.setTitleCache("A dummy book", true);\r
result.add(ref);\r
\r
Class<?> returnType = method.getReturnType();\r
handleClass(allCdmClasses,returnType);\r
Class<?>[] params = method.getParameterTypes();\r
- for (Class paramClass : params){\r
+ for (Class<?> paramClass : params){\r
handleClass(allCdmClasses, paramClass);\r
}\r
} \r
if (! withAbstract){\r
Iterator<Class<? extends CdmBase>> iterator = allCdmClasses.iterator();\r
while (iterator.hasNext()){\r
- Class clazz = iterator.next();\r
+ Class<?> clazz = iterator.next();\r
if (Modifier.isAbstract(clazz.getModifiers())){\r
iterator.remove();\r
}\r
return allCdmClasses;\r
}\r
\r
- private void handleClass(Set<Class<? extends CdmBase>> allCdmClasses, Class returnType){\r
+ private void handleClass(Set<Class<? extends CdmBase>> allCdmClasses, Class<?> returnType){\r
if (CdmBase.class.isAssignableFrom(returnType)){\r
if (! allCdmClasses.contains(returnType)){\r
//System.out.println(returnType.getSimpleName());\r
allCdmClasses.add((Class)returnType);\r
- Class superClass = returnType.getSuperclass();\r
+ Class<?> superClass = returnType.getSuperclass();\r
handleClass(allCdmClasses, superClass);\r
}\r
}\r
\r
\r
import static org.junit.Assert.assertNotNull;\r
-import junit.framework.Assert;\r
\r
+import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
import org.junit.After;\r
import org.junit.AfterClass;\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.BeforeClass;\r
import org.junit.Test;\r
\r
-import eu.etaxonomy.cdm.common.CdmUtils;\r
import eu.etaxonomy.cdm.model.agent.Person;\r
\r
/**\r
Assert.assertEquals("Person2 title should be P2NomT", "P2NomT", person2.getNomenclaturalTitle());\r
//person3\r
Assert.assertNotNull("person3 nomenclatural title must not to be null", person3.getNomenclaturalTitle());\r
- Assert.assertTrue("Person3 nomenclatural title must not be empty", CdmUtils.isNotEmpty(person3.getNomenclaturalTitle()));\r
+ Assert.assertTrue("Person3 nomenclatural title must not be empty", StringUtils.isNotBlank(person3.getNomenclaturalTitle()));\r
//don't take to serious, may be also something different, but not empty\r
Assert.assertEquals("Person3 title should start with Person#0", "Person#0", person3.getNomenclaturalTitle().substring(0, 8));\r
}\r
Assert.assertEquals("Person2 title cache should be P2NomT", "P2FN P2LN P2Suff", person2.getTitleCache());\r
//person3\r
Assert.assertNotNull("person3 title cache must not to be null", person3.getTitleCache());\r
- Assert.assertTrue("Person3 title cache must not be empty", CdmUtils.isNotEmpty(person3.getTitleCache()));\r
+ Assert.assertTrue("Person3 title cache must not be empty", StringUtils.isNotBlank(person3.getTitleCache()));\r
//don't take to serious, may be also something different, but not empty\r
Assert.assertEquals("Person3 title cache should start with Person#0", "Person#0", person3.getTitleCache().substring(0, 8));\r
person3.setFirstname("Klaus");\r
\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(TermDefaultCacheStrategyTest.class);\r
\r
- private TermDefaultCacheStrategy strategy;\r
+ private TermDefaultCacheStrategy<?> strategy;\r
\r
//************************* SET UP **************************************** \r
\r
package eu.etaxonomy.cdm.strategy.cache.reference;\r
\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
private static IJournal journal1;\r
private static Team team1;\r
private static Team team2;\r
- private static ArticleDefaultCacheStrategy defaultStrategy;\r
+ private static ArticleDefaultCacheStrategy<Reference<?>> defaultStrategy;\r
private static final String detail1 = "55";\r
\r
/**\r
article1.setVolume("34");\r
article1.setSeries("ser. 2");\r
article1.setDatePublished(TimePeriod.NewInstance(1975));\r
- Assert.assertEquals("in My journal ser. 2, 34", defaultStrategy.getNomRefTitleWithoutYearAndAuthor((Reference)article1));\r
+ Assert.assertEquals("in My journal ser. 2, 34", defaultStrategy.getNomRefTitleWithoutYearAndAuthor((Reference<?>)article1));\r
}\r
\r
@Test \r
article1.setAuthorTeam(articleAuthor);\r
article1.setVolume("18");\r
article1.setDatePublished(TimePeriod.NewInstance(1943));\r
- Assert.assertEquals("Babc. & Stebbins in Univ. Calif. Publ. Bot. 18. 1943", defaultStrategy.getTitleCache((Reference)article1));\r
+ Assert.assertEquals("Babc. & Stebbins in Univ. Calif. Publ. Bot. 18. 1943", defaultStrategy.getTitleCache((Reference<?>)article1));\r
}\r
\r
}\r
package eu.etaxonomy.cdm.strategy.cache.reference;\r
\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
package eu.etaxonomy.cdm.strategy.cache.reference;\r
\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
package eu.etaxonomy.cdm.strategy.cache.reference;\r
\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
*/\r
package eu.etaxonomy.cdm.strategy.parser;\r
\r
-import static org.junit.Assert.*;\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.junit.Before;\r
import org.junit.BeforeClass;\r
import java.util.regex.Matcher;\r
import java.util.regex.Pattern;\r
\r
-import junit.framework.Assert;\r
-\r
import org.apache.log4j.Logger;\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.BeforeClass;\r
-import org.junit.Ignore;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.cdm.model.agent.INomenclaturalAuthor;\r
\r
//unranked infraspecific\r
String infraspecificUnranked = "Genus species [unranked] infraspecific";\r
- NonViralName name = parser.parseFullName(infraspecificUnranked);\r
+ NonViralName<?> name = parser.parseFullName(infraspecificUnranked);\r
assertEquals( "Genus", name.getGenusOrUninomial());\r
assertEquals( "species", name.getSpecificEpithet());\r
assertEquals( "infraspecific", name.getInfraSpecificEpithet());\r
\r
//unranked infrageneric\r
String infraGenericUnranked = "Genus [unranked] Infragen";\r
- NonViralName name2 = parser.parseFullName(infraGenericUnranked);\r
+ NonViralName<?> name2 = parser.parseFullName(infraGenericUnranked);\r
assertEquals( "Genus", name2.getGenusOrUninomial());\r
assertEquals( null, name2.getSpecificEpithet());\r
assertEquals( "Infragen", name2.getInfraGenericEpithet());\r
assertEquals("Title cache must be correct", "Abies alba \u00D7 Pinus bus", name1.getTitleCache());\r
List<HybridRelationship> orderedRels = name1.getOrderedChildRelationships();\r
assertEquals("Name must have 2 hybrid parents in ordered list", 2, orderedRels.size());\r
- NonViralName firstParent = orderedRels.get(0).getParentName();\r
+ NonViralName<?> firstParent = orderedRels.get(0).getParentName();\r
assertEquals("Name must have Abies alba as first hybrid parent", "Abies alba", firstParent.getTitleCache());\r
- NonViralName secondParent = orderedRels.get(1).getParentName();\r
+ NonViralName<?> secondParent = orderedRels.get(1).getParentName();\r
assertEquals("Name must have Pinus bus as second hybrid parent", "Pinus bus", secondParent.getTitleCache());\r
assertEquals("Hybrid name must have the lowest rank ('species') as rank", Rank.SPECIES(), name1.getRank());\r
\r
\r
private void testName_StringNomcodeRank(Method parseMethod) \r
throws InvocationTargetException, IllegalAccessException {\r
- NonViralName name1 = (NonViralName)parseMethod.invoke(parser, strNameAbies1, null, Rank.SPECIES());\r
+ NonViralName<?> name1 = (NonViralName)parseMethod.invoke(parser, strNameAbies1, null, Rank.SPECIES());\r
//parser.parseFullName(strNameAbies1, null, Rank.SPECIES());\r
assertEquals("Abies", name1.getGenusOrUninomial());\r
assertEquals("alba", name1.getSpecificEpithet());\r
assertEquals("alba", nameAuthor.getSpecificEpithet());\r
assertEquals("Mueller", nameAuthor.getCombinationAuthorTeam().getNomenclaturalTitle());\r
\r
- NonViralName nameBasionymAuthor = (NonViralName)parseMethod.invoke(parser, strNameAbiesBasionymAuthor1, null, Rank.SPECIES());\r
+ NonViralName<?> nameBasionymAuthor = (NonViralName)parseMethod.invoke(parser, strNameAbiesBasionymAuthor1, null, Rank.SPECIES());\r
assertEquals("Abies", nameBasionymAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameBasionymAuthor.getSpecificEpithet());\r
assertEquals("D'Mueller", nameBasionymAuthor.getCombinationAuthorTeam().getNomenclaturalTitle());\r
assertEquals("Ciardelli", nameBasionymAuthor.getBasionymAuthorTeam().getNomenclaturalTitle());\r
\r
- NonViralName nameBasionymExAuthor = (NonViralName)parseMethod.invoke(parser, strNameAbiesBasionymExAuthor1, null, Rank.SPECIES());\r
+ NonViralName<?> nameBasionymExAuthor = (NonViralName)parseMethod.invoke(parser, strNameAbiesBasionymExAuthor1, null, Rank.SPECIES());\r
assertEquals("Abies", nameBasionymExAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameBasionymExAuthor.getSpecificEpithet());\r
assertEquals("D'Mueller", nameBasionymExAuthor.getExCombinationAuthorTeam().getNomenclaturalTitle());\r
assertEquals("Ciardelli", nameBasionymExAuthor.getExBasionymAuthorTeam().getNomenclaturalTitle());\r
assertEquals("Doering", nameBasionymExAuthor.getBasionymAuthorTeam().getNomenclaturalTitle());\r
\r
- NonViralName name2 = (NonViralName)parseMethod.invoke(parser, strNameAbiesSub1, null, Rank.SPECIES());\r
+ NonViralName<?> name2 = (NonViralName)parseMethod.invoke(parser, strNameAbiesSub1, null, Rank.SPECIES());\r
assertEquals("Abies", name2.getGenusOrUninomial());\r
assertEquals("alba", name2.getSpecificEpithet());\r
assertEquals("beta", name2.getInfraSpecificEpithet());\r
\r
String irinaExample = "Milichiidae Sharp, 1899, Insects. Part II. Hymenopteracontinued (Tubulifera and Aculeata), Coleoptera, Strepsiptera, Lepidoptera, Diptera, Aphaniptera, Thysanoptera, Hemiptera, Anoplura 6: 504. 1899";\r
// irinaExample = "Milichiidae Sharp, 1899, Insects. Part II. Uiuis Iuiui Hymenopteracontinued (Tubulifera and Aculeata), Coleoptera, Strepsiptera, Lepidoptera, Diptera, Aphaniptera, Thysanoptera, Hemiptera, Anoplura 6: 504. 1899";\r
- NonViralName nvn = this.parser.parseReferencedName(irinaExample, NomenclaturalCode.ICZN, null);\r
+ NonViralName<?> nvn = this.parser.parseReferencedName(irinaExample, NomenclaturalCode.ICZN, null);\r
int parsingProblem = nvn.getParsingProblem();\r
Assert.assertEquals("Name should have only rank warning", 1, parsingProblem);\r
Assert.assertEquals("Titlecache", "Milichiidae Sharp, 1899", nvn.getTitleCache());\r
\r
package eu.etaxonomy.cdm.validation;\r
\r
-import static org.junit.Assert.assertEquals;\r
import static org.junit.Assert.assertFalse;\r
-import static org.junit.Assert.assertNotNull;\r
import static org.junit.Assert.assertTrue;\r
\r
import java.util.Set;\r
-import java.util.UUID;\r
\r
import javax.validation.ConstraintViolation;\r
import javax.validation.Validation;\r
import javax.validation.Validator;\r
import javax.validation.ValidatorFactory;\r
-import javax.validation.groups.Default;\r
-\r
-import junit.framework.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
-import org.junit.Ignore;\r
import org.junit.Test;\r
\r
-import org.unitils.spring.annotation.SpringBeanByType;\r
-\r
import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
import javax.validation.ValidatorFactory;\r
import javax.validation.groups.Default;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
import javax.validation.ValidatorFactory;\r
import javax.validation.groups.Default;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
Set<ConstraintViolation<IBookSection>> constraintViolations = validator.validate(bookSection, Level2.class);\r
assertTrue("There should be one constraint violation as this book has a valid Ref",constraintViolations.size() == 0);\r
\r
- Reference article = ReferenceFactory.newArticle();\r
+ Reference<?> article = ReferenceFactory.newArticle();\r
article.setTitleCache("article");\r
bookSection.setInReference(article);\r
constraintViolations = validator.validate(bookSection, Level2.class);\r
@Test\r
public final void testValidationAfterCasting(){\r
\r
- ((Reference)book).castReferenceToArticle();\r
+ ((Reference<?>)book).castReferenceToArticle();\r
Set<ConstraintViolation<IBook>> constraintViolations = validator.validate(book, Level2.class);\r
assertFalse("There should be one constraint violations as this article is not valid at level 2 (has an isbn)",constraintViolations.isEmpty());\r
}\r
</plugins>
</build>
<dependencies>
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ </dependency>
<dependency>
<groupId>eu.etaxonomy</groupId>
<artifactId>cdmlib-model</artifactId>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</dependency>
- <dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
- </dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
- <groupId>org.hibernate</groupId>
+ <groupId>org.hibernate.common</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
</dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-annotations</artifactId>
- </dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-envers</artifactId>
+ <artifactId>hibernate-search</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-search</artifactId>
+ <artifactId>hibernate-envers</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
</dependency>
+ <!-- only needed as long as hibernate-c3p0 is still dependend on c3p0/c3p0/0.9.1 -->
+ <dependency>
+ <groupId>com.mchange</groupId>
+ <artifactId>c3p0</artifactId>
+ <version>0.9.2</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
- <version>1.7.0</version>
+ <version>1.8.2</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
<dependency>
- <groupId>commons-dbcp</groupId>
- <artifactId>commons-dbcp</artifactId>
- <version>1.2.2</version>
- </dependency>
- <dependency>
- <groupId>org.springmodules</groupId>
- <artifactId>spring-modules-lucene</artifactId>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+<!-- <scope>test</scope> , currently also used in NomenclaturalCodeAwareDataSource and maybe others -->
</dependency>
<dependency>
<groupId>org.unitils</groupId>
<groupId>org.unitils</groupId>
<artifactId>unitils-orm</artifactId>
<scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.persistence</groupId>
+ <artifactId>persistence-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.unitils</groupId>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
</dependency>
+<!-- <dependency>
+ <groupId>org.springmodules</groupId>
+ <artifactId>spring-modules-lucene</artifactId>
+ </dependency> -->
<!-- ******* DATABASES DRIVER ******* -->
<dependency>
<groupId>mysql</groupId>
\r
import org.apache.commons.lang.StringUtils;\r
import org.apache.log4j.Logger;\r
-import org.hibernate.cache.CacheProvider;\r
-import org.hibernate.cache.NoCacheProvider;\r
+import org.hibernate.cache.internal.NoCachingRegionFactory;\r
+import org.hibernate.cache.spi.RegionFactory;\r
+import org.hibernate.cfg.Environment;\r
import org.springframework.beans.MutablePropertyValues;\r
import org.springframework.beans.factory.config.BeanDefinition;\r
import org.springframework.beans.factory.config.PropertiesFactoryBean;\r
private boolean showSql = false;\r
private boolean formatSql = false;\r
private boolean registerSearchListener = false;\r
- private Class<? extends CacheProvider> cacheProviderClass = NoCacheProvider.class;\r
+ private Class<? extends RegionFactory> cacheProviderClass = NoCachingRegionFactory.class;\r
\r
public static CdmDataSource NewInstance(DatabaseTypeEnum dbType, String server, String database, String username, String password){\r
return new CdmDataSource(dbType, server, database, -1, username, password, null, null, null);\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.application.ICdmDataSource#getDatasourceBean()\r
*/\r
- @SuppressWarnings("unchecked")\r
public BeanDefinition getDatasourceBean(){\r
AbstractBeanDefinition bd = new RootBeanDefinition(dbType.getDataSourceClass());\r
//attributes\r
//properties\r
MutablePropertyValues props = new MutablePropertyValues();\r
Properties persistentProperties = getDatasourceProperties();\r
- Enumeration<String> keys = (Enumeration)persistentProperties.keys();\r
+ Enumeration<Object> keys = (Enumeration<Object>)persistentProperties.keys();\r
while (keys.hasMoreElements()){\r
String key = (String)keys.nextElement();\r
props.addPropertyValue(key, persistentProperties.getProperty(key));\r
+ Properties a = Environment.getProperties();\r
}\r
\r
bd.setPropertyValues(props);\r
boolean showSql = false;\r
boolean formatSql = false;\r
boolean registerSearchListener = false;\r
- Class<? extends CacheProvider> cacheProviderClass = NoCacheProvider.class;\r
+ Class<? extends RegionFactory> cacheProviderClass = NoCachingRegionFactory.class;\r
return getHibernatePropertiesBean(hbm2dll, showSql, formatSql, registerSearchListener, cacheProviderClass);\r
}\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.application.ICdmDataSource#getHibernatePropertiesBean(eu.etaxonomy.cdm.database.CdmPersistentDataSource.HBM2DDL, java.lang.Boolean, java.lang.Boolean, java.lang.Class)\r
*/\r
- public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends CacheProvider> cacheProviderClass){\r
+ public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends RegionFactory> cacheProviderClass){\r
//Hibernate default values\r
if (hbm2dll == null){\r
hbm2dll = this.hbm2dll;\r
Properties props = new Properties();\r
props.setProperty("hibernate.hbm2ddl.auto", hbm2dll.toString());\r
props.setProperty("hibernate.dialect", dbtype.getHibernateDialect());\r
- props.setProperty("hibernate.cache.provider_class", cacheProviderClass.getName());\r
+// OLD:props.setProperty("hibernate.cache.provider_class", cacheProviderClass.getName());\r
+ props.setProperty("hibernate.cache.region.factory_class", cacheProviderClass.getName());\r
props.setProperty("hibernate.show_sql", String.valueOf(showSql));\r
props.setProperty("hibernate.format_sql", String.valueOf(formatSql));\r
props.setProperty("hibernate.search.autoregister_listeners", String.valueOf(registerSearchListener));\r
import javax.sql.DataSource;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.cache.CacheProvider;\r
-import org.hibernate.cache.NoCacheProvider;\r
+import org.hibernate.cache.internal.NoCachingRegionFactory;\r
+import org.hibernate.cache.spi.RegionFactory;\r
import org.jdom.Attribute;\r
import org.jdom.Document;\r
import org.jdom.Element;\r
boolean showSql = false;\r
boolean formatSql = false;\r
boolean registerSearchListener = false;\r
- Class<? extends CacheProvider> cacheProviderClass = NoCacheProvider.class;\r
+ Class<? extends RegionFactory> cacheProviderClass = NoCachingRegionFactory.class;\r
return getHibernatePropertiesBean(hbm2dll, showSql, formatSql, registerSearchListener, cacheProviderClass);\r
}\r
\r
* @param showSql\r
* @return\r
*/\r
- public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends CacheProvider> cacheProviderClass){\r
+ public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends RegionFactory> cacheProviderClass){\r
//Hibernate default values\r
if (hbm2dll == null){\r
hbm2dll = DbSchemaValidation.VALIDATE;\r
formatSql = false;\r
}\r
if (cacheProviderClass == null){\r
- cacheProviderClass = NoCacheProvider.class;\r
+ cacheProviderClass = NoCachingRegionFactory.class;\r
}\r
if(registerSearchListener == null){\r
registerSearchListener = false;\r
Properties props = new Properties();\r
props.setProperty("hibernate.hbm2ddl.auto", hbm2dll.toString());\r
props.setProperty("hibernate.dialect", dbtype.getHibernateDialect());\r
- props.setProperty("hibernate.cache.provider_class", cacheProviderClass.getName());\r
+ props.setProperty("hibernate.cache.region.factory_class", cacheProviderClass.getName());\r
props.setProperty("hibernate.show_sql", String.valueOf(showSql));\r
props.setProperty("hibernate.format_sql", String.valueOf(formatSql));\r
props.setProperty("hibernate.search.autoregister_listeners", String.valueOf(registerSearchListener));\r
import java.sql.ResultSet;\r
import java.sql.SQLException;\r
\r
-import org.hibernate.cache.CacheProvider;\r
+import org.hibernate.cache.spi.RegionFactory;\r
import org.springframework.beans.factory.config.BeanDefinition;\r
\r
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
* @param cacheProviderClass\r
* @return BeanDefinition\r
*/\r
- public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends CacheProvider> cacheProviderClass);\r
+ public BeanDefinition getHibernatePropertiesBean(DbSchemaValidation hbm2dll, Boolean showSql, Boolean formatSql, Boolean registerSearchListener, Class<? extends RegionFactory> cacheProviderClass);\r
\r
\r
/**\r
* @version 1.0
*/
public class NomenclaturalCodeAwareDataSource extends BasicDataSource {
- private static final Logger logger = Logger
- .getLogger(NomenclaturalCodeAwareDataSource.class);
+ @SuppressWarnings("unused")
+ private static final Logger logger = Logger.getLogger(NomenclaturalCodeAwareDataSource.class);
private NomenclaturalCode nomenclaturalCode;
protected int defaultPort = 1433;\r
\r
//hibernate dialect\r
- protected String hibernateDialect = "SQLServerDialect";\r
+ protected String hibernateDialect = "SQLServer2005Dialect";\r
\r
public String getConnectionString(ICdmDataSource ds, int port){\r
return getConnectionString(ds, port, null);\r
\r
/**\r
* Deletes all foreign keys between tables in a sql server database.\r
- * This make deleting tables easier.\r
+ * This makes deleting tables easier.\r
* @param sqlServerDataSource\r
* @return\r
* @throws SQLException\r
--- /dev/null
+/**\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
+package eu.etaxonomy.cdm.database.types;\r
+\r
+\r
+\r
+/**\r
+ * @author a.mueller\r
+ *\r
+ */\r
+public class SqlServer2008DatabaseType extends SqlServer2005DatabaseType {\r
+ \r
+ //hibernate dialect\r
+ protected String hibernateDialect = "SQLServer2008Dialect" ;\r
+ \r
+ \r
+ //Constructor\r
+ public SqlServer2008DatabaseType() {\r
+ init (typeName, classString, urlString, defaultPort, hibernateDialect );\r
+ }\r
+ \r
+}
\ No newline at end of file
import java.lang.reflect.Method;\r
import java.lang.reflect.ParameterizedType;\r
import java.lang.reflect.Type;\r
-import java.lang.reflect.TypeVariable;\r
import java.util.Collection;\r
import java.util.Collections;\r
import java.util.HashSet;\r
\r
import java.io.IOException;\r
import java.io.StringReader;\r
-import java.util.Iterator;\r
import java.util.Vector;\r
\r
import org.apache.commons.logging.Log;\r
import org.apache.lucene.analysis.standard.StandardAnalyzer;\r
import org.apache.lucene.index.CorruptIndexException;\r
import org.apache.lucene.index.IndexReader;\r
+import org.apache.lucene.index.IndexWriterConfig;\r
import org.apache.lucene.index.Term;\r
import org.apache.lucene.queryParser.ParseException;\r
import org.apache.lucene.queryParser.QueryParser;\r
import org.apache.lucene.search.spell.LuceneDictionary;\r
import org.apache.lucene.search.spell.SpellChecker;\r
import org.apache.lucene.store.Directory;\r
+import org.apache.lucene.util.BytesRef;\r
+import org.apache.lucene.util.BytesRefIterator;\r
+import org.apache.lucene.util.Version;\r
import org.hibernate.SessionFactory;\r
import org.hibernate.search.FullTextSession;\r
import org.hibernate.search.Search;\r
import org.hibernate.search.SearchFactory;\r
-import org.hibernate.search.reader.ReaderProvider;\r
-import org.hibernate.search.store.DirectoryProvider;\r
+import org.hibernate.search.indexes.IndexReaderAccessor;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;\r
\r
import eu.etaxonomy.cdm.persistence.dao.IAlternativeSpellingSuggestionParser;\r
\r
\r
-public abstract class AlternativeSpellingSuggestionParser<T extends CdmBase> extends HibernateDaoSupport implements\r
-IAlternativeSpellingSuggestionParser {\r
+\r
+public abstract class AlternativeSpellingSuggestionParser<T extends CdmBase> \r
+ extends HibernateDaoSupport \r
+ implements IAlternativeSpellingSuggestionParser {\r
private static Log log = LogFactory.getLog(AlternativeSpellingSuggestionParser.class);\r
\r
private String defaultField;\r
private Class<T> type;\r
private Class<? extends T> indexedClasses[];\r
\r
+ //FIXME only for testing in Hibernate 4/Lucene 3.6 migration\r
+ public static Version version = Version.LUCENE_36;\r
+\r
+ \r
public AlternativeSpellingSuggestionParser(Class<T> type) {\r
this.type = type;\r
}\r
}\r
\r
public Query parse(String queryString) throws ParseException {\r
- QueryParser queryParser = new QueryParser(defaultField, new StandardAnalyzer()); \r
+ QueryParser queryParser = new QueryParser(version, defaultField, new StandardAnalyzer(version)); \r
return queryParser.parse(queryString);\r
}\r
\r
public Query suggest(String queryString) throws ParseException {\r
- QuerySuggester querySuggester = new QuerySuggester(defaultField, new StandardAnalyzer());\r
+ QuerySuggester querySuggester = new QuerySuggester(defaultField, new StandardAnalyzer(version));\r
Query query = querySuggester.parse(queryString);\r
return querySuggester.hasSuggestedQuery() ? query : null;\r
}\r
private class QuerySuggester extends QueryParser {\r
private boolean suggestedQuery = false;\r
public QuerySuggester(String field, Analyzer analyzer) {\r
- super(field, analyzer);\r
+ super(version, field, analyzer);\r
}\r
protected Query getFieldQuery(String field, String queryText) throws ParseException {\r
// Copied from org.apache.lucene.queryParser.QueryParser\r
// replacing construction of TermQuery with call to getTermQuery()\r
// which finds close matches.\r
TokenStream source = getAnalyzer().tokenStream(field, new StringReader(queryText));\r
- Vector v = new Vector();\r
+ Vector<Object> v = new Vector<Object>();\r
Token t;\r
\r
while (true) {\r
try {\r
- t = source.next();\r
+ //OLD\r
+// t = source.next();\r
+ \r
+ //FIXME this is new after Hibernate 4 migration \r
+ //but completely unchecked and unsure if correct\r
+ //#3344\r
+ boolean it = source.incrementToken();\r
+ t = source.getAttribute(Token.class);\r
+ \r
+ \r
+ \r
} catch (IOException e) {\r
t = null;\r
}\r
- if (t == null)\r
+ if (t == null){\r
break;\r
- v.addElement(t.termText());\r
+ }\r
+ \r
+// OLD v.addElement(t.termText());\r
+ //FIXME unchecked #3344\r
+ v.addElement(t.term());\r
}\r
try {\r
source.close();\r
SpellChecker spellChecker = new SpellChecker(directory);\r
\r
for(Class<? extends T> indexedClass : indexedClasses) {\r
- DirectoryProvider directoryProvider = searchFactory.getDirectoryProviders(indexedClass)[0];\r
- ReaderProvider readerProvider = searchFactory.getReaderProvider();\r
+ //OLD\r
+// DirectoryProvider<?> directoryProvider = searchFactory.getDirectoryProviders(indexedClass)[0];\r
+// ReaderProvider readerProvider = searchFactory.getReaderProvider();\r
+ IndexReaderAccessor ira = searchFactory.getIndexReaderAccessor(); \r
+// IndexReader indexReader = ira.open(indexedClass);\r
IndexReader indexReader = null;\r
\r
try {\r
\r
- indexReader = readerProvider.openReader(directoryProvider);\r
+ indexReader = ira.open(indexedClass);\r
+// indexReader = readerProvider.openIndexReader(); // .openReader(directoryProvider);\r
log.debug("Creating new dictionary for words in " + defaultField + " docs " + indexReader.numDocs());\r
\r
Dictionary dictionary = new LuceneDictionary(indexReader, defaultField);\r
if(log.isDebugEnabled()) {\r
- Iterator iterator = dictionary.getWordsIterator();\r
- while(iterator.hasNext()) {\r
- log.debug("Indexing word " + iterator.next());\r
+ BytesRefIterator iterator = dictionary.getWordsIterator();\r
+ BytesRef bytesRef;\r
+ while((bytesRef = iterator.next()) != null) {\r
+ log.debug("Indexing word " + bytesRef);\r
}\r
}\r
\r
- spellChecker.indexDictionary(dictionary);\r
+ \r
+// OLD: spellChecker.indexDictionary(dictionary);\r
+ //FIXME preliminary for Hibernate 4 migration see # 3344\r
+ IndexWriterConfig config = new IndexWriterConfig(version, new StandardAnalyzer(version)); \r
+ boolean fullMerge = true;\r
+ spellChecker.indexDictionary(dictionary, config, fullMerge);\r
+ \r
} catch (CorruptIndexException cie) {\r
log.error("Spellings index is corrupted", cie);\r
} finally {\r
if (indexReader != null) {\r
- readerProvider.closeReader(indexReader);\r
+// readerProvider.closeIndexReader(indexReader);\r
+ ira.close(indexReader);\r
}\r
} \r
} \r
\r
import org.apache.log4j.Logger;\r
import org.hibernate.HibernateException;\r
-import org.hibernate.collection.PersistentCollection;\r
+import org.hibernate.collection.spi.PersistentCollection;\r
import org.hibernate.envers.entities.mapper.relation.lazy.proxy.CollectionProxy;\r
import org.hibernate.envers.entities.mapper.relation.lazy.proxy.MapProxy;\r
import org.hibernate.proxy.HibernateProxy;\r
import java.util.List;
import org.hibernate.Criteria;
-import org.hibernate.Query;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
criteria.setProjection(Projections.countDistinct("id"));
- return (Integer)criteria.uniqueResult();
+ return ((Number)criteria.uniqueResult()).intValue();
}
public List<Annotation> list(Person commentator, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
criteria.setProjection(Projections.countDistinct("id"));
- return (Integer)criteria.uniqueResult();
+ return ((Number)criteria.uniqueResult()).intValue();
}
public List<Annotation> list(User creator, MarkerType status, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
\r
import java.lang.reflect.Field;\r
import java.util.ArrayList;\r
-import java.util.Arrays;\r
import java.util.Collection;\r
import java.util.HashMap;\r
import java.util.Iterator;\r
import org.apache.log4j.Logger;\r
import org.apache.lucene.search.Sort;\r
import org.apache.lucene.search.SortField;\r
+import org.apache.lucene.util.Version;\r
import org.hibernate.Criteria;\r
import org.hibernate.HibernateException;\r
import org.hibernate.LockMode;\r
import eu.etaxonomy.cdm.model.common.VersionableEntity;\r
import eu.etaxonomy.cdm.persistence.dao.IBeanInitializer;\r
import eu.etaxonomy.cdm.persistence.dao.common.ICdmEntityDao;\r
+import eu.etaxonomy.cdm.persistence.dao.hibernate.AlternativeSpellingSuggestionParser;\r
import eu.etaxonomy.cdm.persistence.hibernate.replace.ReferringObjectMetadata;\r
import eu.etaxonomy.cdm.persistence.hibernate.replace.ReferringObjectMetadataFactory;\r
import eu.etaxonomy.cdm.persistence.query.Grouping;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
-import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;\r
\r
\r
/**\r
protected int flushAfterNo = 1000; //large numbers may cause synchronisation errors when commiting the session !!\r
\r
protected Class<T> type;\r
+ \r
+ //preliminary\r
+ protected Version version = AlternativeSpellingSuggestionParser.version;\r
+ \r
\r
@Autowired\r
// @Qualifier("defaultBeanInitializer")\r
\r
for(ReferringObjectMetadata referringObjectMetadata : referringObjectMetas) {\r
\r
- List<CdmBase> referringObjects = referringObjectMetadata.getReferringObjects(x,getSession());\r
+ List<CdmBase> referringObjects = referringObjectMetadata.getReferringObjects(x, getSession());\r
\r
for(CdmBase referringObject : referringObjects) {\r
try {\r
criteria = session.createCriteria(clazz);\r
}\r
criteria.setProjection(Projections.projectionList().add(Projections.rowCount()));\r
- return (Integer) criteria.uniqueResult();\r
+ \r
+ //since hibernate 4 (or so) uniqueResult returns Long, not Integer, therefore needs\r
+ //to be casted. Think about returning long rather then int!\r
+ return ((Number) criteria.uniqueResult()).intValue();\r
}\r
\r
public List<T> list(Integer limit, Integer start) {\r
}\r
\r
protected void addOrder(FullTextQuery fullTextQuery, List<OrderHint> orderHints) {\r
- if(orderHints != null && !orderHints.isEmpty()) {\r
+ //FIXME preliminary hardcoded type:\r
+ int type = SortField.STRING;\r
+ \r
+ if(orderHints != null && !orderHints.isEmpty()) {\r
org.apache.lucene.search.Sort sort = new Sort();\r
SortField[] sortFields = new SortField[orderHints.size()];\r
for(int i = 0; i < orderHints.size(); i++) {\r
OrderHint orderHint = orderHints.get(i);\r
switch(orderHint.getSortOrder()) {\r
case ASCENDING:\r
- sortFields[i] = new SortField(orderHint.getPropertyName(), true);\r
+ sortFields[i] = new SortField(orderHint.getPropertyName(), type, true);\r
break;\r
case DESCENDING:\r
default:\r
- sortFields[i] = new SortField(orderHint.getPropertyName(),false);\r
+ sortFields[i] = new SortField(orderHint.getPropertyName(), type, false);\r
\r
}\r
}\r
addExample(criteria,example,includeProperties);\r
\r
criteria.setProjection(Projections.rowCount());\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
}\r
\r
protected void addExample(Criteria criteria, T example, Set<String> includeProperties) {\r
criteria.setProjection(Projections.rowCount());\r
\r
List<T> result = criteria.list();\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
}\r
\r
\r
import java.util.Map;
import java.util.Set;
-import javax.naming.NamingException;
import javax.naming.Reference;
import org.apache.commons.lang.StringUtils;
import org.hibernate.criterion.CriteriaSpecification;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
-import org.hibernate.impl.SessionFactoryImpl;
-import org.hibernate.impl.SessionImpl;
+import org.hibernate.engine.spi.SessionFactoryImplementor;
+import org.hibernate.internal.SessionFactoryImpl;
+import org.hibernate.internal.SessionImpl;
import org.hibernate.metadata.ClassMetadata;
import org.hibernate.metadata.CollectionMetadata;
import org.hibernate.persister.collection.CollectionPersister;
import org.hibernate.type.FloatType;
import org.hibernate.type.IntegerType;
import org.hibernate.type.LongType;
+import org.hibernate.type.MaterializedClobType;
import org.hibernate.type.SerializableType;
import org.hibernate.type.SetType;
-import org.hibernate.type.StringClobType;
import org.hibernate.type.StringType;
import org.hibernate.type.Type;
-import org.joda.time.contrib.hibernate.PersistentDateTime;
+import org.jadira.usertype.dateandtime.joda.PersistentDateTime;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;
}else if (propertyType.isCollectionType()){
CollectionType collectionType = (CollectionType)propertyType;
//String role = collectionType.getRole();
- Type elType = collectionType.getElementType((SessionFactoryImpl)sessionFactory);
+ Type elType = collectionType.getElementType((SessionFactoryImplementor)sessionFactory);
makePropertyType(result, referencedClass, sessionFactory, cdmClass, elType, propertyName, true);
}else if (propertyType.isAnyType()){
AnyType anyType = (AnyType)propertyType;
StringType.class,
BooleanType.class,
IntegerType.class,
- StringClobType.class,
+ MaterializedClobType.class,
LongType.class,
FloatType.class,
SerializableType.class,
try {
Reference ref = sessionFactory.getReference();
logger.debug("");
- } catch (NamingException e) {
+ } catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
+
//sessionFactory.get
ClassMetadata classMetadata = getSession().getSessionFactory().getClassMetadata(clazz);
Type[] propertyTypes = classMetadata.getPropertyTypes();
}else if (propertyType.isCollectionType()){
CollectionType collectionType = (CollectionType)propertyType;
String role = collectionType.getRole();
- Type elType = collectionType.getElementType((SessionFactoryImpl)sessionFactory);
+ Type elType = collectionType.getElementType((SessionFactoryImplementor)sessionFactory);
String n = collectionType.getAssociatedEntityName(sessionFactory);
CollectionMetadata collMetadata = sessionFactory.getCollectionMetadata(role);
if (collMetadata instanceof OneToManyPersister){
criteria.createAlias("representations", "r").add(Restrictions.like("r.text", text));
-
- criteria.setProjection(Projections.rowCount());
+ criteria.setProjection(Projections.rowCount());
- return (Integer)criteria.uniqueResult();
+ return ((Number)criteria.uniqueResult()).intValue();
}
@Override
criteria.createAlias("representations", "r").add(Restrictions.like("r.abbreviatedLabel", text));
- criteria.setProjection(Projections.rowCount());
+ criteria.setProjection(Projections.rowCount());
- return (Integer)criteria.uniqueResult();
+ return ((Number)criteria.uniqueResult()).intValue();
}
criteria.setProjection(Projections.rowCount());
- return (Integer)criteria.uniqueResult();
+ return ((Number)criteria.uniqueResult()).intValue();
} else {
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(NamedArea.class,auditEvent.getRevisionNumber());
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.util.Version;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import eu.etaxonomy.cdm.model.media.Rights;
import eu.etaxonomy.cdm.persistence.dao.QueryParseException;
import eu.etaxonomy.cdm.persistence.dao.common.IIdentifiableDao;
+import eu.etaxonomy.cdm.persistence.dao.hibernate.AlternativeSpellingSuggestionParser;
import eu.etaxonomy.cdm.persistence.query.MatchMode;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
protected String defaultField = "titleCache_tokenized";
protected Class<? extends T> indexedClasses[];
+
+
public IdentifiableDaoBase(Class<T> type) {
super(type);
}
public int count(Class<? extends T> clazz, String queryString) {
checkNotInPriorView("IdentifiableDaoBase.count(Class<? extends T> clazz, String queryString)");
- QueryParser queryParser = new QueryParser(defaultField , new StandardAnalyzer());
+ QueryParser queryParser = new QueryParser(version, defaultField , new StandardAnalyzer(version));
try {
org.apache.lucene.search.Query query = queryParser.parse(queryString);
public List<T> search(Class<? extends T> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,List<String> propertyPaths) {
checkNotInPriorView("IdentifiableDaoBase.search(Class<? extends T> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints,List<String> propertyPaths)");
- QueryParser queryParser = new QueryParser(defaultField, new StandardAnalyzer());
+ QueryParser queryParser = new QueryParser(version, defaultField, new StandardAnalyzer(version));
List<T> results = new ArrayList<T>();
try {
checkNotInPriorView("IdentifiableDaoBase.countByTitle(String queryString, CdmBase sessionObject)");
Criteria crit = session.createCriteria(type);
crit.add(Restrictions.ilike("titleCache", queryString));
- Integer result = (Integer)crit.setProjection(Projections.rowCount()).uniqueResult();
+ Integer result = ((Number)crit.setProjection(Projections.rowCount()).uniqueResult()).intValue();
return result;
}
}
- Integer result = (Integer)crit.setProjection(Projections.rowCount()).uniqueResult();
+ Integer result = ((Number)crit.setProjection(Projections.rowCount()).uniqueResult()).intValue();
return result;
}
Criteria criteria = getSession().createCriteria(Marker.class);\r
criteria.add(Restrictions.eq("markerType", markerType));\r
criteria.setProjection(Projections.rowCount());\r
- return (Integer) criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
}\r
\r
public List<Marker> list(MarkerType markerType, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
criteria.add(Restrictions.eq("markerType", markerType));\r
}\r
criteria.setProjection(Projections.rowCount());\r
- return (Integer) criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
}\r
\r
public List<Marker> list(User creator, MarkerType markerType, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(type,auditEvent.getRevisionNumber());\r
query.addProjection(AuditEntity.id().count("id"));\r
query.add(AuditEntity.relatedId("vocabulary").eq(termVocabulary.getId()));\r
- return (Integer)query.getSingleResult();\r
+ return ((Number)query.getSingleResult()).intValue();\r
}\r
}\r
\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
public abstract class VersionableDaoBase<T extends VersionableEntity> extends CdmEntityDaoBase<T> implements IVersionableDao<T> {\r
- @SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(VersionableDaoBase.class);\r
\r
protected AuditReader getAuditReader() {\r
\r
criteria.setProjection(Projections.rowCount());\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
if(features != null && !features.isEmpty()) {\r
Integer count = 0;\r
\r
inner.setProjection(Projections.countDistinct("id"));\r
\r
- return (Integer) inner.uniqueResult();\r
+ return ((Number) inner.uniqueResult()).intValue();\r
}\r
\r
public int countTaxonDescriptions(Taxon taxon, Set<Scope> scopes,Set<NamedArea> geographicalScopes, Set<MarkerType> markerTypes) {\r
\r
criteria.setProjection(Projections.rowCount());\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
if((scopes == null || scopes.isEmpty())&& (geographicalScopes == null || geographicalScopes.isEmpty()) && (markerTypes == null || markerTypes.isEmpty())) {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonDescription.class,auditEvent.getRevisionNumber());\r
\r
criteria.setProjection(Projections.rowCount());\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonNameDescription.class,auditEvent.getRevisionNumber());\r
\r
\r
Integer[] resultIds = new Integer[intermediateResult.size()];\r
for(int i = 0; i < resultIds.length; i++) {\r
- resultIds[i] = (Integer)intermediateResult.get(i);\r
+ resultIds[i] = ((Number)intermediateResult.get(i)).intValue();\r
}\r
\r
Criteria outer = null;\r
Integer[] resultIds = new Integer[intermediateResult.size()];\r
for(int i = 0; i < resultIds.length; i++) {\r
if(orderHints == null || orderHints.isEmpty()) {\r
- resultIds[i] = (Integer)intermediateResult.get(i);\r
+ resultIds[i] = ((Number)intermediateResult.get(i)).intValue();\r
} else {\r
- resultIds[i] = (Integer)((Object[])intermediateResult.get(i))[0];\r
+ resultIds[i] = ((Number)((Object[])intermediateResult.get(i))[0]).intValue();\r
}\r
}\r
\r
public int count(Class<? extends DescriptionElementBase> clazz, String queryString) {
checkNotInPriorView("DescriptionElementDaoImpl.countTextData(String queryString)");
- QueryParser queryParser = new QueryParser(defaultField, new StandardAnalyzer());
+ QueryParser queryParser = new QueryParser(version, defaultField, new StandardAnalyzer(version));
try {
org.apache.lucene.search.Query query = queryParser.parse(queryString);
public List<DescriptionElementBase> search(Class<? extends DescriptionElementBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
checkNotInPriorView("DescriptionElementDaoImpl.searchTextData(String queryString, Integer pageSize, Integer pageNumber)");
- QueryParser queryParser = new QueryParser(defaultField, new StandardAnalyzer());
+ QueryParser queryParser = new QueryParser(version, defaultField, new StandardAnalyzer(version));
try {
org.apache.lucene.search.Query query = queryParser.parse(queryString);
public int count(String queryString) {
checkNotInPriorView("DescriptionElementDaoImpl.count(String queryString)");
- QueryParser queryParser = new QueryParser(defaultField, new StandardAnalyzer());
+ QueryParser queryParser = new QueryParser(version, defaultField, new StandardAnalyzer(version));
try {
org.apache.lucene.search.Query query = queryParser.parse(queryString);
\r
criteria.setProjection(Projections.countDistinct("id"));\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
if((taxonomicScope == null || taxonomicScope.isEmpty()) && (geoScopes == null || geoScopes.isEmpty())) {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(MediaKey.class,auditEvent.getRevisionNumber());\r
@Qualifier("taxonNameDaoHibernateImpl")\r
public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonNameBase> implements ITaxonNameDao {\r
\r
- @SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(TaxonNameDaoHibernateImpl.class);\r
\r
@Autowired\r
}\r
criteria.setProjection(Projections.projectionList().add(Projections.rowCount()));\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
}\r
\r
public int countNames(String queryString, MatchMode matchMode, List<Criterion> criteria) {\r
}\r
\r
crit.setProjection(Projections.projectionList().add(Projections.rowCount()));\r
- return (Integer)crit.uniqueResult();\r
+ return ((Number)crit.uniqueResult()).intValue();\r
}\r
\r
public int countNames(String genusOrUninomial, String infraGenericEpithet, String specificEpithet, String infraSpecificEpithet, Rank rank) {\r
}\r
\r
criteria.setProjection(Projections.rowCount());\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(TaxonNameBase.class,auditEvent.getRevisionNumber());\r
\r
return persistentObject.getUuid();\r
}\r
\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao#getZoologicalNames(java.lang.Integer, java.lang.Integer)\r
+ */\r
+ //TODO candidate for harmonization\r
public List<ZoologicalName> getZoologicalNames(Integer limit, Integer start){\r
List <TaxonNameBase> names = new ArrayList<TaxonNameBase>();\r
List <ZoologicalName> zooNames = new ArrayList<ZoologicalName>();\r
}\r
\r
criteria.setProjection(Projections.rowCount());\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(DeterminationEvent.class,auditEvent.getRevisionNumber());\r
\r
\r
criteria.createCriteria("determinations").add(Restrictions.eq("taxon", determinedAs));\r
criteria.setProjection(Projections.projectionList().add(Projections.rowCount()));\r
- return (Integer) criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
}\r
\r
/* (non-Javadoc)\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.persistence.dao.hibernate.AlternativeSpellingSuggestionParser;\r
\r
-@Component\r
+//spelling support currently disabled in appcontext, see spelling.xml ... " \r
+//@Component\r
public class TaxonAlternativeSpellingSuggestionParser extends AlternativeSpellingSuggestionParser<TaxonBase> {\r
\r
public TaxonAlternativeSpellingSuggestionParser() {\r
import java.util.Collection;\r
import java.util.Collections;\r
import java.util.Comparator;\r
-import java.util.HashMap;\r
import java.util.HashSet;\r
import java.util.Iterator;\r
import java.util.List;\r
import java.util.TreeSet;\r
import java.util.UUID;\r
\r
-import org.apache.log4j.Level;\r
import org.apache.log4j.Logger;\r
import org.apache.lucene.queryParser.ParseException;\r
import org.hibernate.Criteria;\r
import org.springframework.dao.DataAccessException;\r
import org.springframework.stereotype.Repository;\r
\r
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
import eu.etaxonomy.cdm.model.common.LSID;\r
import eu.etaxonomy.cdm.model.common.OriginalSourceBase;\r
import eu.etaxonomy.cdm.model.common.RelationshipBase;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.name.TaxonNameComparator;\r
-import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
-import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;\r
\r
\r
/**\r
@Autowired\r
private ITaxonNameDao taxonNameDao;\r
\r
- @Autowired(required = false) //TODO switched of because it caused problems when starting CdmApplicationController\r
+// spelling support currently disabled in appcontext, see spelling.xml ... " \r
+// @Autowired(required = false) //TODO switched of because it caused problems when starting CdmApplicationController\r
public void setAlternativeSpellingSuggestionParser(AlternativeSpellingSuggestionParser<TaxonBase> alternativeSpellingSuggestionParser) {\r
this.alternativeSpellingSuggestionParser = alternativeSpellingSuggestionParser;\r
}\r
//differentiate taxa and synonyms\r
if (doTaxa && doSynonyms){\r
if (result[2].equals("synonym")) {\r
- resultObjects.add( new UuidAndTitleCache(Synonym.class, (UUID) result[0], (String)result[1]));\r
+ resultObjects.add( new UuidAndTitleCache(Synonym.class, (UUID) result[0], (String)result[1], (Boolean)result[3]));\r
}\r
else {\r
- resultObjects.add( new UuidAndTitleCache(Taxon.class, (UUID) result[0], (String)result[1]));\r
+ resultObjects.add( new UuidAndTitleCache(Taxon.class, (UUID) result[0], (String)result[1], (Boolean)result[3]));\r
}\r
}else if (doTaxa){\r
- resultObjects.add( new UuidAndTitleCache(Taxon.class, (UUID) result[0], (String)result[1]));\r
+ resultObjects.add( new UuidAndTitleCache(Taxon.class, (UUID) result[0], (String)result[1], (Boolean)result[3]));\r
}else if (doSynonyms){\r
- resultObjects.add( new UuidAndTitleCache(Synonym.class, (UUID) result[0], (String)result[1]));\r
+ resultObjects.add( new UuidAndTitleCache(Synonym.class, (UUID) result[0], (String)result[1], (Boolean)result[3]));\r
}\r
}\r
\r
}\r
\r
if (doTaxa && doSynonyms){\r
- if(synonyms.size()>0 && taxa.size()>0){\r
- if (doNotReturnFullEntities && !doCount ){\r
- // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
- hql = "select " + selectWhat + ", case when t.id in (:taxa) then 'taxon' else 'synonym' end" + " from %s t" + " where t.id in (:taxa) OR t.id in (:synonyms)";\r
- }else{\r
- hql = "select " + selectWhat + " from %s t" + " where t.id in (:taxa) OR t.id in (:synonyms)";\r
- }\r
- }else if (synonyms.size()>0 ){\r
- if (doNotReturnFullEntities && !doCount ){\r
- // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
- hql = "select " + selectWhat + ", 'synonym' from %s t" + " where t.id in (:synonyms)";\r
- } else {\r
- hql = "select " + selectWhat + " from %s t" + " where t.id in (:synonyms)";\r
- }\r
+ if(synonyms.size()>0 && taxa.size()>0){ \r
+ hql = "select " + selectWhat;\r
+ // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
+ // also return the computed isOrphaned flag\r
+ if (doNotReturnFullEntities && !doCount ){\r
+ hql += ", case when t.id in (:taxa) then 'taxon' else 'synonym' end, " + \r
+ " case when t.id in (:taxa) and t.taxonNodes is empty and t.relationsFromThisTaxon is empty and t.relationsToThisTaxon is empty then true else false end ";\r
+ }\r
+ hql += " from %s t " +\r
+ " where (t.id in (:taxa) OR t.id in (:synonyms)) "; \r
+ }else if (synonyms.size()>0 ){ \r
+ hql = "select " + selectWhat;\r
+ // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
+ // also return the computed isOrphaned flag\r
+ if (doNotReturnFullEntities && !doCount ){\r
+ hql += ", 'synonym', " + \r
+ " false ";\r
+ }\r
+ hql += " from %s t " +\r
+ " where t.id in (:synonyms) "; \r
+ \r
} else if (taxa.size()>0 ){\r
- if (doNotReturnFullEntities && !doCount ){\r
- // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
- hql = "select " + selectWhat + ", 'taxon' from %s t" + " where t.id in (:taxa) ";\r
- } else {\r
- hql = "select " + selectWhat + " from %s t" + " where t.id in (:taxa) ";\r
- }\r
+ hql = "select " + selectWhat;\r
+ // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
+ // also return the computed isOrphaned flag\r
+ if (doNotReturnFullEntities && !doCount ){\r
+ hql += ", 'taxon', " + \r
+ " case when t.taxonNodes is empty and t.relationsFromThisTaxon is empty and t.relationsToThisTaxon is empty then true else false end ";\r
+ }\r
+ hql += " from %s t " +\r
+ " where t.id in (:taxa) "; \r
+ \r
} else{\r
hql = "select " + selectWhat + " from %s t";\r
}\r
} else if(doTaxa){\r
- if (taxa.size()>0){\r
- if (doNotReturnFullEntities){\r
- hql = "select " + selectWhat + ", 'taxon' from %s t" + " where t.id in (:taxa)";\r
- }else{\r
- hql = "select " + selectWhat + " from %s t" + " where t.id in (:taxa)";\r
- }\r
+ if (taxa.size()>0){ \r
+ hql = "select " + selectWhat;\r
+ // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
+ // also return the computed isOrphaned flag\r
+ if (doNotReturnFullEntities){\r
+ hql += ", 'taxon', " + \r
+ " case when t.taxonNodes is empty and t.relationsFromThisTaxon is empty and t.relationsToThisTaxon is empty then true else false end ";\r
+ }\r
+ hql += " from %s t " +\r
+ " where t.id in (:taxa) "; \r
+ \r
}else{\r
hql = "select " + selectWhat + " from %s t";\r
}\r
} else if(doSynonyms){\r
if (synonyms.size()>0){\r
- if (doNotReturnFullEntities){\r
- hql = "select " + selectWhat + ", 'synonym' from %s t" + " where t.id in (:synonyms)";\r
- }else{\r
- hql = "select " + selectWhat + " from %s t" + " where t.id in (:synonyms)";\r
- }\r
+ \r
+ hql = "select " + selectWhat;\r
+ // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
+ // also return the computed isOrphaned flag\r
+ if (doNotReturnFullEntities){\r
+ hql += ", 'synonym', " + \r
+ " false ";\r
+ }\r
+ hql += " from %s t " +\r
+ " where t.id in (:synonyms) "; \r
}else{\r
hql = "select " + selectWhat + " from %s t";\r
}\r
} else if (doIncludeMisappliedNames){\r
-\r
- if (doNotReturnFullEntities){\r
- hql = "select " + selectWhat + ", 'taxon' from %s t" + " where t.id in (:taxa)";\r
- }else{\r
- hql = "select " + selectWhat + " from %s t" + " where t.id in (:taxa)";\r
- }\r
+ hql = "select " + selectWhat;\r
+ // in doNotReturnFullEntities mode it is nesscary to also return the type of the matching entities:\r
+ // also return the computed isOrphaned flag\r
+ if (doNotReturnFullEntities){\r
+ hql += ", 'taxon', " + \r
+ " case when t.taxonNodes is empty and t.relationsFromThisTaxon is empty and t.relationsToThisTaxon is empty then true else false end ";\r
+ }\r
+ hql += " from %s t " +\r
+ " where t.id in (:taxa) "; \r
+ \r
}\r
\r
String classString;\r
Criteria crit = getSession().createCriteria(type);\r
crit.add(Restrictions.ilike("titleCache", matchMode.queryStringFrom(queryString)));\r
crit.setProjection(Projections.rowCount());\r
- int result = ((Integer)crit.list().get(0)).intValue();\r
+ int result = ((Number)crit.list().get(0)).intValue();\r
return result;\r
}\r
\r
}\r
}\r
crit.setProjection(Projections.rowCount());\r
- int result = ((Integer)crit.list().get(0)).intValue();\r
+ int result = ((Number)crit.list().get(0)).intValue();\r
return result;\r
}\r
\r
criteria.add(Restrictions.eq("type", type));\r
}\r
criteria.setProjection(Projections.rowCount());\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(SynonymRelationship.class,auditEvent.getRevisionNumber());\r
query.add(AuditEntity.relatedId("relatedTo").eq(taxon.getId()));\r
}\r
\r
criteria.setProjection(Projections.rowCount());\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
} else {\r
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(SynonymRelationship.class,auditEvent.getRevisionNumber());\r
query.add(AuditEntity.relatedId("relatedFrom").eq(synonym.getId()));\r
\r
criteria.setProjection(Projections.projectionList().add(Projections.rowCount()));\r
\r
- return (Integer)criteria.uniqueResult();\r
+ return ((Number)criteria.uniqueResult()).intValue();\r
}\r
\r
/*\r
\r
@Override\r
public TaxonBase find(LSID lsid) {\r
- TaxonBase taxonBase = super.find(lsid);\r
+ TaxonBase<?> taxonBase = super.find(lsid);\r
if(taxonBase != null) {\r
List<String> propertyPaths = new ArrayList<String>();\r
propertyPaths.add("createdBy");\r
public List<TaxonBase> getTaxaByCommonName(String queryString,\r
Classification classification, MatchMode matchMode,\r
Set<NamedArea> namedAreas, Integer pageSize, Integer pageNumber) {\r
- // TODO Auto-generated method stub\r
+ logger.warn("getTaxaByCommonName not yet implemented.");\r
return null;\r
}\r
\r
\r
import org.apache.log4j.Logger;\r
import org.hibernate.HibernateException;\r
-import org.hibernate.event.SaveOrUpdateEvent;\r
-import org.hibernate.event.SaveOrUpdateEventListener;\r
+import org.hibernate.event.spi.SaveOrUpdateEvent;\r
+import org.hibernate.event.spi.SaveOrUpdateEventListener;\r
import org.joda.time.DateTime;\r
import org.springframework.security.core.Authentication;\r
import org.springframework.security.core.context.SecurityContextHolder;\r
import java.io.Serializable;
import org.apache.log4j.Logger;
-import org.hibernate.event.AbstractEvent;
-import org.hibernate.event.EventSource;
-import org.hibernate.event.PostDeleteEvent;
-import org.hibernate.event.PostInsertEvent;
-import org.hibernate.event.PostLoadEvent;
-import org.hibernate.event.PostUpdateEvent;
+import org.hibernate.event.spi.AbstractEvent;
+import org.hibernate.event.spi.EventSource;
+import org.hibernate.event.spi.PostDeleteEvent;
+import org.hibernate.event.spi.PostInsertEvent;
+import org.hibernate.event.spi.PostLoadEvent;
+import org.hibernate.event.spi.PostUpdateEvent;
import org.hibernate.persister.entity.EntityPersister;
import eu.etaxonomy.cdm.model.common.CdmBase;
\r
import org.apache.log4j.Logger;\r
import org.hibernate.HibernateException;\r
-import org.hibernate.engine.EntityEntry;\r
-import org.hibernate.engine.Status;\r
-import org.hibernate.event.DeleteEvent;\r
-import org.hibernate.event.DeleteEventListener;\r
+import org.hibernate.engine.spi.EntityEntry;\r
+import org.hibernate.engine.spi.Status;\r
+import org.hibernate.event.spi.DeleteEvent;\r
+import org.hibernate.event.spi.DeleteEventListener;\r
+\r
\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.common.IRelated;\r
import java.util.Set;
import org.apache.log4j.Logger;
-import org.hibernate.event.PostDeleteEvent;
-import org.hibernate.event.PostDeleteEventListener;
-import org.hibernate.event.PostInsertEvent;
-import org.hibernate.event.PostInsertEventListener;
-import org.hibernate.event.PostLoadEvent;
-import org.hibernate.event.PostLoadEventListener;
-import org.hibernate.event.PostUpdateEvent;
-import org.hibernate.event.PostUpdateEventListener;
+import org.hibernate.event.spi.PostDeleteEvent;
+import org.hibernate.event.spi.PostDeleteEventListener;
+import org.hibernate.event.spi.PostInsertEvent;
+import org.hibernate.event.spi.PostInsertEventListener;
+import org.hibernate.event.spi.PostLoadEvent;
+import org.hibernate.event.spi.PostLoadEventListener;
+import org.hibernate.event.spi.PostUpdateEvent;
+import org.hibernate.event.spi.PostUpdateEventListener;
import eu.etaxonomy.cdm.model.common.CdmBase;
\r
import org.apache.log4j.Logger;\r
import org.hibernate.HibernateException;\r
-import org.hibernate.event.SaveOrUpdateEvent;\r
-import org.hibernate.event.SaveOrUpdateEventListener;\r
+import org.hibernate.event.spi.SaveOrUpdateEvent;\r
+import org.hibernate.event.spi.SaveOrUpdateEventListener;\r
import org.joda.time.DateTime;\r
-import org.springframework.security.core.Authentication;\r
-import org.springframework.security.core.context.SecurityContextHolder;\r
\r
import eu.etaxonomy.cdm.model.common.ICdmBase;\r
\r
package eu.etaxonomy.cdm.persistence.hibernate;\r
\r
import org.hibernate.HibernateException;\r
-import org.hibernate.event.SaveOrUpdateEvent;\r
-import org.hibernate.event.SaveOrUpdateEventListener;\r
-\r
+import org.hibernate.event.spi.SaveOrUpdateEvent;\r
+import org.hibernate.event.spi.SaveOrUpdateEventListener;\r
import org.joda.time.DateTime;\r
import org.springframework.security.core.Authentication;\r
import org.springframework.security.core.context.SecurityContextHolder;\r
import eu.etaxonomy.cdm.model.common.VersionableEntity;\r
\r
\r
-\r
+@SuppressWarnings("serial")\r
public class SaveOrUpdateEntityListener implements SaveOrUpdateEventListener {\r
\r
public void onSaveOrUpdate(SaveOrUpdateEvent event)\r
*/
package eu.etaxonomy.cdm.persistence.hibernate;
-import java.io.Serializable;
import java.util.Properties;
import org.apache.log4j.Logger;
import org.hibernate.MappingException;
import org.hibernate.dialect.Dialect;
-import org.hibernate.engine.SessionImplementor;
import org.hibernate.type.Type;
/**
\r
import org.apache.log4j.Logger;\r
import org.hibernate.HibernateException;\r
-import org.hibernate.event.SaveOrUpdateEvent;\r
-import org.hibernate.event.SaveOrUpdateEventListener;\r
+import org.hibernate.event.spi.SaveOrUpdateEvent;\r
+import org.hibernate.event.spi.SaveOrUpdateEventListener;\r
import org.joda.time.DateTime;\r
import org.springframework.security.core.Authentication;\r
import org.springframework.security.core.context.SecurityContextHolder;\r
import org.hibernate.MappingException;
import org.hibernate.SessionFactory;
-import org.hibernate.impl.SessionFactoryImpl;
+import org.hibernate.internal.SessionFactoryImpl;
import org.hibernate.metadata.ClassMetadata;
import org.hibernate.type.AssociationType;
import org.hibernate.type.BagType;
public Set<ReferringObjectMetadata> get(Class<? extends CdmBase> toClass) {
if(!referringObjectMap.containsKey(toClass)) {
ClassMetadata toClassMetadata = sessionFactory.getClassMetadata(toClass);
- Map<Class,Set<String>> bidirectionalRelationships = new HashMap<Class,Set<String>>();
+ Map<Class<?>,Set<String>> bidirectionalRelationships = new HashMap<Class<?>,Set<String>>();
for(String propertyName : toClassMetadata.getPropertyNames()) {
Type propertyType = toClassMetadata.getPropertyType(propertyName);
if(propertyType.isAssociationType() && !propertyType.isAnyType()) {
try {
field = toClass.getDeclaredField(propertyName);
} catch(NoSuchFieldException nsfe) {
- Class superClass = toClass.getSuperclass();
+ Class<?> superClass = toClass.getSuperclass();
while(!superClass.equals(CdmBase.class)) {
try{
field = superClass.getDeclaredField(propertyName);
OneToMany oneToMany = field.getAnnotation(OneToMany.class);
if(oneToMany.mappedBy() != null && oneToMany.mappedBy().length() > 0) {
String associatedEntityName = associationType.getAssociatedEntityName((SessionFactoryImpl) sessionFactory.getCurrentSession().getSessionFactory());
- Class associatedEntity;
+ Class<?> associatedEntity;
try {
associatedEntity = Class.forName(associatedEntityName);
if(!bidirectionalRelationships.containsKey(associatedEntity)) {
}
}
- Map<Object,ClassMetadata> allClassMetadata = sessionFactory.getAllClassMetadata();
+ Map<String,ClassMetadata> allClassMetadata = sessionFactory.getAllClassMetadata();
Set<ReferringObjectMetadata> referringObjectMetadata = new HashSet<ReferringObjectMetadata>();
- for(Object fromClass : allClassMetadata.keySet()) {
- String entityName = (String) fromClass;
+ for(String entityName : allClassMetadata.keySet()) {
if(!entityName.endsWith("_AUD")) {
try {
// System.out.println(entityName);
- Class entityClass = Class.forName(entityName);
+ Class<?> entityClass = Class.forName(entityName);
ClassMetadata classMetadata = allClassMetadata.get(entityName);
for(String propertyName : classMetadata.getPropertyNames()) {
if(!propertyType.isAnyType()) {
try {
String associatedEntityName = associationType.getAssociatedEntityName((SessionFactoryImpl) sessionFactory.getCurrentSession().getSessionFactory());
- Class associatedClass = Class.forName(associatedEntityName);
+ Class<?> associatedClass = Class.forName(associatedEntityName);
if (associatedClass.isAssignableFrom(toClass)){
try {
import org.hibernate.Criteria;
-import org.hibernate.Hibernate;
import org.hibernate.criterion.CriteriaQuery;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
+import org.hibernate.type.IntegerType;
import org.hibernate.type.Type;
import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
if(resolution.equals(Resolution.YEAR)) {
StringBuffer selectSqlString = getYearSelect();
StringBuffer projectSqlString = getYearProjection();
- projectionList.add(Projections.sqlGroupProjection(selectSqlString.toString(), projectSqlString.toString(), new String[] {"year"}, new Type[] { Hibernate.INTEGER }),name);
+ projectionList.add(Projections.sqlGroupProjection(selectSqlString.toString(), projectSqlString.toString(), new String[] {"year"}, new Type[] { IntegerType.INSTANCE }),name);
} else if(resolution.equals(Resolution.MONTH)) {
StringBuffer selectSqlString = getYearMonthSelect();
StringBuffer projectSqlString = getYearMonthProjection();
- projectionList.add(Projections.sqlGroupProjection(selectSqlString.toString(), projectSqlString.toString(), new String[] {"year","month"}, new Type[] { Hibernate.INTEGER, Hibernate.INTEGER }),name);
+ projectionList.add(Projections.sqlGroupProjection(selectSqlString.toString(), projectSqlString.toString(), new String[] {"year","month"}, new Type[] { IntegerType.INSTANCE, IntegerType.INSTANCE }),name);
} else {
StringBuffer selectSqlString = getYearMonthDaySelect();
StringBuffer projectSqlString = getYearMonthDayProjection();
- projectionList.add(Projections.sqlGroupProjection(selectSqlString.toString(), projectSqlString.toString(), new String[] {"year","month", "day"}, new Type[] { Hibernate.INTEGER, Hibernate.INTEGER, Hibernate.INTEGER }),name);
+ projectionList.add(Projections.sqlGroupProjection(selectSqlString.toString(), projectSqlString.toString(), new String[] {"year","month", "day"}, new Type[] { IntegerType.INSTANCE, IntegerType.INSTANCE, IntegerType.INSTANCE }),name);
}
}
queryString = appendWildcard(queryString);\r
queryString = prependWildcard(queryString);\r
break;\r
+ default:\r
+ // Fall through for EXACT - Nothing to do //\r
+ break;\r
}\r
return queryString;\r
}\r
import org.hibernate.criterion.CriteriaQuery;
import org.hibernate.criterion.Order;
import org.hibernate.envers.query.AuditQuery;
-import org.hibernate.util.StringHelper;
+import org.hibernate.internal.util.StringHelper;
import eu.etaxonomy.cdm.persistence.dao.common.OperationNotSupportedInPriorViewException;
}
public class NativeSqlHibernateOrder extends Order {
+ private static final long serialVersionUID = 6439553377404790090L;
+
private String nativeSQL;
private Boolean ascending;
import org.hibernate.criterion.CriteriaQuery;
import org.hibernate.criterion.Order;
import org.hibernate.envers.query.AuditQuery;
-import org.hibernate.util.StringHelper;
+import org.hibernate.internal.util.StringHelper;
import eu.etaxonomy.cdm.persistence.dao.common.OperationNotSupportedInPriorViewException;
}
public class RandomHibernateOrder extends Order {
+ private static final long serialVersionUID = 8231534219451938847L;
+
protected RandomHibernateOrder() {
super(RandomOrder.PROPERTY_NAME, true);
criteriaQuery.getSQLAlias(criteria));
}
}
+
@Override
public void add(AuditQuery query) {
throw new OperationNotSupportedInPriorViewException("You cannot sort in a random order in the history view");
* This fixes #\r
*\r
*/\r
-public class CollectionChangeWorkUnit extends AbstractAuditWorkUnit implements AuditWorkUnit {\r
- private final Object entity;\r
-\r
- public CollectionChangeWorkUnit(String entityName, AuditConfiguration verCfg, Serializable id, Object entity) {\r
- super(entity.getClass().getCanonicalName(), verCfg, id);\r
-// OLD: super(entityName, verCfg, id);\r
-\r
- this.entity = entity;\r
- }\r
-\r
- public boolean containsWork() {\r
- return true;\r
- }\r
-\r
- public void perform(Session session, Object revisionData) {\r
- Map<String, Object> data = new HashMap<String, Object>();\r
- fillDataWithId(data, revisionData, RevisionType.MOD);\r
-\r
- verCfg.getEntCfg().get(getEntityName()).getPropertyMapper().mapToMapFromEntity(data, entity, null);\r
-\r
- session.save(verCfg.getAuditEntCfg().getAuditEntityName(getEntityName()), data);\r
-\r
- setPerformed(data);\r
- }\r
-\r
- public KeepCheckResult check(AddWorkUnit second) {\r
- return KeepCheckResult.SECOND;\r
- }\r
-\r
- public KeepCheckResult check(ModWorkUnit second) {\r
- return KeepCheckResult.SECOND;\r
- }\r
-\r
- public KeepCheckResult check(DelWorkUnit second) {\r
- return KeepCheckResult.SECOND;\r
- }\r
-\r
- public KeepCheckResult check(CollectionChangeWorkUnit second) {\r
- return KeepCheckResult.FIRST;\r
- }\r
-\r
- public KeepCheckResult dispatch(KeepCheckVisitor first) {\r
- return first.check(this);\r
- }\r
-}\r
+//public class CollectionChangeWorkUnit extends AbstractAuditWorkUnit implements AuditWorkUnit {\r
+// private final Object entity;\r
+//\r
+// private xx;\r
+// //TODO is this class still needed? It overrides an old envers class. Maybe fixed in current envers version. \r
+// \r
+// public CollectionChangeWorkUnit(String entityName, AuditConfiguration verCfg, Serializable id, Object entity) {\r
+// super(entity.getClass().getCanonicalName(), verCfg, id);\r
+//// OLD: super(entityName, verCfg, id);\r
+//\r
+// this.entity = entity;\r
+// }\r
+//\r
+// public boolean containsWork() {\r
+// return true;\r
+// }\r
+//\r
+// public void perform(Session session, Object revisionData) {\r
+// Map<String, Object> data = new HashMap<String, Object>();\r
+// fillDataWithId(data, revisionData, RevisionType.MOD);\r
+//\r
+// verCfg.getEntCfg().get(getEntityName()).getPropertyMapper().mapToMapFromEntity(data, entity, null);\r
+//\r
+// session.save(verCfg.getAuditEntCfg().getAuditEntityName(getEntityName()), data);\r
+//\r
+// setPerformed(data);\r
+// }\r
+//\r
+// public KeepCheckResult check(AddWorkUnit second) {\r
+// return KeepCheckResult.SECOND;\r
+// }\r
+//\r
+// public KeepCheckResult check(ModWorkUnit second) {\r
+// return KeepCheckResult.SECOND;\r
+// }\r
+//\r
+// public KeepCheckResult check(DelWorkUnit second) {\r
+// return KeepCheckResult.SECOND;\r
+// }\r
+//\r
+// public KeepCheckResult check(CollectionChangeWorkUnit second) {\r
+// return KeepCheckResult.FIRST;\r
+// }\r
+//\r
+// public KeepCheckResult dispatch(KeepCheckVisitor first) {\r
+// return first.check(this);\r
+// }\r
+//}\r
<props>\r
<prop key="hibernate.hbm2ddl.auto">create</prop>\r
<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.search.autoregister_listeners">false</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
<?xml version="1.0" encoding="UTF-8"?>\r
<!DOCTYPE hibernate-configuration PUBLIC\r
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"\r
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">\r
+ "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">\r
\r
<hibernate-configuration>\r
<session-factory>\r
<property name="connection.release_mode">after_transaction</property>\r
\r
<!-- Connection Pooling -->\r
- <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>\r
+<!-- <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider</property> -->\r
+ <property name="hibernate.connection.provider_class">org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl</property>\r
<!--\r
Configuring the C3P0ConnectionProvider\r
========================================\r
\r
IMPORTANT:\r
Because of the constraint (1) the org.hibernate.connection.C3P0ConnectionProvider are not be used\r
- for the cdm library because it requires the dataSource bean in some cases.\r
+ for the Cdm Library because it requires the dataSource bean in some cases.\r
\r
(1)\r
Do NOT specify the dataSource in the sessionFactory for example in the\r
avoid meaningless double configuration.\r
(2)\r
Hibernate uses the hibernate.c3p0.max_size property to determine if c3p0\r
- is begin used. Therefore the max_size property MUST be set. - maybe not need in hibernate 3.4 +\r
+ is beeing used. Therefore the max_size property MUST be set. - maybe not need in hibernate 3.4 +\r
\r
(3) If you are using Hibernate's C3P0ConnectionProvider you must set the following properties\r
in your hibernate configuration, using hibernate-specific configuration keys.\r
<mapping class="eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase"/>\r
<!-- Reference Package -->\r
<mapping class="eu.etaxonomy.cdm.model.reference.Reference"/>\r
- <!--\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Article"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Book"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.BookSection"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.CdDvd"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Database"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Generic"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.InProceedings"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Journal"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Map"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Patent"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.PersonalCommunication"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.PrintedUnitBase"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.PrintSeries"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Proceedings"/>\r
\r
-\r
- <mapping class="eu.etaxonomy.cdm.model.reference.ReferenceIdentity"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Report"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.SectionBase"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.Thesis"/>\r
- <mapping class="eu.etaxonomy.cdm.model.reference.WebPage"/>\r
- -->\r
<!-- Taxon Package -->\r
<mapping class="eu.etaxonomy.cdm.model.taxon.Synonym"/>\r
<mapping class="eu.etaxonomy.cdm.model.taxon.SynonymRelationship"/>\r
<props>\r
<prop key="hibernate.hbm2ddl.auto">create</prop>\r
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.search.autoregister_listeners">false</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
">
- <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
+ <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" depends-on="tableGeneratorGlobalOverride">
+ <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" depends-on="tableGeneratorGlobalOverride">
<property name="namingStrategy">
<bean class="org.hibernate.cfg.DefaultComponentSafeNamingStrategy" />
</property>
-<!-- <property name="entityInterceptor">
+<!-- <property name="entityInterceptor">
<bean class="eu.etaxonomy.cdm.persistence.hibernate.CdmHibernateInterceptor" />
</property>
- -->
+-->
<property name="configLocation" value="classpath:eu/etaxonomy/cdm/hibernate.cfg.xml"/>
- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>
+
+<!-- Looks like this is not needed anymore for hibernate 4 -->
+<!-- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/> -->
+
<!--
If dataSource is set, this will override corresponding settings in Hibernate properties.
If this is set, the Hibernate settings should not define a connection provider to
see also org.springframework.orm.hibernate3.AbstractSessionFactoryBean.setDataSource(DataSource dataSource)
-->
<property name="dataSource" ref="dataSource"/>
+
<property name="hibernateProperties" ref="hibernateProperties"/>
</bean>
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd\r
">\r
\r
- <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">\r
+ <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">\r
<property name="sessionFactory" ref="sessionFactory" />\r
</bean>\r
\r
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean" depends-on="tableGeneratorGlobalOverride">\r
+ <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean" depends-on="tableGeneratorGlobalOverride">\r
<property name="namingStrategy">\r
<bean class="org.hibernate.cfg.DefaultComponentSafeNamingStrategy" />\r
</property>\r
<property name="entityInterceptor" ref="securityHibernateInterceptor" />\r
\r
<property name="configLocation" value="classpath:eu/etaxonomy/cdm/hibernate.cfg.xml"/>\r
- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/>\r
+ \r
+ <!-- Looks like this is not needed anymore for hibernate 4 -->\r
+<!-- <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration"/> -->\r
+ \r
<!--\r
If dataSource is set, this will override corresponding settings in Hibernate properties.\r
If this is set, the Hibernate settings should not define a connection provider to\r
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd\r
">\r
\r
- <bean id="taxonSpellingDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">\r
- <!-- TODO location -->\r
+<!-- We do not use spelling suggestions anymore. This one relates to springmodules which is -->\r
+<!-- somewhat outdated. Once we work again with spelling suggestions we better use a modern -->\r
+<!-- approache, e.g. annotation based. -->\r
+ <!-- <bean id="taxonSpellingDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">\r
+ TODO location\r
<property name="location" value="file:./target/test-classes/eu.etaxonomy.cdm.model.taxon.TaxonBase_spelling"/>\r
-<!-- <property name="location" value="file:\\C:\localCopy\eclipse\cdmlib\cdmlib-persistence\target\test-classes\eu.etaxonomy.cdm.model.taxon.TaxonBase_spelling"/>-->\r
-<!-- <property name="location" value="file:\\C:\tmpXXX\eu.etaxonomy.cdm.model.taxon.TaxonBase_spelling"/>-->\r
- \r
<property name="create" value="false"/>\r
</bean>\r
\r
<property name="analyzer">\r
<bean class="org.apache.lucene.analysis.SimpleAnalyzer"/>\r
</property>\r
- </bean>\r
+ </bean> -->\r
\r
\r
</beans>\r
import java.util.Properties;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.cache.CacheProvider;\r
-import org.hibernate.cache.NoCacheProvider;\r
+import org.hibernate.cache.internal.NoCachingRegionFactory;\r
+import org.hibernate.cache.spi.RegionFactory;\r
import org.junit.After;\r
import org.junit.AfterClass;\r
import org.junit.Before;\r
Properties properties = (Properties)propValue.getValue();\r
assertEquals(hbm2dll.toString(), properties.getProperty("hibernate.hbm2ddl.auto"));\r
assertEquals(dataSource.getDatabaseType().getHibernateDialect(), properties.getProperty("hibernate.dialect"));\r
- assertEquals(NoCacheProvider.class.getName(), properties.getProperty("hibernate.cache.provider_class"));\r
+ assertEquals(NoCachingRegionFactory.class.getName(), properties.getProperty("hibernate.cache.region.factory_class"));\r
assertEquals(String.valueOf(false), properties.getProperty("hibernate.show_sql"));\r
assertEquals(String.valueOf(false), properties.getProperty("hibernate.format_sql"));\r
\r
boolean showSql = false;\r
boolean formatSql = false;\r
boolean registerSearchListener = false;\r
- Class<? extends CacheProvider> cacheProviderClass = NoCacheProvider.class;\r
+ Class<? extends RegionFactory> cacheProviderClass = NoCachingRegionFactory.class;\r
\r
BeanDefinition beanDef = dataSource.getHibernatePropertiesBean(hbm2dll, showSql, formatSql, registerSearchListener, cacheProviderClass);\r
PropertyValues propValues = beanDef.getPropertyValues();\r
Properties properties = (Properties)propValue.getValue();\r
assertEquals(hbm2dll.toString(), properties.getProperty("hibernate.hbm2ddl.auto"));\r
assertEquals(dataSource.getDatabaseType().getHibernateDialect(), properties.getProperty("hibernate.dialect"));\r
- assertEquals(cacheProviderClass.getName(), properties.getProperty("hibernate.cache.provider_class"));\r
+ assertEquals(cacheProviderClass.getName(), properties.getProperty("hibernate.cache.region.factory_class"));\r
assertEquals(String.valueOf(showSql), properties.getProperty("hibernate.show_sql"));\r
assertEquals(String.valueOf(formatSql), properties.getProperty("hibernate.format_sql"));\r
}\r
import java.util.UUID;\r
\r
import org.hibernate.Hibernate;\r
-import org.hibernate.collection.PersistentCollection;\r
-import org.hibernate.envers.entities.mapper.relation.lazy.proxy.CollectionProxy;\r
-import org.hibernate.envers.entities.mapper.relation.lazy.proxy.MapProxy;\r
-import org.hibernate.proxy.HibernateProxy;\r
import org.junit.After;\r
import org.junit.Before;\r
import org.junit.Ignore;\r
import eu.etaxonomy.cdm.model.view.context.AuditEventContextHolder;\r
import eu.etaxonomy.cdm.persistence.dao.description.IDescriptionElementDao;\r
import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;\r
-import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;\r
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
@DataSet\r
@Ignore //TODO indexing does not work at all, even before the unitils upgrade\r
public class FreeTextSearchIntegration extends CdmTransactionalIntegrationTest {\r
\r
+ @SuppressWarnings("unused")\r
private static Log log = LogFactory.getLog(FreeTextSearchIntegration.class);\r
\r
@SpringBeanByType\r
}\r
\r
@Test\r
+ @Ignore //we currently don't use suggest anymore\r
public void testSuggestSingleTerm() {\r
String suggestion = taxonDao.suggestQuery("Aram");\r
assertNotNull("suggestQuery should return a String",suggestion);\r
}\r
\r
@Test\r
+ @Ignore //we currently don't use suggest anymore\r
public void testSuggestSingleTermInCompositeQuery() {\r
String suggestion = taxonDao.suggestQuery("Aram italicum");\r
assertNotNull("suggestQuery should return a String",suggestion);\r
}\r
\r
@Test\r
+ @Ignore //we currently don't use suggest anymore\r
public void testSuggestMultipleTermsInCompositeQuery() {\r
String suggestion = taxonDao.suggestQuery("Aram italocum");\r
assertNotNull("suggestQuery should return a String",suggestion);\r
}\r
\r
@Test\r
+ @Ignore //we currently don't use suggest anymore\r
public void testSuggestMultipleTermsInCompositeQueryWithAnd() {\r
String suggestion = taxonDao.suggestQuery("Aram AND italocum");\r
assertNotNull("suggestQuery should return a String",suggestion);\r
import java.util.List;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.junit.After;\r
import org.junit.Before;\r
-import org.junit.Ignore;\r
import org.junit.Test;\r
-import org.springframework.test.context.transaction.TransactionConfiguration;\r
import org.unitils.dbunit.annotation.DataSet;\r
import org.unitils.dbunit.annotation.ExpectedDataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;\r
import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.agent.Team;\r
+import eu.etaxonomy.cdm.model.common.TimePeriod;\r
import eu.etaxonomy.cdm.model.view.AuditEvent;\r
import eu.etaxonomy.cdm.model.view.context.AuditEventContextHolder;\r
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao;\r
assert person != null : "person must exist";\r
person.setFirstname("Benjamin");\r
agentDao.update(person);\r
- setComplete();\r
- endTransaction();\r
+// commitAndStartNewTransaction(new String[]{"AGENTBASE_AUD","AGENTBASE"});\r
+ commit();\r
}\r
\r
@Test\r
import java.util.List;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
-\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.springframework.security.authentication.AuthenticationManager;\r
import org.springframework.security.authentication.TestingAuthenticationToken;\r
import org.springframework.security.core.Authentication;\r
-import org.springframework.security.core.context.SecurityContext;\r
import org.springframework.security.core.context.SecurityContextHolder;\r
import org.springframework.security.core.context.SecurityContextImpl;\r
-import org.unitils.database.annotations.Transactional;\r
-import org.unitils.database.util.TransactionMode;\r
import org.unitils.dbunit.annotation.DataSet;\r
import org.unitils.dbunit.annotation.ExpectedDataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
-import eu.etaxonomy.cdm.database.EvaluationFailedException;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;\r
-import eu.etaxonomy.cdm.model.common.User;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.persistence.dao.common.IUserDao;\r
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
import eu.etaxonomy.cdm.persistence.query.RandomOrder;\r
-import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTestWithSecurity;\r
\r
/**\r
\r
private static final UUID UUID_USER_BEN = UUID.fromString("dbac0f20-07f2-11de-8c30-0800200c9a66");\r
private UUID uuid;\r
- private TaxonBase cdmBase;\r
+ private TaxonBase<?> cdmBase;\r
\r
@SpringBeanByType\r
private ITaxonDao cdmEntityDaoBase;\r
@DataSet("CdmEntityDaoBaseTest.xml")\r
@ExpectedDataSet\r
public void testSaveOrUpdate() {\r
- TaxonBase cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
+ TaxonBase<?> cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
cdmBase.setDoubtful(true);\r
cdmEntityDaoBase.saveOrUpdate(cdmBase);\r
+ commit();\r
}\r
\r
/**\r
public void testSaveOrUpdateWithAuthentication() {\r
\r
setAuthentication(taxonEditorToken);\r
- TaxonBase cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
+ TaxonBase<?> cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
cdmBase.setDoubtful(true);\r
cdmEntityDaoBase.saveOrUpdate(cdmBase);\r
+ commit();\r
}\r
\r
/**\r
@ExpectedDataSet\r
public void testSave() throws Exception {\r
cdmEntityDaoBase.save(cdmBase);\r
+ commit();\r
}\r
\r
\r
@DataSet("CdmEntityDaoBaseTest.xml")\r
@ExpectedDataSet\r
public void testUpdate() {\r
- TaxonBase cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
+ TaxonBase<?> cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
cdmBase.setDoubtful(true);\r
cdmEntityDaoBase.update(cdmBase);\r
+ commit();\r
}\r
\r
@Test\r
public void testUpdateWithAuthentication() {\r
\r
setAuthentication(taxonEditorToken);\r
- TaxonBase cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
+ TaxonBase<?> cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
cdmBase.setDoubtful(true);\r
RuntimeException securityException = null;\r
try {\r
@DataSet("CdmEntityDaoBaseTest.xml")\r
@ExpectedDataSet\r
public void testDelete() {\r
- TaxonBase cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
+ TaxonBase<?> cdmBase = cdmEntityDaoBase.findByUuid(uuid);\r
assertNotNull(cdmBase);\r
cdmEntityDaoBase.delete(cdmBase);\r
}\r
@Test
public void getLanguageByIso2() {
Language lang = dao.getLanguageByIso("arm");
+ assertNotNull(lang);
assertEquals("getLanguageByIso should return the correct Language instance",lang.getUuid(), armUuid);
}
@Test
public void getLanguageByIso1() {
Language lang = dao.getLanguageByIso("hy");
+ assertNotNull(lang);
assertEquals("getLanguageByIso should return the correct Language instance",lang.getUuid(), armUuid);
}
@Test\r
public void testGetByLsidWithoutVersion() throws Exception {\r
LSID lsid = new LSID("urn:lsid:example.org:namespace:1");\r
- TaxonBase result = identifiableDao.find(lsid);\r
+ TaxonBase<?> result = identifiableDao.find(lsid);\r
assertNotNull(result);\r
}\r
\r
@Test\r
public void testGetByLsidWithVersionCurrent() throws Exception {\r
LSID lsid = new LSID("urn:lsid:example.org:namespace:1:2");\r
- TaxonBase result = identifiableDao.find(lsid);\r
+ TaxonBase<?> result = identifiableDao.find(lsid);\r
assertNotNull(result);\r
}\r
\r
@Test\r
public void testGetByLsidWithVersionPast() throws Exception {\r
LSID lsid = new LSID("urn:lsid:example.org:namespace:1:1");\r
- TaxonBase result = identifiableDao.find(lsid);\r
+ TaxonBase<?> result = identifiableDao.find(lsid);\r
assertNotNull(result);\r
}\r
\r
import java.util.Set;
import java.util.UUID;
-import junit.framework.Assert;
-
import org.hibernate.Hibernate;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
-import org.unitils.database.annotations.Transactional;
-import org.unitils.database.util.TransactionMode;
import org.unitils.dbunit.annotation.DataSet;
import org.unitils.spring.annotation.SpringBeanByType;
import eu.etaxonomy.cdm.model.description.TextData;
import eu.etaxonomy.cdm.model.location.NamedArea;
import eu.etaxonomy.cdm.model.media.Media;
-import eu.etaxonomy.cdm.model.name.BotanicalName;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;
import eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao;
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;
import eu.etaxonomy.cdm.persistence.query.OrderHint;
import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;
-import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
@DataSet
@Test
public void testCountDescriptionElements() {
- DescriptionBase description = descriptionDao.findByUuid(uuid);
+ DescriptionBase<?> description = descriptionDao.findByUuid(uuid);
assert description != null : "description must exist";
int numberOfDescriptionElements = descriptionDao.countDescriptionElements(description, null, TextData.class);
@Test
public void testGetDescriptionElements() {
- DescriptionBase description = descriptionDao.findByUuid(uuid);
+ DescriptionBase<?> description = descriptionDao.findByUuid(uuid);
assert description != null : "description must exist";
List<String> propertyPaths = new ArrayList<String>();
propertyPaths.add("multilanguageText");
propertyPaths.add("media");
- propertyPaths.add("citation");
propertyPaths.add("feature");
- propertyPaths.add("sources");
+ propertyPaths.add("sources.citation");
List<DescriptionElementBase> elements = descriptionDao.getDescriptionElements(description, null, TextData.class, null, null,propertyPaths);
@Test
public void testCountDescriptionElementsFeature() {
features.add(Feature.ECOLOGY());
- DescriptionBase description = descriptionDao.findByUuid(uuid);
+ DescriptionBase<?> description = descriptionDao.findByUuid(uuid);
assert description != null : "description must exist";
int numberOfDescriptionElements = descriptionDao.countDescriptionElements(description, features, TextData.class);
@Test
public void testGetDescriptionElementsByFeature() {
features.add(Feature.ECOLOGY());
- DescriptionBase description = descriptionDao.findByUuid(uuid);
+ DescriptionBase<?> description = descriptionDao.findByUuid(uuid);
assert description != null : "description must exist";
List<DescriptionElementBase> elements = descriptionDao.getDescriptionElements(description, features, TextData.class, null, null,null);
import java.util.List;
import java.util.UUID;
-import junit.framework.Assert;
-
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.unitils.dbunit.annotation.DataSet;
import eu.etaxonomy.cdm.model.description.IIdentificationKey;
import eu.etaxonomy.cdm.model.description.MediaKey;
-import eu.etaxonomy.cdm.model.description.MultiAccessKey;
import eu.etaxonomy.cdm.model.description.PolytomousKey;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.persistence.dao.description.IIdentificationKeyDao;
package eu.etaxonomy.cdm.persistence.dao.hibernate.media;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
import java.net.URI;
import java.net.URISyntaxException;
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;
import eu.etaxonomy.cdm.persistence.dao.media.IMediaRepresentationPartDao;
-import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
-//import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
+import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
@DataSet
-public class MediaRepresentationPartDaoImplTest extends /*CdmTransactionalIntegrationTest*/CdmIntegrationTest {
+public class MediaRepresentationPartDaoImplTest extends CdmTransactionalIntegrationTest {
@SpringBeanByType
IMediaRepresentationPartDao dao;
try {
MediaRepresentationPart part3 = dao.findByUuid(UUID.fromString("b48a0f26-2f42-3ce3-8a04-dd98feaa8e98"));
-// Assert.assertEquals("part URI should be http://www.test2.de", new URI("http://www.test2.de"), part3.getUri());
+ Assert.assertEquals("part URI should be http://www.test2.de", new URI("http://www.test2.de"), part3.getUri());
Assert.fail("A TypeMismatchException should occurr for http://www.fail.de");
} catch (Exception e) {
if (e instanceof TypeMismatchException){
MediaRepresentation representation = MediaRepresentation.NewInstance();
representation.addRepresentationPart(part1);
dao.save(part1);
-
-// TaxonNameBase name = nameService.find(UUID.fromString("5d74500b-9fd5-4d18-b9cd-cc1c8a372fec"));
-// System.out.println(name.getRank().getLabel());
-// setComplete();
-// endTransaction();
-// try {
-// printDataSet(System.out, new String[]{"MediaRepresentationPart"});
-// } catch(Exception e) {
-// logger.warn(e);
-// }
-
-
+ commit();
} catch (URISyntaxException e) {
Assert.fail("URI should be ok");
--- /dev/null
+package eu.etaxonomy.cdm.persistence.dao.hibernate.molecular;\r
+\r
+import java.util.Set;\r
+import java.util.UUID;\r
+\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.BeforeClass;\r
+import org.junit.Test;\r
+import org.unitils.spring.annotation.SpringBeanByType;\r
+\r
+import eu.etaxonomy.cdm.model.molecular.DnaSample;\r
+import eu.etaxonomy.cdm.model.molecular.GenBankAccession;\r
+import eu.etaxonomy.cdm.model.molecular.Locus;\r
+import eu.etaxonomy.cdm.model.molecular.Sequence;\r
+import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;\r
+import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
+\r
+public class MolecularHibernateImplTest extends CdmTransactionalIntegrationTest {\r
+\r
+ final static UUID uuidSample1 = UUID.fromString("4b451275-655f-40d6-8d4b-0203574bef15");\r
+ \r
+ @SpringBeanByType\r
+ private IOccurrenceDao occurrenceDao;\r
+ \r
+ @BeforeClass\r
+ public static void setUpBeforeClass() throws Exception {\r
+ }\r
+\r
+ @Before\r
+ public void setUp() throws Exception {\r
+ }\r
+\r
+//**************** TESTS ************************************************ \r
+ \r
+ //Test if DnaSample can be loaded and if Sequence, Locus and GenBankAccession data can \r
+ //be lazy loaded from database\r
+ //#3340\r
+ @Test\r
+ public void testLazyLoadSequenceLocusGenbankaccession() {\r
+ createTestData();\r
+ DnaSample sample1 = (DnaSample)occurrenceDao.findByUuid(uuidSample1);\r
+ Set<Sequence> sequences = sample1.getSequences();\r
+ \r
+ Sequence sequence = sequences.iterator().next();\r
+ Locus locus = sequence.getLocus();\r
+ Assert.assertEquals("Locus", locus.getName());\r
+ Set<GenBankAccession> accessions = sequence.getGenBankAccession();\r
+ GenBankAccession accession = accessions.iterator().next();\r
+ Assert.assertEquals("123", accession.getAccessionNumber());\r
+ commit();\r
+ }\r
+\r
+ private void createTestData(){\r
+ DnaSample sample = DnaSample.NewInstance();\r
+ Sequence sequence = Sequence.NewInstance("Meine Sequence");\r
+ sample.addSequences(sequence);\r
+ sample.setUuid(uuidSample1);\r
+ \r
+ Locus locus = Locus.NewInstance("Locus", null);\r
+ sequence.setLocus(locus);\r
+ \r
+ GenBankAccession accession = GenBankAccession.NewInstance("123");\r
+ sequence.addGenBankAccession(accession);\r
+ \r
+ occurrenceDao.save(sample);\r
+ commitAndStartNewTransaction(new String[]{"DnaSample", "SpecimenOrObservationBase", "Locus"});\r
+ }\r
+ \r
+\r
+}\r
\r
@Test\r
public void testCountNames() {\r
- System.out.println("count");\r
int count = taxonNameDao.countNames("Atropos", null, null, null, Rank.GENUS());\r
\r
assertEquals("countNames should return 3",3,count);\r
includedProperties.add("specificEpithet");\r
includedProperties.add("infraSpecificEpithet");\r
includedProperties.add("rank");\r
- System.out.println("countByExample");\r
int count = taxonNameDao.count(zoologicalName,includedProperties);\r
\r
assertEquals("countNames should return 3",3,count);\r
\r
package eu.etaxonomy.cdm.persistence.dao.hibernate.name;\r
\r
-import static junit.framework.Assert.assertNotNull;\r
+import static org.junit.Assert.assertNotNull;\r
import static org.junit.Assert.assertEquals;\r
import static org.junit.Assert.assertTrue;\r
\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Assert;\r
-import org.junit.Ignore;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
import org.unitils.dbunit.annotation.ExpectedDataSet;\r
}\r
Set<TaxonNameBase> names = specTypeDesig.getTypifiedNames();\r
Assert.assertEquals("There should be exactly 1 typified name for the the specimen type designation", 1, names.size());\r
- TaxonNameBase singleName = names.iterator().next();\r
+ TaxonNameBase<?,?> singleName = names.iterator().next();\r
Assert.assertEquals("", UUID.fromString("61b1dcae-8aa6-478a-bcd6-080cf0eb6ad7"), singleName.getUuid());\r
}\r
\r
}\r
}\r
\r
- TaxonNameBase newName = BotanicalName.NewInstance(Rank.SPECIES());\r
+ TaxonNameBase<?,?> newName = BotanicalName.NewInstance(Rank.SPECIES());\r
newName.setUuid(UUID.fromString("c16c3bc5-d3d0-4676-91a1-848ebf011e7c"));\r
newName.setTitleCache("Name used as typified name", true);\r
newName.addTypeDesignation(specTypeDesig, false);\r
SpecimenTypeDesignation desig1 = SpecimenTypeDesignation.NewInstance();\r
desig1.setUuid(UUID.fromString("a1b8af89-b724-469b-b0ce-027c2199aadd"));\r
\r
- TaxonNameBase name = BotanicalName.NewInstance(Rank.SPECIES());\r
+ TaxonNameBase<?,?> name = BotanicalName.NewInstance(Rank.SPECIES());\r
name.setUuid(UUID.fromString("503d78dc-5d4c-4eb6-b682-0ab90fdee02c"));\r
name.setTitleCache("Name saved via cascade", true);\r
name.addTypeDesignation(desig1, false);\r
\r
typeDesignationDao.saveOrUpdate(desig1);\r
+ commit();\r
}\r
\r
@Test\r
// 2. new TypeDesignation with uuid ceca086e-e8d3-444e-abfb-c47f76835130\r
SpecimenTypeDesignation desig1 = SpecimenTypeDesignation.NewInstance();\r
desig1.setUuid(UUID.fromString("ceca086e-e8d3-444e-abfb-c47f76835130"));\r
-\r
+ \r
+// //REMOVE\r
+// desig1.setOriginalNameString("orig");\r
+// \r
name1.addTypeDesignation(desig1, true);\r
\r
nameDao.saveOrUpdate(name1);\r
-\r
- commitAndStartNewTransaction(null);\r
-\r
+ commitAndStartNewTransaction(new String[]{"TypeDesignationBase", "TypeDesignationBase_AUD"});\r
+// System.out.println(desig1.getId());\r
+// System.out.println(desig1.getUuid());\r
+ \r
// printDataSet(System.err, new String[]{"TaxonNameBase","TaxonNameBase_AUD",\r
// "HomotypicalGroup","HomotypicalGroup_AUD",\r
// "TypeDesignationBase","TypeDesignationBase_AUD",\r
desig1.setTypeSpecimen(specimen);\r
\r
occurrenceDao.saveOrUpdate(specimen);\r
+ commit();\r
\r
}\r
\r
\r
import static org.junit.Assert.assertEquals;\r
\r
+import java.util.HashSet;\r
import java.util.List;\r
+import java.util.Set;\r
import java.util.UUID;\r
\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
List<Reference> proceedings_subordinateReferences = referenceDao.getSubordinateReferences(proceedings);\r
assertEquals("expecting one subordinate reference",2 ,proceedings_subordinateReferences.size());\r
sub_1 = proceedings_subordinateReferences.get(0);\r
- Reference sub_2 = proceedings_subordinateReferences.get(1);\r
+ Reference<?> sub_2 = proceedings_subordinateReferences.get(1);\r
assertEquals("expecting BookSection as first subordinateReferences", "Proceedings of Testing Vol. 1", sub_1.getTitleCache());\r
assertEquals("expecting BookSection as first subordinateReferences", "Better Testing made easy", sub_2.getTitleCache());\r
assertEquals("first subordinateReferences matches uuid", firstBookUuid, sub_1.getUuid());\r
@Test\r
public void testListCoveredTaxa() {\r
\r
- \r
- Reference book = referenceDao.findByUuid(firstBookUuid);\r
+ Reference<?> book = referenceDao.findByUuid(firstBookUuid);\r
List<TaxonBase> coveredTaxa = referenceDao.listCoveredTaxa(book, false, null);\r
assertEquals("expecting one Taxa covered by this book", 1, coveredTaxa.size());\r
assertEquals("covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );\r
\r
coveredTaxa = referenceDao.listCoveredTaxa(book, true, null);\r
- assertEquals("expecting one Taxa covered by this book", 2, coveredTaxa.size());\r
- assertEquals("covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );\r
- assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );\r
+ assertEquals("expecting 2 Taxa covered by this book", 2, coveredTaxa.size());\r
+ Set<String> titles = makeTitleCacheSet(coveredTaxa);\r
+ Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));\r
+ Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));\r
+// assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );\r
\r
Reference bookSection = referenceDao.findByUuid(bookSectionUuid);\r
coveredTaxa = referenceDao.listCoveredTaxa(bookSection, false, null);\r
assertEquals("expecting two Taxa covered by this bookSection", 2, coveredTaxa.size());\r
- assertEquals("1st covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );\r
- assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );\r
+ titles = makeTitleCacheSet(coveredTaxa);\r
+ Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));\r
+ Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));\r
+// assertEquals("1st covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );\r
+// assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );\r
\r
// by nomenclaturalReference\r
Reference nomRef = referenceDao.findByUuid(nomenclaturalReferenceBookUuid);\r
coveredTaxa = referenceDao.listCoveredTaxa(nomRef, false, null);\r
assertEquals("expecting two Taxa covered nomenclaturalReference", 2, coveredTaxa.size());\r
- assertEquals("covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );\r
- assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );\r
+ titles = makeTitleCacheSet(coveredTaxa);\r
+ Assert.assertTrue("covered taxa must contain 'Lactuca perennis'", titles.contains("Lactuca perennis"));\r
+ Assert.assertTrue("covered taxon must contain 'Lactuca virosa'", titles.contains("Lactuca virosa"));\r
+// assertEquals("covered taxon is 'Lactuca perennis'", "Lactuca perennis", coveredTaxa.get(0).getName().getTitleCache() );\r
+// assertEquals("2nd covered taxon is 'Lactuca virosa'", "Lactuca virosa", coveredTaxa.get(1).getName().getTitleCache() );\r
\r
}\r
\r
+ private Set<String> makeTitleCacheSet(List<TaxonBase> coveredTaxa) {\r
+ Set<String> titles = new HashSet<String>();\r
+ titles.add(coveredTaxa.get(0).getName().getTitleCache());\r
+ titles.add(coveredTaxa.get(1).getName().getTitleCache());\r
+ return titles;\r
+ }\r
+\r
\r
}\r
\r
package eu.etaxonomy.cdm.persistence.dao.hibernate.taxon;\r
\r
-import static junit.framework.Assert.assertEquals;\r
-import static junit.framework.Assert.assertFalse;\r
-import static junit.framework.Assert.assertNotNull;\r
-import static junit.framework.Assert.assertSame;\r
-import static junit.framework.Assert.assertTrue;\r
-import static org.junit.Assert.assertNull;\r
-import static org.junit.Assert.fail;\r
-\r
-import java.io.FileOutputStream;\r
-import java.util.ArrayList;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
+import static org.junit.Assert.assertNotNull;\r
+\r
import java.util.UUID;\r
\r
-import org.hibernate.Hibernate;\r
-import org.hibernate.envers.query.AuditEntity;\r
-import org.hibernate.envers.query.criteria.AuditCriterion;\r
import org.junit.After;\r
import org.junit.Before;\r
-import org.junit.Ignore;\r
-import org.junit.Rule;\r
import org.junit.Test;\r
-import org.junit.rules.MethodRule;\r
import org.unitils.dbunit.annotation.DataSet;\r
-import org.unitils.dbunit.annotation.ExpectedDataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
-//import com.carrotsearch.junitbenchmarks.BenchmarkOptions;\r
-//import com.carrotsearch.junitbenchmarks.BenchmarkRule;\r
-\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
-import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.reference.Reference;\r
-import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.cdm.model.taxon.Classification;\r
-import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;\r
import eu.etaxonomy.cdm.model.view.AuditEvent;\r
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;\r
import eu.etaxonomy.cdm.model.view.context.AuditEventContextHolder;\r
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;\r
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;\r
import eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao;\r
-import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
import eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao;\r
-import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;\r
-import eu.etaxonomy.cdm.persistence.query.GroupByCount;\r
-import eu.etaxonomy.cdm.persistence.query.GroupByDate;\r
-import eu.etaxonomy.cdm.persistence.query.Grouping;\r
-import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
-import eu.etaxonomy.cdm.persistence.query.NativeSqlOrderHint;\r
-import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
-import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;\r
+import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
/**\r
\r
\r
\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
}\r
\r
package eu.etaxonomy.cdm.persistence.dao.hibernate.taxon;\r
\r
-import static junit.framework.Assert.assertEquals;\r
-import static junit.framework.Assert.assertFalse;\r
-import static junit.framework.Assert.assertNotNull;\r
-import static junit.framework.Assert.assertSame;\r
-import static junit.framework.Assert.assertTrue;\r
+import static org.junit.Assert.assertEquals;\r
+import static org.junit.Assert.assertFalse;\r
+import static org.junit.Assert.assertNotNull;\r
+import static org.junit.Assert.assertSame;\r
+import static org.junit.Assert.assertTrue;\r
import static org.junit.Assert.assertNull;\r
import static org.junit.Assert.fail;\r
\r
import java.util.Set;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Level;\r
import org.hibernate.Hibernate;\r
import eu.etaxonomy.cdm.model.view.context.AuditEventContextHolder;\r
import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;\r
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;\r
-import eu.etaxonomy.cdm.persistence.dao.hibernate.HibernateBeanInitializer;\r
import eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao;\r
import eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao;\r
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
@Test\r
@DataSet\r
public void testGetTaxaByName() {\r
- Reference sec = referenceDao.findById(1);\r
+ Reference<?> sec = referenceDao.findById(1);\r
assert sec != null : "sec must exist";\r
\r
List<TaxonBase> results = taxonDao.getTaxaByName("Aus", sec);\r
@Test\r
@DataSet\r
public void testGetTaxaByNameForEditor() {\r
- Reference sec = referenceDao.findById(1);\r
+ Reference<?> sec = referenceDao.findById(1);\r
assert sec != null : "sec must exist";\r
\r
List<UuidAndTitleCache<TaxonBase>> results = taxonDao.getTaxaByNameForEditor(true, true, "Mand*", null, MatchMode.BEGINNING, null);\r
* Test method for {@link eu.etaxonomy.cdm.persistence.dao.hibernate.taxon.TaxonDaoHibernateImpl#findByNameTitleCache(Class<? extends TaxonBase>clazz, String queryString, Classification classification, MatchMode matchMode, Set<NamedArea> namedAreas, Integer pageNumber, Integer pageSize, List<String> propertyPaths)}\r
* restricting the search by a set of Areas.\r
*/\r
- @SuppressWarnings("unchecked")\r
@Test\r
@DataSet(loadStrategy=CleanSweepInsertLoadStrategy.class, value="TaxonDaoHibernateImplTest.testGetTaxaByNameAndArea.xml")\r
public void testFindByNameTitleCache() {\r
@Test\r
@DataSet("TaxonDaoHibernateImplTest.testFindDeleted.xml")\r
public void testFindDeleted() {\r
- TaxonBase taxon = taxonDao.findByUuid(acherontia);\r
+ TaxonBase<?> taxon = taxonDao.findByUuid(acherontia);\r
assertNull("findByUuid should return null in this view", taxon);\r
assertFalse("exist should return false in this view",taxonDao.exists(acherontia));\r
}\r
@Test\r
@DataSet("TaxonDaoHibernateImplTest.testFindDeleted.xml")\r
public void testGetAuditEvents() {\r
- TaxonBase taxon = taxonDao.findByUuid(sphingidae);\r
+ TaxonBase<?> taxon = taxonDao.findByUuid(sphingidae);\r
assert taxon != null : "taxon cannot be null";\r
\r
List<String> propertyPaths = new ArrayList<String>();\r
@DataSet("TaxonDaoHibernateImplTest.testFindDeleted.xml")\r
public void testGetAuditEventsFromNow() {\r
AuditEventContextHolder.getContext().setAuditEvent(previousAuditEvent);\r
- TaxonBase taxon = taxonDao.findByUuid(sphingidae);\r
+ TaxonBase<?> taxon = taxonDao.findByUuid(sphingidae);\r
assert taxon != null : "taxon cannot be null";\r
\r
List<AuditEventRecord<TaxonBase>> auditEvents = taxonDao.getAuditEvents(taxon, null,null,AuditEventSort.FORWARDS,null);\r
@Test\r
@DataSet("TaxonDaoHibernateImplTest.testFindDeleted.xml")\r
public void testCountAuditEvents() {\r
- TaxonBase taxon = taxonDao.findByUuid(sphingidae);\r
+ TaxonBase<?> taxon = taxonDao.findByUuid(sphingidae);\r
assert taxon != null : "taxon cannot be null";\r
\r
int numberOfAuditEvents = taxonDao.countAuditEvents(taxon,null);\r
@Test\r
@DataSet("TaxonDaoHibernateImplTest.testFindDeleted.xml")\r
public void getPreviousAuditEvent() {\r
- TaxonBase taxon = taxonDao.findByUuid(sphingidae);\r
+ TaxonBase<?> taxon = taxonDao.findByUuid(sphingidae);\r
assert taxon != null : "taxon cannot be null";\r
\r
AuditEventRecord<TaxonBase> auditEvent = taxonDao.getPreviousAuditEvent(taxon);\r
@DataSet("TaxonDaoHibernateImplTest.testFindDeleted.xml")\r
public void getNextAuditEvent() {\r
AuditEventContextHolder.getContext().setAuditEvent(previousAuditEvent);\r
- TaxonBase taxon = taxonDao.findByUuid(sphingidae);\r
+ TaxonBase<?> taxon = taxonDao.findByUuid(sphingidae);\r
assert taxon != null : "taxon cannot be null";\r
\r
AuditEventRecord<TaxonBase> auditEvent = taxonDao.getNextAuditEvent(taxon);\r
@DataSet("TaxonDaoHibernateImplTest.testFindDeleted.xml")\r
public void getNextAuditEventAtEnd() {\r
AuditEventContextHolder.getContext().setAuditEvent(mostRecentAuditEvent);\r
- TaxonBase taxon = taxonDao.findByUuid(sphingidae);\r
+ TaxonBase<?> taxon = taxonDao.findByUuid(sphingidae);\r
assert taxon != null : "taxon cannot be null";\r
\r
AuditEventRecord<TaxonBase> auditEvent = taxonDao.getNextAuditEvent(taxon);\r
\r
List<TaxonBase> results = taxonDao.list(null, null, orderHints);\r
System.out.println("native SQL order");\r
- for(TaxonBase result : results) {\r
+ for(TaxonBase<?> result : results) {\r
System.out.println(result.getTitleCache());\r
}\r
}\r
package eu.etaxonomy.cdm.persistence.dao.hibernate.taxon;
-import static junit.framework.Assert.assertNotNull;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertEquals;
import java.util.HashSet;
\r
package eu.etaxonomy.cdm.persistence.dao.hibernate.view;\r
\r
-import static junit.framework.Assert.assertEquals;\r
-import static junit.framework.Assert.assertFalse;\r
-import static junit.framework.Assert.assertNotNull;\r
-import static junit.framework.Assert.assertSame;\r
-import static junit.framework.Assert.assertTrue;\r
-import static org.junit.Assert.assertNull;\r
-import static org.junit.Assert.fail;\r
+import static org.junit.Assert.assertNotNull;\r
\r
-import java.io.FileOutputStream;\r
-import java.util.ArrayList;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-import java.util.UUID;\r
-\r
-import org.hibernate.Hibernate;\r
-import org.hibernate.envers.query.AuditEntity;\r
-import org.hibernate.envers.query.criteria.AuditCriterion;\r
import org.joda.time.DateTime;\r
-import org.junit.After;\r
import org.junit.Before;\r
-import org.junit.Ignore;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
-import org.unitils.dbunit.annotation.ExpectedDataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
-import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
-import eu.etaxonomy.cdm.model.description.Distribution;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
-import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.name.NonViralName;\r
-import eu.etaxonomy.cdm.model.name.Rank;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.reference.Reference;\r
-import eu.etaxonomy.cdm.model.taxon.Synonym;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.view.AuditEvent;\r
-import eu.etaxonomy.cdm.model.view.AuditEventRecord;\r
-import eu.etaxonomy.cdm.model.view.context.AuditEventContextHolder;\r
-import eu.etaxonomy.cdm.persistence.dao.common.AuditEventSort;\r
-import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;\r
-import eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao;\r
-import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
-import eu.etaxonomy.cdm.persistence.dao.taxon.IClassificationDao;\r
-import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;\r
-import eu.etaxonomy.cdm.persistence.query.GroupByCount;\r
-import eu.etaxonomy.cdm.persistence.query.GroupByDate;\r
-import eu.etaxonomy.cdm.persistence.query.Grouping;\r
-import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
-import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
-import eu.etaxonomy.cdm.persistence.query.OrderHint.SortOrder;\r
import eu.etaxonomy.cdm.persistence.view.IAuditEventDao;\r
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
package eu.etaxonomy.cdm.persistence.hibernate.replace;\r
\r
\r
-import java.io.FileOutputStream;\r
import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
\r
import eu.etaxonomy.cdm.model.agent.Institution;\r
import eu.etaxonomy.cdm.model.agent.Person;\r
-import eu.etaxonomy.cdm.model.description.MediaKey;\r
-import eu.etaxonomy.cdm.model.media.Media;\r
import eu.etaxonomy.cdm.model.name.BotanicalName;\r
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao;\r
-import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;\r
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
/**\r
commit();\r
if(logger.isDebugEnabled()){\r
printDataSet(System.out, tableNames);\r
+ //careful, this will overwrite existing files\r
+// writeDbUnitDataSetFile(tableNames);\r
}\r
startNewTransaction();\r
}\r
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r
+<c3p0-config>\r
+ <!-- this is a copy of the same file in\r
+ src/main/resources but with commented \r
+ "automaticTestTable" property.\r
+ This property causes problems in tests as the table\r
+ is not found in the test database. Maybe we can fix \r
+ this one day.\r
+ see also http://dev.e-taxonomy.eu/trac/ticket/3344\r
+ -->\r
+ \r
+ <!--\r
+ for a reference please refer to\r
+ http://www.mchange.com/projects/c3p0/index.htm\r
+ -->\r
+ <default-config>\r
+ <!--\r
+ idleConnectionTestPeriod: if this is a number greater than 0, c3p0\r
+ will test all idle, pooled but unchecked-out connections, every this\r
+ number of seconds\r
+ -->\r
+ <property name="idleConnectionTestPeriod">60</property>\r
+ <!--\r
+ automaticTestTable: \r
+ If provided, c3p0 will create an\r
+ empty table of the specified name, and use queries against that table\r
+ to test the Connection. If automaticTestTable is provided, c3p0 will\r
+ generate its own test query, therefore any preferredTestQuery set\r
+ will be ignored. You should not work with the named table after c3p0\r
+ creates it; it should be strictly for c3p0's use in testing your\r
+ Connection.\r
+ -->\r
+ \r
+ \r
+<!-- <property name="automaticTestTable">_c3p0ConnectionTest</property> -->\r
+ \r
+ </default-config>\r
+</c3p0-config>
\ No newline at end of file
;
CREATE USER IF NOT EXISTS EDIT PASSWORD '' ADMIN;
CREATE SEQUENCE PUBLIC.SYSTEM_SEQUENCE_10A55F0A_EE57_42DB_8046_6240A60AD0EC START WITH 4 BELONGS_TO_TABLE;
+
+
CREATE CACHED TABLE PUBLIC.ADDRESS(
ID INTEGER NOT NULL,
CREATED TIMESTAMP,
\r
#hibernate.connection.password=\r
#hibernate.hbm2ddl.auto=create-drop\r
-#hibernate.cache.provider_class=net.sf.ehcache.hibernate.SingletonEhCacheProvider\r
-#hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider\r
-#hibernate.search.default.directory_provider=org.hibernate.search.store.FSDirectoryProvider\r
+#hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.SingletonEhCacheProvider\r
+#hibernate.cache.region.factory_class=org.hibernate.cache.internal.NoCachingRegionFactory\r
+#hibernate.search.default.directory_provider=org.hibernate.search.store.impl.FSDirectoryProvider\r
#hibernate.search.default.indexBase=./target/test-classes\r
-->\r
<property name="properties">\r
<props>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
- <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
+ <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.impl.FSDirectoryProvider</prop>\r
<prop key="hibernate.search.default.indexBase">./target/index</prop>\r
+ \r
+ <!-- temp for h4 migration testing\r
+ <prop key="hibernate.connection.driver_class">org.h2.Driver</prop>\r
+ <prop key="hibernate.connection.url">jdbc:h2:mem:cdm</prop>\r
+ <prop key="hibernate.connection.username">sa</prop>\r
+ <prop key="hibernate.connection.password"></prop>\r
+ <prop key="hibernate.search.lucene_version">LUCENE_36</prop>\r
+ end temp for h4 migration testing\r
+ --> \r
</props>\r
</property>\r
</bean>\r
</property>\r
</bean>\r
\r
+<!-- \r
+ We do not use spelling suggestions anymore. This one relates to springmodules which is\r
+ somewhat outdated. Once we work again with spelling suggestions we better use a modern\r
+ approache, e.g. annotation based.\r
<bean id="taxonSpellingDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">\r
<property name="location" value="file:./target/index/eu.etaxonomy.cdm.model.taxon.TaxonBase_spelling"/>\r
<property name="create" value="true"/>\r
- </bean>\r
+ </bean> -->\r
\r
</beans>\r
<property name="properties">\r
<props>\r
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLCorrectedDialect</prop>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
- <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
+ <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.impl.FSDirectoryProvider</prop>\r
<prop key="hibernate.search.default.indexBase">./target/test-classes</prop>\r
</props>\r
</property>\r
<?xml version='1.0' encoding='UTF-8'?>\r
+<!-- \r
+ NOTE: This data aset file is out dated and thus not\r
+ in sync with the TermsDataSet-with_auditing_info.xml\r
+ before using this you should updating !!!!\r
+-->\r
<dataset>\r
<DEFINEDTERMBASE DTYPE="Language" ID="1" CREATED="2009-01-28 17:07:03.0" UUID="ae787603-3070-4298-9ca6-4cbe73378122" URI="" ISO639_1="" ISO639_2="khi" VOCABULARY_ID="1"/>\r
<DEFINEDTERMBASE DTYPE="Language" ID="2" CREATED="2009-01-28 17:07:03.0" UUID="b40cc17a-b05e-4f7b-a3a1-cbf396b79c5e" URI="" ISO639_1="" ISO639_2="sai" VOCABULARY_ID="1"/>\r
<?xml version='1.0' encoding='UTF-8'?>\r
<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../dataset.xsd">\r
- <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray"/>\r
- <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" NOMENCLATURALTITLE="B.R. Clark" FIRSTNAME="Benjamin" LASTNAME="Clark"/>\r
- <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching"/>\r
- <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo"/>\r
- <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble"/>\r
- <AGENTBASE DTYPE="Team" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Institution" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" PROTECTEDTITLECACHE="true" TITLECACHE="University College London"/>\r
- <AGENTBASE DTYPE="Institution" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London"/>\r
- <AGENTBASE DTYPE="Institution" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford"/>\r
- <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray"/>\r
- <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" FIRSTNAME="Ben" LASTNAME="Clark"/>\r
- <AGENTBASE_AUD DTYPE="Person" REVTYPE="1" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark"/>\r
- <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching"/>\r
- <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo"/>\r
- <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble"/>\r
- <AGENTBASE_AUD DTYPE="Team" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE_AUD DTYPE="Institution" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" PROTECTEDTITLECACHE="true" TITLECACHE="University College London"/>\r
- <AGENTBASE_AUD DTYPE="Institution" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London"/>\r
- <AGENTBASE_AUD DTYPE="Institution" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford"/>\r
+ <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" NOMENCLATURALTITLE="B.R. Clark" FIRSTNAME="Benjamin" LASTNAME="Clark" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Team" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE DTYPE="Institution" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" PROTECTEDTITLECACHE="true" TITLECACHE="University College London" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE DTYPE="Institution" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE DTYPE="Institution" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ \r
+ <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" FIRSTNAME="Ben" LASTNAME="Clark" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" REVTYPE="1" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Team" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE_AUD DTYPE="Institution" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" PROTECTEDTITLECACHE="true" TITLECACHE="University College London" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE_AUD DTYPE="Institution" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE_AUD DTYPE="Institution" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="3" SORTINDEX="0"/>\r
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="5" SORTINDEX="1"/>\r
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="1" SORTINDEX="2"/>\r
<?xml version='1.0' encoding='UTF-8'?>\r
<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../dataset.xsd">\r
- <AGENTBASE DTYPE="Person" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray" PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Person" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" PROTECTEDNOMENCLATURALTITLECACHE="true" FIRSTNAME="Ben" LASTNAME="Clark"/>\r
- <AGENTBASE DTYPE="Person" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching" PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Person" ID="4" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo" PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Person" ID="5" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble" PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Team" ID="6" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Institution" ID="7" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University College London" PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Institution" ID="8" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London" PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE DTYPE="Institution" ID="9" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford" PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
+ <AGENTBASE DTYPE="Person" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray" PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" PROTECTEDNOMENCLATURALTITLECACHE="true" FIRSTNAME="Ben" LASTNAME="Clark" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching" PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" ID="4" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo" PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Person" ID="5" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble" PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE DTYPE="Team" ID="6" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE DTYPE="Institution" ID="7" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University College London" PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE DTYPE="Institution" ID="8" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London" PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE DTYPE="Institution" ID="9" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford" PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
\r
- <AGENTBASE_AUD DTYPE="Person" ID="1" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray"/>\r
- <AGENTBASE_AUD DTYPE="Person" ID="2" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" FIRSTNAME="Ben" LASTNAME="Clark"/>\r
- <AGENTBASE_AUD DTYPE="Person" ID="3" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching"/>\r
- <AGENTBASE_AUD DTYPE="Person" ID="4" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo"/>\r
- <AGENTBASE_AUD DTYPE="Person" ID="5" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble"/>\r
- <AGENTBASE_AUD DTYPE="Team" ID="6" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true"/>\r
- <AGENTBASE_AUD DTYPE="Institution" ID="7" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University College London"/>\r
- <AGENTBASE_AUD DTYPE="Institution" ID="8" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London"/>\r
- <AGENTBASE_AUD DTYPE="Institution" ID="9" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford"/>\r
+ <AGENTBASE_AUD DTYPE="Person" ID="1" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="e4ec436a-3e8c-4166-a834-3bb84c2b5ad6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="H.C.J. Godfray" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" ID="2" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="ed6ac546-8c6c-48c4-9b91-40b1157c05c6" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="B.R. Clark" FIRSTNAME="Ben" LASTNAME="Clark" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" ID="3" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="746e872b-3f61-442c-b093-6b4d15c87694" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="I.J. Kitching" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" ID="4" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="c62cd389-d787-47f4-99c3-b80eb12a1ef2" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="S.J. Mayo" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Person" ID="5" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="dbaa601e-806b-40aa-a3cd-c2e179ddbd9a" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="M.J. Scoble" LIFESPAN_END="00000000" LIFESPAN_START="00000000"/>\r
+ <AGENTBASE_AUD DTYPE="Team" ID="6" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="924fa059-1b83-45f8-bc3a-e754d2757364" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Godfray, et. al." PROTECTEDNOMENCLATURALTITLECACHE="true" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE_AUD DTYPE="Institution" ID="7" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="18679846-7343-4e5f-b14e-5eb56b967989" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University College London" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE_AUD DTYPE="Institution" ID="8" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="28f6aaa5-e03e-4831-9ce2-71eaf56cdebe" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="Imperial College London" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
+ <AGENTBASE_AUD DTYPE="Institution" ID="9" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="2c06962e-84f8-4895-91b7-1ae6269e97d8" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="University of Oxford" LIFESPAN_END="[null]" LIFESPAN_START="[null]"/>\r
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="3" SORTINDEX="0"/>\r
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="5" SORTINDEX="1"/>\r
<AGENTBASE_AGENTBASE AGENTBASE_ID="6" TEAMMEMBERS_ID="1" SORTINDEX="2"/>\r
\r
<TAXONNAMEBASE UUID="8564287e-9654-4b8b-a38c-0ccdd9e885db" TITLECACHE="Name1"/>\r
<TYPEDESIGNATIONBASE DTYPE="SpecimenTypeDesignation" UUID="ceca086e-e8d3-444e-abfb-c47f76835130"/>\r
- <TYPEDESIGNATIONBASE_AUD REVTYPE="0" DTYPE="SpecimenTypeDesignation" UUID="ceca086e-e8d3-444e-abfb-c47f76835130"/>\r
+ <TYPEDESIGNATIONBASE_AUD REVTYPE="0" DTYPE="SpecimenTypeDesignation" UUID="ceca086e-e8d3-444e-abfb-c47f76835130"/>\r
+<!-- for testing <TYPEDESIGNATIONBASE_AUD REVTYPE="0" DTYPE="SpecimenTypeDesignation" UUID="[null]" ORIGINALNAMESTRING="orig" NOTDESIGNATED="false"/> -->\r
\r
</dataset>
\ No newline at end of file
<HOMOTYPICALGROUP_AUD ID="2002" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="c69b1c20-d321-4550-a755-bfcd2db9c9c5" /> \r
<REFERENCE ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="c243ec4c-6cb7-4e81-a251-a478ef58c945" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
<REFERENCE_AUD REV="1000" REVTYPE="0" DTYPE="Book" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="c243ec4c-6cb7-4e81-a251-a478ef58c945" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
</dataset>
\ No newline at end of file
<HOMOTYPICALGROUP_AUD ID="2002" REV="1000" REVTYPE="0" CREATED="2008-12-10 09:56:07.0" UUID="c69b1c20-d321-4550-a755-bfcd2db9c9c5" UPDATED="2008-12-10 09:56:07.253"/> \r
<REFERENCE ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="c243ec4c-6cb7-4e81-a251-a478ef58c945" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
<REFERENCE_AUD REV="1000" REVTYPE="0" DTYPE="Book" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="c243ec4c-6cb7-4e81-a251-a478ef58c945" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Lorem ipsum" PROTECTEDTITLECACHE="true" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="44415fc0-1703-11df-8a39-0800200c9a66" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2001" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" REV="1000" REVTYPE="0" ID="2002" CREATED="2008-12-10 09:56:07.0" UUID="523498fc-5fa8-4ac6-9347-303770ac46a1" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2002" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="2001"/>\r
<NAMERELATIONSHIP ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="43165a02-db6b-4d92-9b48-2fd8df12ee1e" RELATEDFROM_ID="2001" RELATEDTO_ID="2002" DOUBTFUL="false" TYPE_ID="868"/>\r
<NAMERELATIONSHIP_AUD ID="2001" REV="1000" REVTYPE="0" CREATED="2009-09-17 18:20:37.0" UUID="43165a02-db6b-4d92-9b48-2fd8df12ee1e" DOUBTFUL="false" RELATEDFROM_ID="2001" RELATEDTO_ID="2002" TYPE_ID="862"/>\r
<HYBRIDRELATIONSHIP ID="2001" CREATED="2008-12-10 09:56:07.0" UUID="fe8ca4b0-af10-4e0c-bf19-e6b80fd84e2a" RELATEDFROM_ID="2001" RELATEDTO_ID="2002" DOUBTFUL="false" TYPE_ID="857"/>\r
<REFERENCE ID="1" UUID="596b1325-be50-4b0a-9aa2-3ecd610215f2" PROTECTEDTITLECACHE="true" TITLECACHE="Lorem ipsum" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" /> <!--AUTHORTEAM_ID="1"-->
<REFERENCE ID="2" CREATED="2008-12-10 09:56:07.0" UUID="ad4322b7-4b05-48af-be70-f113e46c545e" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-sphingidae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" AUTHORTEAM_ID="3"/>
<REFERENCE ID="3" CREATED="2008-12-10 09:56:07.0" UUID="3eea6f96-0682-4025-8cdd-aaaf7c915ae2" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE="cate-araceae.org" NOMENCLATURALLYRELEVANT="false" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1"/>
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="a49a3963-c4ea-4047-8588-2f8f15352730" PROTECTEDTITLECACHE="true" TITLECACHE="" FULLTITLECACHE="" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="Aus" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" NOMENCLATURALREFERENCE_ID="1" RANK_ID="774" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="1"/>
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="05a438d6-065f-49ef-84db-c7dc2c259975" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE=" " FULLTITLECACHE=" " PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" BINOMHYBRID="false" GENUSORUNINOMIAL="Aus" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="aus" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="2" NOMENCLATURALREFERENCE_ID="1" RANK_ID="765" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="[null]"/>
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="a49a3963-c4ea-4047-8588-2f8f15352730" PROTECTEDTITLECACHE="true" TITLECACHE="" FULLTITLECACHE="" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" GENUSORUNINOMIAL="Aus" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" NOMENCLATURALREFERENCE_ID="1" RANK_ID="774" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="1"/>
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="05a438d6-065f-49ef-84db-c7dc2c259975" UPDATED="2008-12-10 09:56:07.253" PROTECTEDTITLECACHE="true" TITLECACHE=" " FULLTITLECACHE=" " PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" GENUSORUNINOMIAL="Aus" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="aus" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="2" NOMENCLATURALREFERENCE_ID="1" RANK_ID="765" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="ZoologicalName" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="9640a158-2bdb-4cbc-bff6-8f77e781f86b" UPDATED="2008-12-10 09:56:07.238" PROTECTEDTITLECACHE="true" TITLECACHE="Sphingidae Linnaeus, 1758" FULLTITLECACHE="" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Linnaeus, 1758" BINOMHYBRID="false" GENUSORUNINOMIAL="Sphingidae" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Sphingidae" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="3" NOMENCLATURALREFERENCE_ID="1" RANK_ID="782" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="ZoologicalName" ID="4" CREATED="2008-12-10 09:56:07.0" UUID="446d8d76-e206-49e1-b6da-d06ce1f296e1" UPDATED="2008-12-10 09:56:07.238" PROTECTEDTITLECACHE="true" TITLECACHE="Lathoe Fabricius, 1807" FULLTITLECACHE="" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Fabricius, 1807" BINOMHYBRID="false" GENUSORUNINOMIAL="Laothoe" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Laothoe" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="4" NOMENCLATURALREFERENCE_ID="1" RANK_ID="774" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="ZoologicalName" ID="5" CREATED="2008-12-10 09:56:07.0" UUID="3d0b9061-fc9d-4de5-9dc1-341e10eb139e" UPDATED="2008-12-10 09:56:07.238" PROTECTEDTITLECACHE="true" TITLECACHE="Smerinthus Latreille, 1802" FULLTITLECACHE="" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Latreille, 1802" BINOMHYBRID="false" GENUSORUNINOMIAL="Smerinthus" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="Smerinthus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="5" NOMENCLATURALREFERENCE_ID="1" RANK_ID="774" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONBASE DTYPE="Taxon" ID="1" SEC_ID="1" CREATED="2008-12-10 09:56:07.0" UUID="258e28a3-c4e5-4b87-823e-2963c7831ce3" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Acherontia lachesis (Fabricius, 1798) sec Lorem ipsum" PROTECTEDTITLECACHE="true" TAXONSTATUSUNKNOWN="false" UNPLACED="false" EXCLUDED="false" DOUBTFUL="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="36"/>\r
<TAXONBASE DTYPE="Taxon" ID="2" SEC_ID="1" CREATED="2008-12-10 09:56:07.0" UUID="e110d2c6-fa07-4459-bb7c-269fa0d8f052" UPDATED="2008-12-10 09:56:07.253" TITLECACHE="Cryptocoryne griffithii Schott sec Lorem ipsum" PROTECTEDTITLECACHE="true" TAXONSTATUSUNKNOWN="false" UNPLACED="false" EXCLUDED="false" DOUBTFUL="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="39"/>\r
\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="a49a3963-c4ea-4047-8588-2f8f15352730" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="1" BASIONYMAUTHORTEAM_ID="2" COMBINATIONAUTHORTEAM_ID="1"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="05a438d6-065f-49ef-84db-c7dc2c259975" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="1" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="[null]"/>
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2008-12-10 09:56:07.0" UUID="a49a3963-c4ea-4047-8588-2f8f15352730" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="774" GENUSORUNINOMIAL="Aus" NOMENCLATURALREFERENCE_ID="1" BASIONYMAUTHORTEAM_ID="2" COMBINATIONAUTHORTEAM_ID="1"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2008-12-10 09:56:07.0" UUID="05a438d6-065f-49ef-84db-c7dc2c259975" UPDATED="2008-12-10 09:56:07.253" TITLECACHE=" " PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE=" " PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="Aus aus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765" GENUSORUNINOMIAL="Aus" SPECIFICEPITHET="aus" NOMENCLATURALREFERENCE_ID="1" BASIONYMAUTHORTEAM_ID="1" COMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="ZoologicalName" ID="3" CREATED="2008-12-10 09:56:07.0" UUID="9640a158-2bdb-4cbc-bff6-8f77e781f86b" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Sphingidae Linnaeus, 1758" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Linnaeus, 1758" NAMECACHE="Sphingidae" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="3" RANK_ID="782" GENUSORUNINOMIAL="Sphingidae" NOMENCLATURALREFERENCE_ID="1" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="ZoologicalName" ID="4" CREATED="2008-12-10 09:56:07.0" UUID="446d8d76-e206-49e1-b6da-d06ce1f296e1" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Lathoe Fabricius, 1807" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Fabricius, 1807" NAMECACHE="Laothoe" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="4" RANK_ID="774" GENUSORUNINOMIAL="Laothoe" NOMENCLATURALREFERENCE_ID="1" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>
<TAXONNAMEBASE DTYPE="ZoologicalName" ID="5" CREATED="2008-12-10 09:56:07.0" UUID="3d0b9061-fc9d-4de5-9dc1-341e10eb139e" UPDATED="2008-12-10 09:56:07.238" TITLECACHE="Smerinthus Latreille, 1802" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="Latreille, 1802" NAMECACHE="Smerinthus" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="5" RANK_ID="774" GENUSORUNINOMIAL="Smerinthus" NOMENCLATURALREFERENCE_ID="1" BASIONYMAUTHORTEAM_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.print;\r
+\r
+import java.io.File;\r
+import java.sql.SQLException;\r
+import java.util.UUID;\r
+\r
+import org.junit.Assert;\r
+\r
+import org.apache.log4j.Logger;\r
+import org.jdom.Element;\r
+\r
+import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;\r
+import eu.etaxonomy.cdm.common.CdmUtils;\r
+import eu.etaxonomy.cdm.common.monitor.DefaultProgressMonitor;\r
+import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
+import eu.etaxonomy.cdm.database.CdmDataSource;\r
+import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
+import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
+import eu.etaxonomy.cdm.print.out.pdf.PdfOutputModule;\r
+import eu.etaxonomy.cdm.print.out.xml.XMLOutputModule;\r
+\r
+/**\r
+ * @author l.morris\r
+ * @date Mar 7, 2013\r
+ *\r
+ */\r
+public class PubTest {\r
+ \r
+ private static final Logger logger = Logger.getLogger(PubTest.class);\r
+\r
+ private static PublishConfigurator configurator; \r
+ \r
+ private static Publisher publisher;\r
+ \r
+ \r
+ /**\r
+ * @throws java.lang.Exception\r
+ */\r
+ public static void setUpBeforeClass() throws Exception {\r
+ \r
+ ICdmDataSource dataSource = customDataSource();\r
+ \r
+ //Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading, IProgressMonitor progressMonitor)\r
+ IProgressMonitor progressMonitor = DefaultProgressMonitor.NewInstance();\r
+ \r
+ //Connecting to a CDMDataSource\r
+ ICdmApplicationConfiguration app = CdmApplicationController.NewInstance(null, dataSource, DbSchemaValidation.VALIDATE, false, progressMonitor);\r
+ //ICdmApplicationConfiguration app = CdmApplicationController.NewInstance(resource, dataSource, DbSchemaValidation.VALIDATE, false, progressMonitor);\r
+ //configurator = PublishConfigurator.NewLocalInstance(CdmStore.getCurrentApplicationConfiguration());//from taxeditor GeneratePdfHandler\r
+ configurator = PublishConfigurator.NewLocalInstance(app);\r
+ \r
+ IXMLEntityFactory factory = configurator.getFactory();\r
+ \r
+ UUID taxonNodeUuid = UUID.fromString("a605e87e-113e-4ebd-ad97-f086b734b4da");//5168a18b-c0b1-44cc-80aa-7a5572fefe04\r
+ Element taxonNodeElement = factory.getTaxonNode(taxonNodeUuid);\r
+ configurator.addSelectedTaxonNodeElements(taxonNodeElement);\r
+ \r
+ configurator.setDoPublishEntireBranches(false);\r
+ \r
+ configurator.addOutputModule(new PdfOutputModule());\r
+ configurator.addOutputModule(new XMLOutputModule());\r
+ \r
+ \r
+ //configurator.setWebserviceUrl("http://localhost:8080/");\r
+ \r
+// Element selectedTaxonNodeElement = new Element("TaxonNode");\r
+// \r
+// configurator.addSelectedTaxonNodeElements(selectedTaxonNodeElement);\r
+ \r
+ configurator.setExportFolder(new File("/Users/nho/tmp/"));\r
+ \r
+ }\r
+ \r
+ private static ICdmDataSource customDataSource() {\r
+\r
+ String dataSourceName = CdmUtils.readInputLine("Database name: ");\r
+ String username = CdmUtils.readInputLine("Username: ");\r
+ String password = CdmUtils.readInputLine("Password: ");\r
+ \r
+ dataSourceName = (dataSourceName.equals("")) ? "cdm_test4" : dataSourceName;\r
+ username = (username.equals("")) ? "ljm" : username;\r
+ \r
+ ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("160.45.63.201", "cdm_edit_flora_central_africa", 3306, "edit", password, NomenclaturalCode.ICBN);\r
+ //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", dataSourceName, 3306, username, password, NomenclaturalCode.ICBN);\r
+ //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", "cdm_edit_cichorieae", 3306, "ljm", password, NomenclaturalCode.ICBN);\r
+ //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("160.45.63.201", "cdm_edit_cichorieae", 3306, "edit", password, NomenclaturalCode.ICBN);\r
+ boolean connectionAvailable;\r
+ try {\r
+ connectionAvailable = dataSource.testConnection();\r
+ logger.debug("LORNA connection available " + connectionAvailable);\r
+ Assert.assertTrue("Testdatabase is not available", connectionAvailable);\r
+\r
+ } catch (ClassNotFoundException e1) {\r
+ // TODO Auto-generated catch block\r
+ e1.printStackTrace();\r
+ } catch (SQLException e1) {\r
+ // TODO Auto-generated catch block\r
+ e1.printStackTrace();\r
+ }\r
+ return dataSource;\r
+ }\r
+\r
+\r
+ /**\r
+ * @param args\r
+ */\r
+ public static void main(String[] args) {\r
+ \r
+ PubTest pubTest = new PubTest();\r
+ try {\r
+ pubTest.setUpBeforeClass();\r
+ } catch (Exception e) {\r
+ // TODO Auto-generated catch block\r
+ e.printStackTrace();\r
+ }\r
+ // TODO Auto-generated method stub\r
+\r
+ }\r
+\r
+}\r
<groupId>stax</groupId>
<artifactId>stax</artifactId>
</dependency>
+ <dependency>
+ <groupId>xom</groupId>
+ <artifactId>xom</artifactId>
+ </dependency>
<!-- JSP TAG LIBS -->
<dependency>
according WebAppContext attributes or to the environment variable\r
-->\r
<prop key="hibernate.hbm2ddl.auto">validate</prop><!-- !!! must never be set to 'update' !!! -->\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
- <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
+ <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.impl.FSDirectoryProvider</prop>\r
<prop key="hibernate.search.default.indexBase">${eu.etaxonomy.cdm.search.index.path}</prop><!-- set in applicationContext.xml -->\r
</props>\r
</property>\r
<props>\r
<prop key="hibernate.hbm2ddl.auto">validate</prop>\r
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">true</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
</props>\r
<props>\r
<prop key="hibernate.hbm2ddl.auto">validate</prop>\r
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
</props>\r
<props>
<prop key="hibernate.hbm2ddl.auto">validate</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.format_sql">false</prop>
</props>
-->\r
<prop key="hibernate.hbm2ddl.auto">update</prop>\r
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
<prop key="hibernate.search.default.indexBase">${user.home}/.cdmLibrary/</prop>\r
import javax.naming.NamingException;\r
import javax.sql.DataSource;\r
\r
-import org.apache.commons.io.FileUtils;\r
import org.apache.commons.io.FilenameUtils;\r
import org.apache.log4j.Logger;\r
import org.springframework.beans.BeansException;\r
\r
import org.apache.log4j.Logger;\r
\r
+import eu.etaxonomy.cdm.api.service.IService;\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
+\r
/**\r
* @author a.kohlbecker\r
* @date 23.06.2009\r
*\r
+ * @param <T>\r
+ * @param <SERVICE>\r
*/\r
-public abstract class AbstractController {\r
+public abstract class AbstractController<T extends CdmBase, SERVICE extends IService<T>> {\r
\r
protected static final List<String> DEFAULT_INIT_STRATEGY = Arrays.asList(new String []{\r
"$"\r
});\r
\r
public static final Logger logger = Logger.getLogger(AbstractController.class);\r
+ \r
+ protected SERVICE service;\r
+\r
+ public abstract void setService(SERVICE service);\r
\r
protected static final Integer DEFAULT_PAGE_SIZE = 30;\r
\r
* @return request path and query parameters as string.\r
*/\r
protected String requestPathAndQuery(HttpServletRequest request) {\r
+ if(request == null) {\r
+ return "";\r
+ }\r
StringBuilder b = new StringBuilder();\r
b.append(request.getServletPath());\r
String query = request.getQueryString();\r
* @param <T>\r
* @param <SERVICE>\r
*/\r
-public abstract class AbstractListController<T extends CdmBase, SERVICE extends IService<T>> extends AbstractController {\r
+public abstract class AbstractListController<T extends CdmBase, SERVICE extends IService<T>> extends AbstractController<T, SERVICE> {\r
\r
- protected SERVICE service;\r
-\r
- public abstract void setService(SERVICE service);\r
\r
}
\ No newline at end of file
* @param <SERVICE>\r
*/\r
\r
-public abstract class BaseController<T extends CdmBase, SERVICE extends IService<T>> extends AbstractController {\r
+public abstract class BaseController<T extends CdmBase, SERVICE extends IService<T>> extends AbstractController<T, SERVICE> {\r
\r
- protected SERVICE service;\r
+/* protected SERVICE service;\r
\r
- protected Class<T> baseClass;\r
+ public abstract void setService(SERVICE service);*/\r
\r
- public abstract void setService(SERVICE service);\r
+ protected Class<T> baseClass;\r
\r
public BaseController (){\r
\r
*/\r
@Controller\r
@RequestMapping(value = {"/derivedUnitFacade/{uuid}"})\r
-public class DerivedUnitFacadeController extends AbstractController{\r
+public class DerivedUnitFacadeController extends AbstractController<SpecimenOrObservationBase, IOccurrenceService>{\r
\r
\r
private IOccurrenceService service;\r
import org.springframework.web.bind.annotation.PathVariable;\r
import org.springframework.web.bind.annotation.RequestMapping;\r
import org.springframework.web.bind.annotation.RequestMethod;\r
-import org.springframework.web.bind.annotation.RequestParam;\r
import org.springframework.web.servlet.ModelAndView;\r
\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
-import eu.etaxonomy.cdm.api.service.pager.Pager;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
-import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
public class OccurrenceController extends BaseController<SpecimenOrObservationBase, IOccurrenceService>\r
{\r
\r
+ protected static final List<String> DEFAULT_INIT_STRATEGY = Arrays.asList(new String []{\r
+ "$",\r
+ "sequences.$",\r
+ });\r
+\r
private static final List<String> DERIVED_UNIT_INIT_STRATEGY = Arrays.asList(new String []{\r
"derivedFrom.derivatives",\r
"derivedFrom.originals",\r
});\r
\r
+\r
+\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.remote.controller.GenericController#setService(eu.etaxonomy.cdm.api.service.IService)\r
*/\r
SpecimenOrObservationBase sob = getCdmBaseInstance(uuid, response, DERIVED_UNIT_INIT_STRATEGY);\r
if(sob instanceof DerivedUnitBase){\r
DerivationEvent derivationEvent = ((DerivedUnitBase)sob).getDerivedFrom();\r
- mv.addObject(derivationEvent);\r
+ if (derivationEvent != null) {\r
+ mv.addObject(derivationEvent);\r
+ }\r
}\r
return mv;\r
}\r
"derivedFrom.gatheringEvent.exactLocation.$",\r
"specimenTypeDesignations.*",\r
"specimenTypeDesignations.citation.*",\r
- "specimenTypeDesignations.homotypicalGroup.*"\r
+ "specimenTypeDesignations.homotypicalGroup.*",\r
+ "sequences.$",\r
+ "sequences.annotations",\r
});\r
\r
\r
\r
package eu.etaxonomy.cdm.remote.controller;\r
\r
-import static java.net.HttpURLConnection.HTTP_BAD_REQUEST;\r
-\r
import java.io.IOException;\r
import java.util.ArrayList;\r
import java.util.Arrays;\r
import javax.servlet.http.HttpServletRequest;\r
import javax.servlet.http.HttpServletResponse;\r
\r
-import org.apache.commons.lang.ObjectUtils;\r
-import org.apache.http.HttpRequest;\r
import org.apache.log4j.Logger;\r
import org.apache.lucene.queryParser.ParseException;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.web.bind.annotation.RequestParam;\r
import org.springframework.web.servlet.ModelAndView;\r
\r
-\r
+import eu.etaxonomy.cdm.api.service.IClassificationService;\r
import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
import eu.etaxonomy.cdm.api.service.IFeatureTreeService;\r
-import eu.etaxonomy.cdm.api.service.IMarkerService;\r
import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.IOccurrenceService;\r
-import eu.etaxonomy.cdm.api.service.IService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
-import eu.etaxonomy.cdm.api.service.IClassificationService;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
-import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;\r
+import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.api.service.search.SearchResult;\r
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;\r
import eu.etaxonomy.cdm.database.UpdatableRoutingDataSource;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
import eu.etaxonomy.cdm.model.common.IdentifiableEntity;\r
-import eu.etaxonomy.cdm.model.common.IdentifiableSource;\r
import eu.etaxonomy.cdm.model.common.Language;\r
-import eu.etaxonomy.cdm.model.common.Marker;\r
import eu.etaxonomy.cdm.model.common.MarkerType;\r
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.location.NamedArea;\r
-import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
import eu.etaxonomy.cdm.model.media.Media;\r
import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
import eu.etaxonomy.cdm.model.media.MediaUtils;\r
import eu.etaxonomy.cdm.model.name.NameRelationship;\r
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
+import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.model.taxon.TaxonNode;\r
import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
import eu.etaxonomy.cdm.remote.controller.util.ControllerUtils;\r
config.setClassification(classification);\r
}\r
\r
- return (Pager<IdentifiableEntity>) service.findTaxaAndNames(config);\r
+ return service.findTaxaAndNames(config);\r
}\r
\r
/**\r
Set<TaxonNode> nodes = taxon.getTaxonNodes();\r
for (TaxonNode taxonNode : nodes) {\r
if (taxonNode.getClassification().compareTo(classification_uuid) == 0){\r
- resultset.add((Taxon) tb);\r
+ resultset.add(tb);\r
}\r
}\r
if (resultset.size() > 1){\r
Set<TaxonNode> nodes = taxon.getTaxonNodes();\r
for (TaxonNode taxonNode : nodes) {\r
if (taxonNode.getClassification().compareTo(classification_uuid) == 0){\r
- resultset.add((Taxon) tb);\r
+ resultset.add(tb);\r
}\r
}\r
if (resultset.size() > 1){\r
@RequestParam(value = "mimeTypes", required = false) String[] mimeTypes,\r
@RequestParam(value = "relationships", required = false) UuidList relationshipUuids,\r
@RequestParam(value = "relationshipsInvers", required = false) UuidList relationshipInversUuids,\r
+ @RequestParam(value = "includeTaxonDescriptions", required = true) Boolean includeTaxonDescriptions,\r
+ @RequestParam(value = "includeOccurrences", required = true) Boolean includeOccurrences,\r
+ @RequestParam(value = "includeTaxonNameDescriptions", required = true) Boolean includeTaxonNameDescriptions,\r
@RequestParam(value = "widthOrDuration", required = false) Integer widthOrDuration,\r
@RequestParam(value = "height", required = false) Integer height,\r
@RequestParam(value = "size", required = false) Integer size,\r
\r
Set<TaxonRelationshipEdge> includeRelationships = ControllerUtils.loadIncludeRelationships(relationshipUuids, relationshipInversUuids, termService);\r
\r
- List<Media> returnMedia = getMediaForTaxon(taxon, includeRelationships, type, mimeTypes, widthOrDuration, height, size);\r
+ List<Media> returnMedia = getMediaForTaxon(taxon, includeRelationships,\r
+ includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions,\r
+ type, mimeTypes, widthOrDuration, height, size);\r
return returnMedia;\r
}\r
\r
@RequestParam(value = "mimeTypes", required = false) String[] mimeTypes,\r
@RequestParam(value = "relationships", required = false) UuidList relationshipUuids,\r
@RequestParam(value = "relationshipsInvers", required = false) UuidList relationshipInversUuids,\r
+ @RequestParam(value = "includeTaxonDescriptions", required = true) Boolean includeTaxonDescriptions,\r
+ @RequestParam(value = "includeOccurrences", required = true) Boolean includeOccurrences,\r
+ @RequestParam(value = "includeTaxonNameDescriptions", required = true) Boolean includeTaxonNameDescriptions,\r
@RequestParam(value = "widthOrDuration", required = false) Integer widthOrDuration,\r
@RequestParam(value = "height", required = false) Integer height,\r
@RequestParam(value = "size", required = false) Integer size,\r
\r
Set<TaxonRelationshipEdge> includeRelationships = ControllerUtils.loadIncludeRelationships(relationshipUuids, relationshipInversUuids, termService);\r
\r
- List<Media> returnMedia = getMediaForTaxon(taxon, includeRelationships, type, mimeTypes, widthOrDuration, height, size);\r
+ List<Media> returnMedia = getMediaForTaxon(taxon, includeRelationships,\r
+ includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions,\r
+ type, mimeTypes, widthOrDuration, height, size);\r
TaxonNode node;\r
//looking for all medias of genus\r
if (taxon.getTaxonNodes().size()>0){\r
for (TaxonNode child : children){\r
childTaxon = child.getTaxon();\r
childTaxon = (Taxon)taxonService.load(childTaxon.getUuid(), null);\r
- returnMedia.addAll(getMediaForTaxon(childTaxon, includeRelationships, type, mimeTypes, widthOrDuration, height, size));\r
+ returnMedia.addAll(getMediaForTaxon(childTaxon, includeRelationships,\r
+ includeTaxonDescriptions, includeOccurrences, includeTaxonNameDescriptions,\r
+ type, mimeTypes, widthOrDuration, height, size));\r
}\r
}\r
return returnMedia;\r
}\r
\r
- private List<Media> getMediaForTaxon(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Class<? extends MediaRepresentationPart> type, String[] mimeTypes,\r
- Integer widthOrDuration, Integer height, Integer size){\r
+ /**\r
+ *\r
+ * @param taxon\r
+ * @param includeRelationships\r
+ * @param type\r
+ * @param mimeTypes\r
+ * @param widthOrDuration\r
+ * @param height\r
+ * @param size\r
+ * @return\r
+ */\r
+ private List<Media> getMediaForTaxon(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships,\r
+ Boolean includeTaxonDescriptions, Boolean includeOccurrences, Boolean includeTaxonNameDescriptions,\r
+ Class<? extends MediaRepresentationPart> type, String[] mimeTypes, Integer widthOrDuration, Integer height,\r
+ Integer size) {\r
\r
- List<Media> taxonGalleryMedia = service.listTaxonDescriptionMedia(taxon, includeRelationships, false, TAXONDESCRIPTION_MEDIA_INIT_STRATEGY);\r
+ List<Media> taxonGalleryMedia = service.listMedia(taxon, includeRelationships, false, includeTaxonDescriptions,\r
+ includeOccurrences, includeTaxonNameDescriptions, TAXONDESCRIPTION_MEDIA_INIT_STRATEGY);\r
\r
Map<Media, MediaRepresentation> mediaRepresentationMap = MediaUtils.findPreferredMedia(taxonGalleryMedia, type,\r
mimeTypes, null, widthOrDuration, height, size);\r
\r
List<Media> filteredMedia = new ArrayList<Media>(mediaRepresentationMap.size());\r
- for(Media media : mediaRepresentationMap.keySet()){\r
+ for (Media media : mediaRepresentationMap.keySet()) {\r
media.getRepresentations().clear();\r
media.addRepresentation(mediaRepresentationMap.get(media));\r
filteredMedia.add(media);\r
return filteredMedia;\r
}\r
\r
-\r
// ---------------------- code snippet preserved for possible later use --------------------\r
// @RequestMapping(\r
// value = {"/*/portal/taxon/*/descriptions"},\r
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.remote.controller.dto;\r
+\r
+import java.io.IOException;\r
+import java.util.ArrayList;\r
+import java.util.Arrays;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import java.util.UUID;\r
+\r
+import javax.servlet.http.HttpServletRequest;\r
+import javax.servlet.http.HttpServletResponse;\r
+\r
+import org.hibernate.Hibernate;\r
+import org.springframework.beans.factory.annotation.Autowired;\r
+import org.springframework.stereotype.Controller;\r
+import org.springframework.web.bind.annotation.PathVariable;\r
+import org.springframework.web.bind.annotation.RequestMapping;\r
+import org.springframework.web.bind.annotation.RequestParam;\r
+import org.springframework.web.servlet.ModelAndView;\r
+\r
+import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;\r
+import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.api.service.pager.Pager;\r
+import eu.etaxonomy.cdm.model.common.Language;\r
+import eu.etaxonomy.cdm.model.common.LanguageString;\r
+import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;\r
+import eu.etaxonomy.cdm.model.description.Feature;\r
+import eu.etaxonomy.cdm.model.description.KeyStatement;\r
+import eu.etaxonomy.cdm.model.description.PolytomousKey;\r
+import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;\r
+import eu.etaxonomy.cdm.model.name.TypeDesignationBase;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.remote.controller.AbstractController;\r
+import eu.etaxonomy.cdm.remote.dto.polytomouskey.AbstractLinkDto;\r
+import eu.etaxonomy.cdm.remote.dto.polytomouskey.LinkedPolytomousKeyNodeRowDto;\r
+import eu.etaxonomy.cdm.remote.dto.polytomouskey.PolytomousKeyNodeLinkDto;\r
+import eu.etaxonomy.cdm.remote.dto.polytomouskey.TaxonLinkDto;\r
+import eu.etaxonomy.cdm.remote.l10n.LocaleContext;\r
+import eu.etaxonomy.cdm.remote.l10n.TermRepresentation_L10n;\r
+\r
+/**\r
+ * @author l.morris\r
+ * @date Feb 21, 2013\r
+ *\r
+ */\r
+@Controller\r
+@RequestMapping(value = {"/dto/polytomousKey/"})\r
+public class PolytomousKeyNodeDtoController extends AbstractController<PolytomousKey, IPolytomousKeyService> {\r
+\r
+ private static final List<String> NODE_INIT_STRATEGY = Arrays.asList(new String[]{\r
+ "$",\r
+ "question.label",\r
+ "statement.label",\r
+ "taxon.name.$"\r
+ });\r
+\r
+ /*public PolytomousKeyNodeDtoController() {\r
+ super();\r
+ setInitializationStrategy(NODE_INIT_STRATEGY);\r
+ }*/\r
+ \r
+ private ITaxonService taxonService;\r
+ \r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.remote.controller.AbstractController#setService(eu.etaxonomy.cdm.api.service.IService)\r
+ */\r
+ @Override\r
+ @Autowired\r
+ public void setService(IPolytomousKeyService service) {\r
+ this.service = service;\r
+ }\r
+\r
+ @Autowired\r
+ public void setService(ITaxonService taxonService) {\r
+ this.taxonService = taxonService;\r
+ }\r
+\r
+\r
+ @RequestMapping(value = {"{uuid}/linkedStyle"})\r
+ public ModelAndView doLinkedStyle(\r
+ @PathVariable("uuid") UUID uuid,\r
+ HttpServletRequest request,\r
+ HttpServletResponse response) throws IOException {\r
+\r
+ logger.info("doLinkedStyle() - " + requestPathAndQuery(request));\r
+\r
+ ModelAndView mv = new ModelAndView();\r
+ List<LinkedPolytomousKeyNodeRowDto> polytomousKeyNodeRowList = new ArrayList<LinkedPolytomousKeyNodeRowDto>();\r
+ \r
+ List<String> nodePaths = new ArrayList<String>();\r
+ nodePaths.add("$");//initialize all to 1 relations e.g. subkey, statement\r
+ nodePaths.add("statement.$");\r
+ //nodePaths.add("taxon.name.nomenclaturalReference");\r
+ nodePaths.add("taxon.name.$");\r
+ \r
+ List<String> propertyPaths = new ArrayList<String>();\r
+ propertyPaths.add("sources");\r
+ propertyPaths.add("annotations");\r
+ \r
+ //PolytomousKeyListController - don't want a pager and how do we use property paths.\r
+ //create ticket for portal implementation of key stuff so appears in roadmap.\r
+ \r
+ //TaxonBase taxon = taxonService.find(taxonUuid);\r
+ //Pager<PolytomousKey> pager = service.findByTaxonomicScope(taxon, pagerParameters.getPageSize(), pagerParameters.getPageIndex(), null);\r
+ \r
+ //PolytomousKey key = service.findByTaxonomicScope(taxon, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE, initializationStrategy);\r
+ //request mapping /dto/polytomousKey/{uuid}/linkedStyle\r
+ \r
+ PolytomousKey key = service.loadWithNodes(uuid, propertyPaths, nodePaths);\r
+ PolytomousKeyNode keyNode = key.getRoot();\r
+ \r
+ processPolytomousKeyNode(keyNode, polytomousKeyNodeRowList); \r
+ logger.info("size of polytomousKeyNodeRowList - " + polytomousKeyNodeRowList.size());\r
+ \r
+ //return a List of LinkedPolytomousKeyNodeRowDto\r
+ mv.addObject(polytomousKeyNodeRowList); \r
+ return mv; \r
+ }\r
+ \r
+ @RequestMapping(value = {"linkedStyle"})\r
+ public ModelAndView doLinkedStyleByTaxonomicScope(\r
+ @RequestParam(value = "findByTaxonomicScope") UUID taxonUuid,\r
+ HttpServletRequest request,\r
+ HttpServletResponse response) throws IOException {\r
+\r
+ logger.info("doLinkedStyle() - " + requestPathAndQuery(request));\r
+\r
+ ModelAndView mv = new ModelAndView();\r
+ List<LinkedPolytomousKeyNodeRowDto> polytomousKeyNodeRowList = new ArrayList<LinkedPolytomousKeyNodeRowDto>();\r
+ \r
+ List<String> nodePaths = new ArrayList<String>();\r
+ nodePaths.add("$");//initialize all to 1 relations e.g. subkey, statement\r
+ nodePaths.add("statement.$");\r
+ //nodePaths.add("taxon.name.nomenclaturalReference");\r
+ nodePaths.add("taxon.name.$");\r
+ \r
+ List<String> propertyPaths = new ArrayList<String>();\r
+ propertyPaths.add("sources");\r
+ propertyPaths.add("annotations");\r
+ \r
+ //PolytomousKeyListController - don't want a pager and how do we use property paths.\r
+ //create ticket for portal implementation of key stuff so appears in roadmap.\r
+ \r
+ TaxonBase taxon = taxonService.find(taxonUuid);\r
+ //TaxonBase taxon = taxonService.find(taxonUuid);\r
+ logger.error("The taxon uuid " + taxonUuid + " and taxon is " + taxon);\r
+ //Pager<PolytomousKey> pager = service.findByTaxonomicScope(taxon, pagerParameters.getPageSize(), pagerParameters.getPageIndex(), null);\r
+ \r
+ //not getting a result when I use the method findByTaxonomicScope. Maybe I'm giving it the wrong taxonUUID. Ask andreas for a taxon that works\r
+ //\r
+ Pager<PolytomousKey> pager = service.findByTaxonomicScope(taxon, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE, nodePaths);//NODE_INIT_STRATEGY);//initializationStrategy);\r
+ logger.error("Pager size " +pager.getPageSize());\r
+ logger.error("Pager first record " +pager.getFirstRecord());\r
+ logger.error("Pager count " +pager.getCount());\r
+ logger.error("Pager indices " +pager.getIndices());\r
+ logger.error("pager.getRecords().iterator().hasNext() " +pager.getRecords().iterator().hasNext());\r
+ logger.error("pager.getRecords().size() " + pager.getRecords().size());\r
+ \r
+ List<PolytomousKey> keyList = pager.getRecords(); // a pager is returned containing 1 key but pager.getRecords is empty\r
+ \r
+ for(PolytomousKey key : keyList) {\r
+ //request mapping /dto/polytomousKey/{uuid}/linkedStyle\r
+ //PolytomousKey key = service.loadWithNodes(uuid, propertyPaths, nodePaths);\r
+ PolytomousKeyNode keyNode = key.getRoot();\r
+ processPolytomousKeyNode(keyNode, polytomousKeyNodeRowList); \r
+ logger.info("size of polytomousKeyNodeRowList - " + polytomousKeyNodeRowList.size());\r
+\r
+ //return a List of LinkedPolytomousKeyNodeRowDto\r
+ mv.addObject(polytomousKeyNodeRowList); \r
+ }\r
+ return mv; \r
+ }\r
+\r
+ /**\r
+ * @param keyNode\r
+ */\r
+ private void processPolytomousKeyNode(PolytomousKeyNode keyNode, List<LinkedPolytomousKeyNodeRowDto> polytomousKeyNodeRowList) {\r
+ \r
+ KeyStatement rowQuestion = null;\r
+ Integer nodeNumber = null;\r
+ Integer edgeNumber = null;\r
+ Feature rowFeature = null;\r
+ KeyStatement childStatement = null;\r
+ \r
+ int childIndex = 1;\r
+ \r
+ // Get edges of the current node.\r
+ for(PolytomousKeyNode childKeyNode : keyNode.getChildren()){\r
+ \r
+ List<AbstractLinkDto> links = new ArrayList<AbstractLinkDto>(); \r
+ childStatement = childKeyNode.getStatement(); //is this the correct statement\r
+ Taxon taxon = childKeyNode.getTaxon();\r
+ UUID taxonUuid = (taxon == null) ? null : taxon.getUuid();\r
+ \r
+ // Skip node with empty statements (see below for explanation: "Special Case")\r
+ if (childStatement == null && taxonUuid != null) { \r
+ logger.info("Continuing - nodeNumber " + keyNode.getNodeNumber() + "Child nodeNumber " + childKeyNode.getNodeNumber());\r
+ continue;\r
+ }\r
+ \r
+ /*\r
+ * Special case: Child nodes with empty statements but taxa as leaf are to treated as if \r
+ * all those taxa where direct children of the source node.\r
+ */ \r
+ List<PolytomousKeyNode> children = childKeyNode.getChildren();\r
+ boolean islinkToManyTaxa = false;\r
+\r
+ if (children != null && children.size() > 0) { \r
+ \r
+ Taxon childTaxon = children.get(0).getTaxon();\r
+ if (childTaxon != null) {\r
+ islinkToManyTaxa = children.get(0).getStatement() != null && childTaxon.getUuid() == null;\r
+ //logger.info("islinkToManyTaxa " + islinkToManyTaxa + " node number " + keyNode.getNodeNumber());\r
+ }\r
+ }\r
+\r
+ boolean islinkToTaxon = (taxonUuid == null) ? false : true;\r
+ boolean islinkToSubKey = false;\r
+ if (childKeyNode.getSubkey() != null)\r
+ {\r
+ islinkToSubKey = (childKeyNode.getSubkey().getUuid() == null) ? false : true;\r
+ }\r
+ boolean islinkToOtherNode = (childKeyNode.getOtherNode() == null) ? false : true;\r
+ boolean islinkToNode = ((childKeyNode.getNodeNumber() != null) && !islinkToManyTaxa && !islinkToOtherNode) ? true : false;\r
+ \r
+ AbstractLinkDto link;\r
+\r
+ // a PolytomousKeyNode can either link to Taxa or to Nodes\r
+ if (islinkToManyTaxa || islinkToTaxon) {\r
+ if (islinkToManyTaxa) {\r
+ for(PolytomousKeyNode child : childKeyNode.getChildren()){\r
+ logger.info("islinkToManyTaxa " + islinkToManyTaxa + " node number " + keyNode.getNodeNumber());\r
+ link = new TaxonLinkDto(child.getTaxon().getName());\r
+ link.setUuid(taxonUuid);\r
+ links.add(link);\r
+ }\r
+ } else {\r
+ if (islinkToTaxon) {\r
+ logger.info("islinkToTaxon " + islinkToTaxon + " node number " + keyNode.getNodeNumber());\r
+ link = new TaxonLinkDto(childKeyNode.getTaxon().getName());\r
+ link.setUuid(childKeyNode.getTaxon().getUuid());\r
+ links.add(link);\r
+ }\r
+ }\r
+ } else {\r
+ if (islinkToNode) {\r
+ logger.info("islinkToNode " + islinkToNode + " node number " + keyNode.getNodeNumber());\r
+ link = new PolytomousKeyNodeLinkDto(childKeyNode.getNodeNumber());\r
+ link.setUuid(childKeyNode.getUuid());\r
+ links.add(link);\r
+ }\r
+ if (islinkToOtherNode) {\r
+ logger.info("islinkToOtherNode " + islinkToOtherNode + " node number " + keyNode.getNodeNumber());\r
+ link = new PolytomousKeyNodeLinkDto(childKeyNode.getOtherNode().getNodeNumber());\r
+ link.setUuid(childKeyNode.getOtherNode().getUuid());\r
+ links.add(link); \r
+ }\r
+ } \r
+\r
+ /*if (islinkToManyTaxa) {\r
+ for(PolytomousKeyNode child : childKeyNode.getChildren()){\r
+ logger.info("islinkToManyTaxa " + islinkToManyTaxa + " node number " + keyNode.getNodeNumber());\r
+ link = new TaxonLinkDto(child.getTaxon().getName());\r
+ link.setUuid(taxonUuid);\r
+ links.add(link);\r
+ }\r
+ } else {\r
+ if (islinkToTaxon) {\r
+ logger.info("islinkToTaxon " + islinkToTaxon + " node number " + keyNode.getNodeNumber());\r
+ link = new TaxonLinkDto(childKeyNode.getTaxon().getName());\r
+ link.setUuid(childKeyNode.getTaxon().getUuid());\r
+ links.add(link);\r
+ }\r
+ }*/\r
+ //TODO: isLinkToSubkey\r
+ \r
+ boolean hasQuestion = false;\r
+ if (keyNode.getQuestion() != null)\r
+ {\r
+ hasQuestion = (keyNode.getQuestion().getLabel() == null) ? false : true; \r
+ }\r
+ rowQuestion = keyNode.getQuestion();\r
+ logger.info("rowQuestion " + rowQuestion + " node number " + keyNode.getNodeNumber());\r
+\r
+ boolean hasFeature = (keyNode.getFeature() == null) ? false : true;\r
+ rowFeature = keyNode.getFeature();\r
+ logger.info("rowFeature " + rowFeature + " node number " + keyNode.getNodeNumber());\r
+ \r
+ if (childStatement != null) {\r
+ logger.info("childStatement " + childStatement.getLabel() + " node number " + keyNode.getNodeNumber());\r
+ }\r
+\r
+ nodeNumber = keyNode.getNodeNumber();\r
+ \r
+ //set the parameters in the LinkedPolytomousKeyodeRowDto and add it to the list\r
+ LinkedPolytomousKeyNodeRowDto keyRow = new LinkedPolytomousKeyNodeRowDto();\r
+ keyRow.setKeyNodeUuid(keyNode.getUuid());\r
+ keyRow.setEdgeNumber(new Integer(childIndex));//edgeNumber is always 2\r
+ \r
+ List<Language> languages = LocaleContext.getLanguages();\r
+ \r
+ //if(Hibernate.isInitialized(childStatement.getLabel())){\r
+ if (childStatement != null) {\r
+ LanguageString label = MultilanguageTextHelper.getPreferredLanguageString(childStatement.getLabel(), languages);\r
+ keyRow.setChildStatement(label.getText());\r
+ }\r
+ \r
+ keyRow.setRowFeature(rowFeature);\r
+ keyRow.setRowQuestion(rowQuestion);\r
+ keyRow.setNodeNumber(nodeNumber);\r
+ //set links\r
+ keyRow.setLinks(links);\r
+ polytomousKeyNodeRowList.add(keyRow);\r
+ \r
+ childIndex++;\r
+ }\r
+ \r
+ //edgeNumber = new Integer(childIndex);\r
+ //set the parameters in the LinkedPolytomousKeyodeRowDto and add it to the list\r
+ /*LinkedPolytomousKeyNodeRowDto keyRow = new LinkedPolytomousKeyNodeRowDto();\r
+ keyRow.setKey(keyNode);\r
+ keyRow.setEdgeNumber(edgeNumber);\r
+ keyRow.setChildStatement(childStatement);\r
+ keyRow.setRowFeature(rowFeature);\r
+ keyRow.setRowQuestion(rowQuestion);\r
+ keyRow.setNodeNumber(nodeNumber);//isLinkToManyTaxa\r
+ //set links\r
+ keyRow.setLinks(links);*/ \r
+ \r
+ // Recurse into child nodes.\r
+ for(PolytomousKeyNode childKeyNode : keyNode.getChildren()) {\r
+ processPolytomousKeyNode(childKeyNode, polytomousKeyNodeRowList);\r
+ }\r
+ \r
+ }\r
+}\r
*/\r
package eu.etaxonomy.cdm.remote.dto.polytomouskey;\r
\r
+import java.util.UUID;\r
+\r
/**\r
* @author l.morris\r
* @date Jan 25, 2013\r
*/\r
public abstract class AbstractLinkDto {\r
\r
+ private UUID uuid;\r
+ //modifying text?\r
+\r
+ /**\r
+ * @return the uuid\r
+ */\r
+ public UUID getUuid() {\r
+ return uuid;\r
+ }\r
+\r
+ /**\r
+ * @param uuid the uuid to set\r
+ */\r
+ public void setUuid(UUID uuid) {\r
+ this.uuid = uuid;\r
+ }\r
+ \r
+ \r
}\r
package eu.etaxonomy.cdm.remote.dto.polytomouskey;\r
\r
import java.util.List;\r
+import java.util.UUID;\r
\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.KeyStatement;\r
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;\r
\r
/**\r
+ * \r
+ * A row to display each PolytomousKeyNode in a flat data structure for a LinkedStyle display of the PolytomousKey \r
* @author l.morris\r
* @date Jan 25, 2013\r
* \r
*/\r
-public class LinkedPolytomousKeyNodeEntryDto {\r
+public class LinkedPolytomousKeyNodeRowDto {\r
\r
- private PolytomousKeyNode key;\r
- private KeyStatement entryQuestion;\r
+ private UUID keyNodeUuid;//or should we use the entire polytomous key node?\r
+ private KeyStatement rowQuestion;\r
private Integer nodeNumber = null;\r
private Integer edgeNumber = null;\r
- private Feature entryFeature;\r
- private KeyStatement childStatement;\r
+ private Feature rowFeature;\r
+ private String childStatement;\r
private List<AbstractLinkDto> links;\r
\r
\r
- public LinkedPolytomousKeyNodeEntryDto() {\r
+ public LinkedPolytomousKeyNodeRowDto() {\r
}\r
- \r
+ \r
\r
/**\r
- * @return the key\r
+ * @return the keyNodeUuid\r
*/\r
- public PolytomousKeyNode getKey() {\r
- return key;\r
+ public UUID getKeyNodeUuid() {\r
+ return keyNodeUuid;\r
}\r
+\r
+\r
/**\r
- * @param key the key to set\r
+ * @param keyNodeUuid the keyNodeUuid to set\r
*/\r
- public void setKey(PolytomousKeyNode key) {\r
- this.key = key;\r
+ public void setKeyNodeUuid(UUID keyNodeUuid) {\r
+ this.keyNodeUuid = keyNodeUuid;\r
}\r
+\r
/**\r
- * @return the entryQuestion\r
+ * @return the RowQuestion\r
*/\r
- public KeyStatement getEntryQuestion() {\r
- return entryQuestion;\r
+ public KeyStatement getRowQuestion() {\r
+ return rowQuestion;\r
}\r
/**\r
- * @param entryQuestion the entryQuestion to set\r
+ * @param RowQuestion the RowQuestion to set\r
*/\r
- public void setEntryQuestion(KeyStatement entryQuestion) {\r
- this.entryQuestion = entryQuestion;\r
+ public void setRowQuestion(KeyStatement RowQuestion) {\r
+ this.rowQuestion = RowQuestion;\r
}\r
/**\r
* @return the nodeNumber\r
this.edgeNumber = edgeNumber;\r
}\r
/**\r
- * @return the entryFeature\r
+ * @return the RowFeature\r
*/\r
- public Feature getEntryFeature() {\r
- return entryFeature;\r
+ public Feature getRowFeature() {\r
+ return rowFeature;\r
}\r
/**\r
- * @param entryFeature the entryFeature to set\r
+ * @param RowFeature the RowFeature to set\r
*/\r
- public void setEntryFeature(Feature entryFeature) {\r
- this.entryFeature = entryFeature;\r
+ public void setRowFeature(Feature RowFeature) {\r
+ this.rowFeature = RowFeature;\r
}\r
/**\r
* @return the childStatement\r
*/\r
- public KeyStatement getChildStatement() {\r
+ public String getChildStatement() {\r
return childStatement;\r
}\r
/**\r
* @param childStatement the childStatement to set\r
*/\r
- public void setChildStatement(KeyStatement childStatement) {\r
+ public void setChildStatement(String childStatement) {\r
this.childStatement = childStatement;\r
}\r
/**\r
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.remote.dto.polytomouskey;\r
+\r
+/**\r
+ * @author l.morris\r
+ * @date Feb 22, 2013\r
+ *\r
+ */\r
+public class PolytomousKeyNodeLinkDto extends AbstractLinkDto {\r
+\r
+ private Integer nodeNumber = null;\r
+ //request path?\r
+ //modifying text?\r
+ \r
+ /**\r
+ * @param nodeNumber\r
+ */\r
+ public PolytomousKeyNodeLinkDto(Integer nodeNumber) {\r
+ super();\r
+ this.nodeNumber = nodeNumber;\r
+ }\r
+ \r
+\r
+ /**\r
+ * @return the nodeNumber\r
+ */\r
+ public Integer getNodeNumber() {\r
+ return nodeNumber;\r
+ }\r
+\r
+\r
+ /**\r
+ * @param nodeNumber the nodeNumber to set\r
+ */\r
+ public void setNodeNumber(Integer nodeNumber) {\r
+ this.nodeNumber = nodeNumber;\r
+ }\r
+ \r
+}\r
--- /dev/null
+// $Id$\r
+/**\r
+* Copyright (C) 2009 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+package eu.etaxonomy.cdm.remote.dto.polytomouskey;\r
+\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+\r
+/**\r
+ * @author l.morris\r
+ * @date Feb 22, 2013\r
+ *\r
+ */\r
+public class TaxonLinkDto extends AbstractLinkDto {\r
+ \r
+ private TaxonNameBase taxonName = null;\r
+ \r
+\r
+ /**\r
+ * @param taxonNameBase\r
+ */\r
+ public TaxonLinkDto(TaxonNameBase taxonNameBase) {\r
+ super();\r
+ this.taxonName = taxonNameBase;\r
+ }\r
+\r
+ /**\r
+ * @return the taxonName\r
+ */\r
+ public TaxonNameBase getTaxonName() {\r
+ return taxonName;\r
+ }\r
+\r
+ /**\r
+ * @param taxonName the taxonName to set\r
+ */\r
+ public void setTaxonName(TaxonNameBase taxonName) {\r
+ this.taxonName = taxonName;\r
+ }\r
+ \r
+ \r
+}\r
import net.sf.json.JsonConfig;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.document.Fieldable;
/**
* @author Andreas Kohlbecker
@Override
public JSONObject processBeanSecondStep(Document document, JSONObject json, JsonConfig jsonConfig) {
- List<Field> fields = document.getFields();
- for (Field field : fields) {
+ List<Fieldable> fields = document.getFields();
+ for (Fieldable field : fields) {
// no need to handle multivalued fields, since we don't have these in case of the cdmlib
json.element(field.name(), field.stringValue());
}
<value>PolytomousKeyNode.statement</value>\r
<value>PolytomousKeyNode.modifyingText</value>\r
\r
+ <value>LinkedPolytomousKeyNodeRowDto.childStatement</value>\r
+ <value>LinkedPolytomousKeyNodeRowDto.rowQuestion</value>\r
+ <value>LinkedPolytomousKeyNodeRowDto.rowFeature</value>\r
+ <!-- value>LinkedPolytomousKeyNodeRowDto.keyNode</value-->\r
+\r
<value>Media.representations</value>\r
<value>MediaRepresentation.parts</value>\r
\r
+ <value>Sequence.locus</value>\r
+ <value>Sequence.genBankAccession</value>\r
+\r
<value>Annotation.annotationType</value>\r
\r
<value>DerivationEvent.derivatives</value>\r
<value>declaringClass</value><!-- DefaultExclude -->\r
<value>metaClass</value><!-- DefaultExclude -->\r
<value>id</value>\r
+ <!--\r
+ TODO temporarily commented out,\r
+ see #3347 (services and REST service controller for molecular classes implemented)\r
<value>annotations</value>\r
- <value>cacheStrategy</value>\r
<value>markers</value>\r
+ -->\r
+ <value>cacheStrategy</value>\r
<value>createdBy</value>\r
<value>updatedBy</value>\r
<value>inDescription</value>\r
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.LazyInitializationException;
-import org.hibernate.collection.PersistentCollection;
-import org.hibernate.engine.SessionImplementor;
+import org.hibernate.collection.spi.PersistentCollection;
+import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.proxy.HibernateProxy;
import org.hibernate.proxy.LazyInitializer;
import org.joda.time.DateTime;
private Taxon taxon;
private IBook sec;
private IBook book;
- private Reference bookSection;
- private TeamOrPersonBase authorTeam;
- private NonViralName name;
+ private Reference<?> bookSection;
+ private TeamOrPersonBase<?> authorTeam;
+ private NonViralName<?> name;
private LSID lsid;
private TaxonDescription taxonDescription;
- ReferenceFactory refFactory = ReferenceFactory.newInstance();
-
+
@BeforeClass
public static void onSetUp() {
DefaultTermInitializer defaultTermInitializer = new DefaultTermInitializer();
name = BotanicalName.NewInstance(null);
name.setNameCache("nameCache");
- INomenclaturalReference nomenclaturalReference = refFactory.newArticle();
+ INomenclaturalReference nomenclaturalReference = ReferenceFactory.newArticle();
nomenclaturalReference.setTitleCache("nomenclaturalReference", true);
name.setNomenclaturalReference(nomenclaturalReference);
name.setNomenclaturalMicroReference("1");
name.setAuthorshipCache("authorshipCache");
name.setRank(Rank.SPECIES());
- sec = refFactory.newBook();
+ sec = ReferenceFactory.newBook();
sec.setAuthorTeam(authorTeam);
sec.setTitleCache("sec.titleCache", true);
sec.setLsid(new LSID("urn:lsid:example.org:references:1"));
// ------------------------------------------------------
- book = refFactory.newBook();
+ book = ReferenceFactory.newBook();
book.setTitle("Book.title");
book.setAuthorTeam(authorTeam);
book.setCreated(new DateTime(2004, 12, 25, 12, 0, 0, 0));
book.setVolume("Volume 1");
book.addSource(IdentifiableSource.NewInstance("http://persitent.IdentifiableSources.foo/1"));
- bookSection = refFactory.newBookSection();
+ bookSection = ReferenceFactory.newBookSection();
bookSection.setInReference((Reference)book);
bookSection.setPages("999 ff.");
bookSection.setTitle("BookSection.title");
return null;
}
- public Object getImplementation(SessionImplementor arg0)
- throws HibernateException {
- // TODO Auto-generated method stub
- return null;
- }
-
public Class getPersistentClass() {
// TODO Auto-generated method stub
return null;
}
- public void setSession(SessionImplementor arg0)
- throws HibernateException {
- // TODO Auto-generated method stub
-
- }
-
public void setUnwrap(boolean arg0) {
// TODO Auto-generated method stub
}
+ @Override
+ public Object getImplementation(
+ org.hibernate.engine.spi.SessionImplementor session)
+ throws HibernateException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean isReadOnlySettingAvailable() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isReadOnly() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public void setReadOnly(boolean readOnly) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void setSession(
+ org.hibernate.engine.spi.SessionImplementor session)
+ throws HibernateException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void unsetSession() {
+ // TODO Auto-generated method stub
+
+ }
+
}
package eu.etaxonomy.cdm.remote.view;\r
\r
-import java.io.IOException;\r
import java.net.URI;\r
import java.util.ArrayList;\r
import java.util.HashMap;\r
import java.util.Map;\r
import java.util.Set;\r
\r
+import org.apache.log4j.Logger;\r
import org.custommonkey.xmlunit.XMLUnit;\r
import org.dozer.Mapper;\r
import org.hibernate.envers.RevisionType;\r
import org.unitils.spring.annotation.SpringApplicationContext;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
-import common.Logger;\r
-\r
+import eu.etaxonomy.cdm.api.service.pager.Pager;\r
+import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
+import eu.etaxonomy.cdm.common.UriUtils;\r
import eu.etaxonomy.cdm.model.common.LSID;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
import eu.etaxonomy.cdm.model.view.AuditEvent;\r
import eu.etaxonomy.cdm.model.view.AuditEventRecord;\r
import eu.etaxonomy.cdm.model.view.AuditEventRecordImpl;\r
-import eu.etaxonomy.cdm.api.service.pager.Pager;\r
-import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
-import eu.etaxonomy.cdm.common.UriUtils;\r
import eu.etaxonomy.cdm.remote.dto.oaipmh.DeletedRecord;\r
import eu.etaxonomy.cdm.remote.dto.oaipmh.Granularity;\r
import eu.etaxonomy.cdm.remote.dto.oaipmh.MetadataPrefix;\r
import eu.etaxonomy.cdm.remote.dto.oaipmh.ResumptionToken;\r
import eu.etaxonomy.cdm.remote.dto.oaipmh.SetSpec;\r
-import eu.etaxonomy.cdm.remote.view.oaipmh.dc.GetRecordView;\r
import eu.etaxonomy.cdm.remote.view.oaipmh.IdentifyView;\r
import eu.etaxonomy.cdm.remote.view.oaipmh.ListIdentifiersView;\r
import eu.etaxonomy.cdm.remote.view.oaipmh.ListMetadataFormatsView;\r
-import eu.etaxonomy.cdm.remote.view.oaipmh.dc.ListRecordsView;\r
import eu.etaxonomy.cdm.remote.view.oaipmh.ListSetsView;\r
+import eu.etaxonomy.cdm.remote.view.oaipmh.dc.GetRecordView;\r
+import eu.etaxonomy.cdm.remote.view.oaipmh.dc.ListRecordsView;\r
\r
@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/applicationContext-test.xml")\r
public class OaiPmhViewTest extends UnitilsJUnit4 {\r
import java.util.Map;\r
import java.util.Set;\r
\r
-import javax.xml.transform.Result;\r
-import javax.xml.transform.Source;\r
-import javax.xml.transform.Transformer;\r
-import javax.xml.transform.TransformerFactory;\r
import javax.xml.transform.stream.StreamResult;\r
\r
import org.custommonkey.xmlunit.XMLAssert;\r
import org.custommonkey.xmlunit.XMLUnit;\r
-import org.hibernate.envers.event.AuditEventListener;\r
import org.joda.time.DateTime;\r
import org.joda.time.DateTimeZone;\r
import org.junit.Before;\r
<props>
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
<artifactId>lucene-highlighter</artifactId>
</dependency>
<dependency>
- <!--
- TODO temporarily added,
- see http://dev.e-taxonomy.eu/trac/ticket/2031
- Update Hibernate to latest stable 4.1.1
- -->
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-grouping</artifactId>
- <version>3.2.0</version>
- </dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-core</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-database</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-dbmaintainer</artifactId>
- <scope>test</scope>
</dependency>
+<!-- <dependency> -->
+<!-- <groupId>org.unitils</groupId> -->
+<!-- <artifactId>unitils-core</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
+<!-- <dependency> -->
+<!-- <groupId>org.unitils</groupId> -->
+<!-- <artifactId>unitils-database</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
+<!-- <dependency> -->
+<!-- <groupId>org.unitils</groupId> -->
+<!-- <artifactId>unitils-dbmaintainer</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-dbunit</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-easymock</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-mock</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-inject</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-orm</artifactId>
- <scope>test</scope>
- </dependency>
+<!-- <dependency> -->
+<!-- <groupId>org.unitils</groupId> -->
+<!-- <artifactId>unitils-easymock</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
+<!-- <dependency> -->
+<!-- <groupId>org.unitils</groupId> -->
+<!-- <artifactId>unitils-mock</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
+<!-- <dependency> -->
+<!-- <groupId>org.unitils</groupId> -->
+<!-- <artifactId>unitils-inject</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
+<!-- <dependency> -->
+<!-- <groupId>org.unitils</groupId> -->
+<!-- <artifactId>unitils-orm</artifactId> -->
+<!-- <exclusions> -->
+<!-- <exclusion> -->
+<!-- <groupId>javax.persistence</groupId> -->
+<!-- <artifactId>persistence-api</artifactId> -->
+<!-- </exclusion> -->
+<!-- </exclusions> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
<dependency>
<groupId>org.unitils</groupId>
<artifactId>unitils-spring</artifactId>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.dbunit</groupId>
- <artifactId>dbunit</artifactId>
- </dependency>
+<!-- <dependency> -->
+<!-- <groupId>org.dbunit</groupId> -->
+<!-- <artifactId>dbunit</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
<dependency>
<groupId>xmlunit</groupId>
<artifactId>xmlunit</artifactId>
+ <scope>test</scope>
</dependency>
- <dependency>
- <groupId>com.carrotsearch</groupId>
- <artifactId>junit-benchmarks</artifactId>
- <scope>test</scope>
- </dependency>
+<!-- <dependency> -->
+<!-- <groupId>com.carrotsearch</groupId> -->
+<!-- <artifactId>junit-benchmarks</artifactId> -->
+<!-- <scope>test</scope> -->
+<!-- </dependency> -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.test</artifactId>
package eu.etaxonomy.cdm.api.application;\r
\r
import java.util.EnumSet;\r
-import java.util.HashSet;\r
import java.util.List;\r
-import java.util.Set;\r
import java.util.UUID;\r
\r
import org.apache.log4j.Logger;\r
import org.springframework.core.io.Resource;\r
import org.springframework.security.access.PermissionEvaluator;\r
import org.springframework.security.authentication.ProviderManager;\r
-import org.springframework.security.core.GrantedAuthority;\r
import org.springframework.security.core.context.SecurityContext;\r
import org.springframework.security.core.context.SecurityContextHolder;\r
import org.springframework.transaction.PlatformTransactionManager;\r
import eu.etaxonomy.cdm.database.DbSchemaValidation;\r
import eu.etaxonomy.cdm.database.ICdmDataSource;\r
import eu.etaxonomy.cdm.model.common.CdmBase;\r
-import eu.etaxonomy.cdm.model.common.CdmMetaData;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.common.GrantedAuthorityImpl;\r
-import eu.etaxonomy.cdm.model.common.User;\r
import eu.etaxonomy.cdm.persistence.hibernate.permission.CRUD;\r
-import eu.etaxonomy.cdm.persistence.hibernate.permission.Operation;\r
-import eu.etaxonomy.cdm.persistence.hibernate.permission.Role;\r
\r
\r
/**\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.context.ApplicationContext;\r
import org.springframework.context.ApplicationContextAware;\r
-import org.springframework.orm.hibernate3.HibernateTransactionManager;\r
+import org.springframework.orm.hibernate4.HibernateTransactionManager;\r
import org.springframework.security.access.PermissionEvaluator;\r
import org.springframework.security.authentication.ProviderManager;\r
import org.springframework.stereotype.Component;\r
logger.debug("Isolation level = " + txDef.getIsolationLevel());\r
logger.debug("Timeout = " + txDef.getTimeout());\r
logger.debug("Read Only = " + txDef.isReadOnly());\r
- // org.springframework.orm.hibernate3.HibernateTransactionManager\r
+ // org.springframework.orm.hibernate4.HibernateTransactionManager\r
// provides more transaction/session-related debug information.\r
}\r
\r
* @return The List<Taxon> of root taxa.
* @deprecated obsolete when using classification
*/
+ @Deprecated
public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren);
/**
* @return The List<Taxon> of root taxa.
* @deprecated obsolete when using classification
*/
+ @Deprecated
public List<Taxon> getRootTaxa(Rank rank, Reference sec, boolean onlyWithChildren, boolean withMisapplications, List<String> propertyPaths);
/**
* @return
* @deprecated use TermService#getVocabulary(VocabularyType) instead
*/
+ @Deprecated
public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary();
/**
* @return a Pager Taxon instances
* @see <a href="http://lucene.apache.org/java/2_4_0/queryparsersyntax.html">Apache Lucene - Query Parser Syntax</a>
*/
+ @Override
public Pager<TaxonBase> search(Class<? extends TaxonBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths);
/**
* @param mimeTypes
* @return
*
- * FIXME candidate for harmonization - rename to listMedia()
+ * @deprecated use {@link #listMedia(Taxon, Set, boolean, boolean, List)} instead
*/
+ @Deprecated
public List<MediaRepresentation> getAllMedia(Taxon taxon, int size, int height, int widthOrDuration, String[] mimeTypes);
/**
- * Lists all Media found in an any TaxonDescription associated with this taxon.
+ * Lists all Media found in an any TaxonDescription associated with this
+ * taxon.
+ *
* @param taxon
- * @param includeRelationships the given list of TaxonRelationshipEdges will be taken into
- * account when retrieving media associated with the given taxon. Can be NULL.
- * @param limitToGalleries whether to take only TaxonDescription into account which are marked as gallery
+ * @param includeRelationships
+ * the given list of TaxonRelationshipEdges will be taken into
+ * account when retrieving media associated with the given taxon.
+ * Can be NULL.
+ * @param limitToGalleries
+ * whether to take only TaxonDescription into account which are
+ * marked as gallery
* @return
+ * @deprecated use {@link #listMedia(Taxon, Set, boolean, boolean, List)} instead
*/
+ @Deprecated
public List<Media> listTaxonDescriptionMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, boolean limitToGalleries, List<String> propertyPath);
+ /**
+ * Lists all Media found in an any TaxonDescription, NameDescription,
+ * SpecimenOrObservationBase, DnaSample Chromatograms, etc. associated with this taxon.
+ *
+ * @param taxon
+ * @param includeRelationships
+ * the given list of TaxonRelationshipEdges will be taken into
+ * account when retrieving media associated with the given taxon.
+ * Can be NULL.
+ * @param limitToGalleries
+ * whether to take only descriptions into account which are
+ * marked as gallery, can be NULL
+ * @param includeTaxonDescriptions
+ * whether to take TaxonDescriptions into account, can be NULL
+ * @param includeOccurrences
+ * whether to take TaxonDescriptions into account, can be NULL
+ * @param includeTaxonNameDescriptions
+ * whether to take TaxonNameDescriptions into account, can be NULL
+ * @param propertyPath
+ * @return
+ */
+ public List<Media> listMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships,
+ Boolean limitToGalleries, Boolean includeTaxonDescriptions, Boolean includeOccurrences,
+ Boolean includeTaxonNameDescriptions, List<String> propertyPath);
public List<TaxonBase> findTaxaByID(Set<Integer> listOfIDs);
}
for (T entity: entitiesToUpdate){
if (entity.getTitleCache() != null){
- System.err.println(entity.getTitleCache());
+ //System.err.println(entity.getTitleCache());
}else{
- System.err.println("no titleCache" + ((NonViralName)entity).getNameCache());
+ //System.err.println("no titleCache" + ((NonViralName)entity).getNameCache());
}
-
}
saveOrUpdate(entitiesToUpdate);
monitor.worked(list.size());
monitor.done();
}
+ /**
+ * @param cacheStrategy
+ * @param entitiesToUpdate
+ * @param entity
+ */
/**
* @param cacheStrategy
* @param entitiesToUpdate
private void updateTitleCacheForSingleEntity(
IIdentifiableEntityCacheStrategy<T> cacheStrategy,
List<T> entitiesToUpdate, T entity) {
+
+ assert (entity.isProtectedTitleCache() == false );
+
//exclude recursive inreferences
if (entity.isInstanceOf(Reference.class)){
- Reference ref = CdmBase.deproxy(entity, Reference.class);
+ Reference<?> ref = CdmBase.deproxy(entity, Reference.class);
if (ref.getInReference() != null && ref.getInReference().equals(ref)){
return;
}
}
+ //define the correct cache strategy
IIdentifiableEntityCacheStrategy entityCacheStrategy = cacheStrategy;
if (entityCacheStrategy == null){
entityCacheStrategy = entity.getCacheStrategy();
}
}
entity.setCacheStrategy(entityCacheStrategy);
+
+
+ //old titleCache
entity.setProtectedTitleCache(true);
- String titleCache = entity.getTitleCache();
+ String oldTitleCache = entity.getTitleCache();
entity.setProtectedTitleCache(false);
- String nameCache = null;
+
+ //NonViralNames have more caches //TODO handle in NameService
+ String oldNameCache = null;
+ String oldFullTitleCache = null;
if (entity instanceof NonViralName ){
- NonViralName nvn = (NonViralName) entity;
+ NonViralName<?> nvn = (NonViralName) entity;
if (!nvn.isProtectedNameCache()){
nvn.setProtectedNameCache(true);
- nameCache = nvn.getNameCache();
+ oldNameCache = nvn.getNameCache();
nvn.setProtectedNameCache(false);
}
-
-
+ if (!nvn.isProtectedFullTitleCache()){
+ nvn.setProtectedFullTitleCache(true);
+ oldFullTitleCache = nvn.getFullTitleCache();
+ nvn.setProtectedFullTitleCache(false);
+ }
}
setOtherCachesNull(entity); //TODO find better solution
+
String newTitleCache = entityCacheStrategy.getTitleCache(entity);
- if (titleCache == null || titleCache != null && ! titleCache.equals(newTitleCache) ){
+ if (oldTitleCache == null || oldTitleCache != null && ! oldTitleCache.equals(newTitleCache) ){
entity.setTitleCache(null, false);
entity.getTitleCache();
if (entity instanceof NonViralName){
- NonViralName nvn = (NonViralName) entity;
- String newnameCache = nvn.getNameCache();
+ NonViralName<?> nvn = (NonViralName) entity;
+ nvn.getNameCache();
+ nvn.getFullTitleCache();
}
entitiesToUpdate.add(entity);
}else if (entity instanceof NonViralName){
- NonViralName nvn = (NonViralName) entity;
+ NonViralName<?> nvn = (NonViralName) entity;
String newnameCache = nvn.getNameCache();
- if (nameCache == null || (nameCache != null && !nameCache.equals(newnameCache))){
+ String newFullTitleCache = nvn.getFullTitleCache();
+ if (oldNameCache == null || (oldNameCache != null && !oldNameCache.equals(newnameCache))){
+ entitiesToUpdate.add(entity);
+ }else if (oldFullTitleCache == null || (oldFullTitleCache != null && !oldFullTitleCache.equals(newFullTitleCache))){
entitiesToUpdate.add(entity);
}
}
\r
/**\r
* @deprecated To be removed for harmonization see http://dev.e-taxonomy.eu/trac/wiki/CdmLibraryConventions\r
+ * Replace by load(UUID, propertyPaths)\r
*/\r
@Deprecated\r
public NonViralName findNameByUuid(UUID uuid, List<String> propertyPaths){\r
@Override\r
protected void setOtherCachesNull(TaxonNameBase name) {\r
if (name.isInstanceOf(NonViralName.class)){\r
- NonViralName nvn = CdmBase.deproxy(name, NonViralName.class);\r
+ NonViralName<?> nvn = CdmBase.deproxy(name, NonViralName.class);\r
if (! nvn.isProtectedNameCache()){\r
nvn.setNameCache(null, false);\r
}\r
import java.util.Set;\r
\r
import org.apache.log4j.Logger;\r
-import org.hibernate.Hibernate;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.stereotype.Service;\r
import org.springframework.transaction.annotation.Propagation;\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeConfigurator;\r
import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
-import eu.etaxonomy.cdm.api.service.pager.PagerUtils;\r
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;\r
import eu.etaxonomy.cdm.api.service.util.TaxonRelationshipEdge;\r
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;\r
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;\r
-import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;\r
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;\r
import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.IndividualsAssociation;\r
-import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.location.WaterbodyOrCountry;\r
import eu.etaxonomy.cdm.model.media.Media;\r
-import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
-import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.occurrence.DerivationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;\r
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;\r
import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
import eu.etaxonomy.cdm.persistence.dao.AbstractBeanInitializer;\r
import eu.etaxonomy.cdm.persistence.dao.common.IDefinedTermDao;\r
-import eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao;\r
import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;\r
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
* FIXME Candidate for harmonization\r
* move to termService\r
*/\r
+ @Override\r
public WaterbodyOrCountry getCountryByIso(String iso639) {\r
return this.definedTermDao.getCountryByIso(iso639);\r
\r
* FIXME Candidate for harmonization\r
* move to termService\r
*/\r
+ @Override\r
public List<WaterbodyOrCountry> getWaterbodyOrCountryByName(String name) {\r
List<? extends DefinedTermBase> terms = this.definedTermDao.findByTitle(WaterbodyOrCountry.class, name, null, null, null, null, null, null) ;\r
List<WaterbodyOrCountry> countries = new ArrayList<WaterbodyOrCountry>();\r
return countries;\r
}\r
\r
+ @Override\r
@Autowired\r
protected void setDao(IOccurrenceDao dao) {\r
this.dao = dao;\r
}\r
\r
+ @Override\r
public Pager<DerivationEvent> getDerivationEvents(SpecimenOrObservationBase occurence, Integer pageSize,Integer pageNumber, List<String> propertyPaths) {\r
Integer numberOfResults = dao.countDerivationEvents(occurence);\r
\r
return new DefaultPagerImpl<DerivationEvent>(pageNumber, numberOfResults, pageSize, results);\r
}\r
\r
+ @Override\r
public Pager<DeterminationEvent> getDeterminations(SpecimenOrObservationBase occurrence, TaxonBase taxonBase, Integer pageSize,Integer pageNumber, List<String> propertyPaths) {\r
Integer numberOfResults = dao.countDeterminations(occurrence, taxonBase);\r
\r
return new DefaultPagerImpl<DeterminationEvent>(pageNumber, numberOfResults, pageSize, results);\r
}\r
\r
+ @Override\r
public Pager<Media> getMedia(SpecimenOrObservationBase occurence,Integer pageSize, Integer pageNumber, List<String> propertyPaths) {\r
Integer numberOfResults = dao.countMedia(occurence);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.IOccurrenceService#list(java.lang.Class, eu.etaxonomy.cdm.model.taxon.TaxonBase, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
*/\r
+ @Override\r
public Pager<SpecimenOrObservationBase> list(Class<? extends SpecimenOrObservationBase> type, TaxonBase determinedAs, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
Integer numberOfResults = dao.count(type,determinedAs);\r
List<SpecimenOrObservationBase> results = new ArrayList<SpecimenOrObservationBase>();\r
Set<Integer> occurrenceIds = new HashSet<Integer>();\r
List<T> occurrences = new ArrayList<T>();\r
\r
- Integer limit = PagerUtils.limitFor(pageSize);\r
- Integer start = PagerUtils.startFor(pageSize, pageNumber);\r
-\r
+// Integer limit = PagerUtils.limitFor(pageSize);\r
+// Integer start = PagerUtils.startFor(pageSize, pageNumber);\r
\r
associatedTaxon = (Taxon) taxonDao.load(associatedTaxon.getUuid());\r
\r
if(includeRelationships != null) {\r
- taxa = taxonService.listRelatedTaxa(associatedTaxon, includeRelationships, maxDepth, pageSize, pageSize, propertyPaths);\r
+ taxa = taxonService.listRelatedTaxa(associatedTaxon, includeRelationships, maxDepth, null, null, propertyPaths);\r
}\r
\r
taxa.add(associatedTaxon);\r
\r
for (Taxon taxon : taxa) {\r
- List<T> perTaxonOccurrences = dao.listByAssociatedTaxon(type, taxon, limit, start, orderHints, propertyPaths);\r
+ List<T> perTaxonOccurrences = dao.listByAssociatedTaxon(type, taxon, null, null, orderHints, propertyPaths);\r
for (SpecimenOrObservationBase o : perTaxonOccurrences) {\r
occurrenceIds.add(o.getId());\r
}\r
}\r
\r
- occurrences = (List<T>) dao.listByIds(occurrenceIds, null, null, orderHints, propertyPaths);\r
+ occurrences = (List<T>) dao.listByIds(occurrenceIds, pageSize, pageNumber, orderHints, propertyPaths);\r
\r
return new DefaultPagerImpl<T>(pageNumber, occurrenceIds.size(), pageSize, occurrences);\r
\r
// Remove old relationships
taxonRelationship.setToTaxon(null);
taxonRelationship.setFromTaxon(null);
+
+
}
+ oldTaxon.getRelationsFromThisTaxon().clear();
+ oldTaxon.getRelationsToThisTaxon().clear();
//Move descriptions to new taxon
List<TaxonDescription> descriptions = new ArrayList<TaxonDescription>( oldTaxon.getDescriptions()); //to avoid concurrent modification errors (newAcceptedTaxon.addDescription() modifies also oldtaxon.descritpions())
newAcceptedTaxon.addDescription(description);
}
- oldTaxonNode.delete();
-
+ oldTaxonNode.delete();
return synonmyRelationship.getSynonym();
}
}
import java.util.Set;\r
import java.util.UUID;\r
\r
-import org.apache.log4j.Level;\r
import org.apache.log4j.Logger;\r
import org.apache.lucene.index.CorruptIndexException;\r
import org.apache.lucene.queryParser.ParseException;\r
import org.apache.lucene.search.BooleanQuery;\r
import org.apache.lucene.search.Query;\r
import org.apache.lucene.search.SortField;\r
-import org.apache.lucene.search.TopDocs;\r
-import org.apache.lucene.search.grouping.TopGroups;\r
import org.springframework.beans.factory.annotation.Autowired;\r
import org.springframework.stereotype.Service;\r
import org.springframework.transaction.annotation.Propagation;\r
import eu.etaxonomy.cdm.model.common.RelationshipBase;\r
import eu.etaxonomy.cdm.model.common.RelationshipBase.Direction;\r
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;\r
+import eu.etaxonomy.cdm.model.description.DescriptionBase;\r
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;\r
import eu.etaxonomy.cdm.model.description.Feature;\r
import eu.etaxonomy.cdm.model.description.IIdentificationKey;\r
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;\r
+import eu.etaxonomy.cdm.model.description.SpecimenDescription;\r
import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
import eu.etaxonomy.cdm.model.description.TaxonInteraction;\r
+import eu.etaxonomy.cdm.model.description.TaxonNameDescription;\r
import eu.etaxonomy.cdm.model.media.Media;\r
import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
import eu.etaxonomy.cdm.model.media.MediaUtils;\r
+import eu.etaxonomy.cdm.model.molecular.DnaSample;\r
+import eu.etaxonomy.cdm.model.molecular.Sequence;\r
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;\r
import eu.etaxonomy.cdm.model.name.Rank;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.model.name.ZoologicalName;\r
import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;\r
+import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;\r
import eu.etaxonomy.cdm.model.reference.Reference;\r
import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.cdm.model.taxon.Synonym;\r
import eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao;\r
import eu.etaxonomy.cdm.persistence.dao.common.IOrderedTermVocabularyDao;\r
import eu.etaxonomy.cdm.persistence.dao.name.ITaxonNameDao;\r
+import eu.etaxonomy.cdm.persistence.dao.occurrence.IOccurrenceDao;\r
import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;\r
import eu.etaxonomy.cdm.persistence.fetch.CdmFetch;\r
import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
@Autowired\r
private IOrderedTermVocabularyDao orderedVocabularyDao;\r
\r
+ @Autowired\r
+ private IOccurrenceDao occurrenceDao;\r
+\r
@Autowired\r
private AbstractBeanInitializer beanInitializer;\r
\r
* FIXME Candidate for harmonization\r
* rename searchByName ?\r
*/\r
+ @Override\r
public List<TaxonBase> searchTaxaByName(String name, Reference sec) {\r
return dao.getTaxaByName(name, sec);\r
}\r
* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllSynonyms(int, int)\r
*/\r
+ @Override\r
public List<Synonym> getAllSynonyms(int limit, int start) {\r
return dao.getAllSynonyms(limit, start);\r
}\r
* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllTaxa(int, int)\r
*/\r
+ @Override\r
public List<Taxon> getAllTaxa(int limit, int start) {\r
return dao.getAllTaxa(limit, start);\r
}\r
* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.reference.Reference, boolean)\r
*/\r
+ @Override\r
public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren) {\r
if (cdmFetch == null){\r
cdmFetch = CdmFetch.NO_FETCH();\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getRootTaxa(eu.etaxonomy.cdm.model.name.Rank, eu.etaxonomy.cdm.model.reference.Reference, boolean, boolean)\r
*/\r
+ @Override\r
public List<Taxon> getRootTaxa(Rank rank, Reference sec, boolean onlyWithChildren,boolean withMisapplications, List<String> propertyPaths) {\r
return dao.getRootTaxa(rank, sec, null, onlyWithChildren, withMisapplications, propertyPaths);\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllRelationships(int, int)\r
*/\r
+ @Override\r
public List<RelationshipBase> getAllRelationships(int limit, int start){\r
return dao.getAllRelationships(limit, start);\r
}\r
* FIXME Candidate for harmonization\r
* is this the same as termService.getVocabulary(VocabularyEnum.TaxonRelationshipType) ?\r
*/\r
+ @Override\r
@Deprecated\r
public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary() {\r
\r
* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#swapSynonymWithAcceptedTaxon(eu.etaxonomy.cdm.model.taxon.Synonym)\r
*/\r
+ @Override\r
@Transactional(readOnly = false)\r
public void swapSynonymAndAcceptedTaxon(Synonym synonym, Taxon acceptedTaxon){\r
\r
}\r
\r
\r
+ @Override\r
public Taxon changeSynonymToRelatedTaxon(Synonym synonym, Taxon toTaxon, TaxonRelationshipType taxonRelationshipType, Reference citation, String microcitation){\r
\r
// Get name from synonym\r
super.updateTitleCacheImpl(clazz, stepSize, cacheStrategy, monitor);\r
}\r
\r
+ @Override\r
@Autowired\r
protected void setDao(ITaxonDao dao) {\r
this.dao = dao;\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByName(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer)\r
*/\r
+ @Override\r
public Pager<TaxonBase> findTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize,Integer pageNumber) {\r
Integer numberOfResults = dao.countTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#listTaxaByName(java.lang.Class, java.lang.String, java.lang.String, java.lang.String, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, java.lang.Integer, java.lang.Integer)\r
*/\r
+ @Override\r
public List<TaxonBase> listTaxaByName(Class<? extends TaxonBase> clazz, String uninomial, String infragenericEpithet, String specificEpithet, String infraspecificEpithet, Rank rank, Integer pageSize,Integer pageNumber) {\r
Integer numberOfResults = dao.countTaxaByName(clazz, uninomial, infragenericEpithet, specificEpithet, infraspecificEpithet, rank);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#listToTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
*/\r
+ @Override\r
public List<TaxonRelationship> listToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths){\r
Integer numberOfResults = dao.countTaxonRelationships(taxon, type, TaxonRelationship.Direction.relatedTo);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#pageToTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
*/\r
+ @Override\r
public Pager<TaxonRelationship> pageToTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
Integer numberOfResults = dao.countTaxonRelationships(taxon, type, TaxonRelationship.Direction.relatedTo);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#listFromTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
*/\r
+ @Override\r
public List<TaxonRelationship> listFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths){\r
Integer numberOfResults = dao.countTaxonRelationships(taxon, type, TaxonRelationship.Direction.relatedFrom);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#pageFromTaxonRelationships(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
*/\r
+ @Override\r
public Pager<TaxonRelationship> pageFromTaxonRelationships(Taxon taxon, TaxonRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
Integer numberOfResults = dao.countTaxonRelationships(taxon, type, TaxonRelationship.Direction.relatedFrom);\r
\r
* @param propertyPaths\r
* @return an List which is not specifically ordered\r
*/\r
+ @Override\r
public List<Taxon> listRelatedTaxa(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, Integer maxDepth,\r
Integer limit, Integer start, List<String> propertyPaths) {\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonyms(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
*/\r
+ @Override\r
public Pager<SynonymRelationship> getSynonyms(Taxon taxon, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
Integer numberOfResults = dao.countSynonyms(taxon, type);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getSynonyms(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List)\r
*/\r
+ @Override\r
public Pager<SynonymRelationship> getSynonyms(Synonym synonym, SynonymRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {\r
Integer numberOfResults = dao.countSynonyms(synonym, type);\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getHomotypicSynonymsByHomotypicGroup(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)\r
*/\r
+ @Override\r
public List<Synonym> getHomotypicSynonymsByHomotypicGroup(Taxon taxon, List<String> propertyPaths){\r
Taxon t = (Taxon)dao.load(taxon.getUuid(), propertyPaths);\r
return t.getHomotypicSynonymsByHomotypicGroup();\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getHeterotypicSynonymyGroups(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.List)\r
*/\r
+ @Override\r
public List<List<Synonym>> getHeterotypicSynonymyGroups(Taxon taxon, List<String> propertyPaths){\r
Taxon t = (Taxon)dao.load(taxon.getUuid(), propertyPaths);\r
List<HomotypicalGroup> homotypicalGroups = t.getHeterotypicSynonymyGroups();\r
return heterotypicSynonymyGroups;\r
}\r
\r
+ @Override\r
public List<UuidAndTitleCache<TaxonBase>> findTaxaAndNamesForEditor(IFindTaxaAndNamesConfigurator configurator){\r
\r
List<UuidAndTitleCache<TaxonBase>> result = new ArrayList<UuidAndTitleCache<TaxonBase>>();\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaAndNames(eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator)\r
*/\r
+ @Override\r
public Pager<IdentifiableEntity> findTaxaAndNames(IFindTaxaAndNamesConfigurator configurator) {\r
\r
List<IdentifiableEntity> results = new ArrayList<IdentifiableEntity>();\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getAllMedia(eu.etaxonomy.cdm.model.taxon.Taxon, int, int, int, java.lang.String[])\r
*/\r
+ @Override\r
public List<MediaRepresentation> getAllMedia(Taxon taxon, int size, int height, int widthOrDuration, String[] mimeTypes){\r
List<MediaRepresentation> medRep = new ArrayList<MediaRepresentation>();\r
taxon = (Taxon)dao.load(taxon.getUuid());\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#listTaxonDescriptionMedia(eu.etaxonomy.cdm.model.taxon.Taxon, boolean)\r
*/\r
+ @Override\r
public List<Media> listTaxonDescriptionMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships, boolean limitToGalleries, List<String> propertyPath){\r
+ return listMedia(taxon, includeRelationships, limitToGalleries, true, false, false, propertyPath);\r
+ }\r
+\r
\r
+ /* (non-Javadoc)\r
+ * @see eu.etaxonomy.cdm.api.service.ITaxonService#listMedia(eu.etaxonomy.cdm.model.taxon.Taxon, java.util.Set, boolean, java.util.List)\r
+ */\r
+ @Override\r
+ public List<Media> listMedia(Taxon taxon, Set<TaxonRelationshipEdge> includeRelationships,\r
+ Boolean limitToGalleries, Boolean includeTaxonDescriptions, Boolean includeOccurrences,\r
+ Boolean includeTaxonNameDescriptions, List<String> propertyPath) {\r
\r
List<Taxon> taxa = new ArrayList<Taxon>();\r
- List<TaxonDescription> taxonDescriptions = new ArrayList<TaxonDescription>();\r
+ List<Media> taxonMedia = new ArrayList<Media>();\r
+\r
+ if (limitToGalleries == null) {\r
+ limitToGalleries = false;\r
+ }\r
\r
- if(includeRelationships != null) {\r
- taxa = (listRelatedTaxa(taxon, includeRelationships, null, null, null, null));\r
+ // --- resolve related taxa\r
+ if (includeRelationships != null) {\r
+ taxa = listRelatedTaxa(taxon, includeRelationships, null, null, null, null);\r
}\r
- taxa.add(taxon);\r
\r
+ taxa.add((Taxon) dao.load(taxon.getUuid()));\r
\r
- for (Taxon t : taxa) {\r
- taxonDescriptions.addAll(descriptionService.listTaxonDescriptions(t, null, null, null, null, propertyPath));\r
+ if(includeTaxonDescriptions != null && includeTaxonDescriptions){\r
+ List<TaxonDescription> taxonDescriptions = new ArrayList<TaxonDescription>();\r
+ // --- TaxonDescriptions\r
+ for (Taxon t : taxa) {\r
+ taxonDescriptions.addAll(descriptionService.listTaxonDescriptions(t, null, null, null, null, propertyPath));\r
+ }\r
+ for (TaxonDescription taxonDescription : taxonDescriptions) {\r
+ if (!limitToGalleries || taxonDescription.isImageGallery()) {\r
+ for (DescriptionElementBase element : taxonDescription.getElements()) {\r
+ for (Media media : element.getMedia()) {\r
+ taxonMedia.add(media);\r
+ }\r
+ }\r
+ }\r
+ }\r
}\r
\r
- // collect all media of the given taxon\r
- List<Media> taxonMedia = new ArrayList<Media>();\r
- List<Media> taxonGalleryMedia = new ArrayList<Media>();\r
- for(TaxonDescription desc : taxonDescriptions){\r
+ if(includeOccurrences != null && includeOccurrences) {\r
+ Set<SpecimenOrObservationBase> specimensOrObservations = new HashSet<SpecimenOrObservationBase>();\r
+ // --- Specimens\r
+ for (Taxon t : taxa) {\r
+ specimensOrObservations.addAll(occurrenceDao.listByAssociatedTaxon(null, t, null, null, null, null));\r
+ }\r
+ for (SpecimenOrObservationBase occurrence : specimensOrObservations) {\r
+\r
+ taxonMedia.addAll(occurrence.getMedia());\r
+\r
+ // SpecimenDescriptions\r
+ Set<SpecimenDescription> specimenDescriptions = occurrence.getSpecimenDescriptions();\r
+ for (DescriptionBase specimenDescription : specimenDescriptions) {\r
+ if (!limitToGalleries || specimenDescription.isImageGallery()) {\r
+ Set<DescriptionElementBase> elements = specimenDescription.getElements();\r
+ for (DescriptionElementBase element : elements) {\r
+ for (Media media : element.getMedia()) {\r
+ taxonMedia.add(media);\r
+ }\r
+ }\r
+ }\r
+ }\r
\r
- if(desc.isImageGallery()){\r
- for(DescriptionElementBase element : desc.getElements()){\r
- for(Media media : element.getMedia()){\r
- taxonGalleryMedia.add(media);\r
+ // Collection\r
+ if (occurrence instanceof DerivedUnitBase) {\r
+ if (((DerivedUnitBase) occurrence).getCollection() != null){\r
+ taxonMedia.addAll(((DerivedUnitBase) occurrence).getCollection().getMedia());\r
}\r
}\r
- } else if(!limitToGalleries){\r
- for(DescriptionElementBase element : desc.getElements()){\r
- for(Media media : element.getMedia()){\r
- taxonMedia.add(media);\r
+\r
+ // Chromatograms\r
+ if (occurrence instanceof DnaSample) {\r
+ Set<Sequence> sequences = ((DnaSample) occurrence).getSequences();\r
+ for (Sequence sequence : sequences) {\r
+ taxonMedia.addAll(sequence.getChromatograms());\r
}\r
}\r
+\r
}\r
+ }\r
\r
+ if(includeTaxonNameDescriptions != null && includeTaxonNameDescriptions) {\r
+ // --- TaxonNameDescription\r
+ Set<TaxonNameDescription> nameDescriptions = new HashSet<TaxonNameDescription>();\r
+ for (Taxon t : taxa) {\r
+ nameDescriptions .addAll(t.getName().getDescriptions());\r
+ }\r
+ for(TaxonNameDescription nameDescription: nameDescriptions){\r
+ if (!limitToGalleries || nameDescription.isImageGallery()) {\r
+ Set<DescriptionElementBase> elements = nameDescription.getElements();\r
+ for (DescriptionElementBase element : elements) {\r
+ for (Media media : element.getMedia()) {\r
+ taxonMedia.add(media);\r
+ }\r
+ }\r
+ }\r
+ }\r
}\r
\r
- taxonGalleryMedia.addAll(taxonMedia);\r
- return taxonGalleryMedia;\r
+ beanInitializer.initializeAll(taxonMedia, propertyPath);\r
+ return taxonMedia;\r
}\r
\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxaByID(java.util.Set)\r
*/\r
+ @Override\r
public List<TaxonBase> findTaxaByID(Set<Integer> listOfIDs) {\r
return this.dao.listByIds(listOfIDs, null, null, null, null);\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findTaxonByUuid(UUID uuid, List<String> propertyPaths)\r
*/\r
+ @Override\r
public TaxonBase findTaxonByUuid(UUID uuid, List<String> propertyPaths){\r
return this.dao.findByUuid(uuid, null ,propertyPaths);\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#countAllRelationships()\r
*/\r
+ @Override\r
public int countAllRelationships() {\r
return this.dao.countAllRelationships();\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findIdenticalTaxonNames(java.util.List)\r
*/\r
+ @Override\r
public List<TaxonNameBase> findIdenticalTaxonNames(List<String> propertyPath) {\r
return this.dao.findIdenticalTaxonNames(propertyPath);\r
}\r
try{\r
nameService.delete(name, new NameDeletionConfigurator());\r
}catch (DataChangeNoRollbackException ex){\r
- if (logger.isDebugEnabled())logger.debug("Name wasn't deleted as it is referenced");\r
+ if (logger.isDebugEnabled()) {\r
+ logger.debug("Name wasn't deleted as it is referenced");\r
+ }\r
}\r
}\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#findIdenticalTaxonNameIds(java.util.List)\r
*/\r
+ @Override\r
public List<TaxonNameBase> findIdenticalTaxonNameIds(List<String> propertyPath) {\r
\r
return this.dao.findIdenticalNamesNew(propertyPath);\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#getPhylumName(eu.etaxonomy.cdm.model.name.TaxonNameBase)\r
*/\r
+ @Override\r
public String getPhylumName(TaxonNameBase name){\r
return this.dao.getPhylumName(name);\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonymRelationships(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon)\r
*/\r
+ @Override\r
public long deleteSynonymRelationships(Synonym syn, Taxon taxon) {\r
return dao.deleteSynonymRelationships(syn, taxon);\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonymRelationships(eu.etaxonomy.cdm.model.taxon.Synonym)\r
*/\r
+ @Override\r
public long deleteSynonymRelationships(Synonym syn) {\r
return dao.deleteSynonymRelationships(syn, null);\r
}\r
/* (non-Javadoc)\r
* @see eu.etaxonomy.cdm.api.service.ITaxonService#listSynonymRelationships(eu.etaxonomy.cdm.model.taxon.TaxonBase, eu.etaxonomy.cdm.model.taxon.SynonymRelationshipType, java.lang.Integer, java.lang.Integer, java.util.List, java.util.List, eu.etaxonomy.cdm.model.common.RelationshipBase.Direction)\r
*/\r
+ @Override\r
public List<SynonymRelationship> listSynonymRelationships(\r
TaxonBase taxonBase, SynonymRelationshipType type, Integer pageSize, Integer pageNumber,\r
List<OrderHint> orderHints, List<String> propertyPaths, Direction direction) {\r
LuceneSearch luceneSearch = new LuceneSearch(getSession(), TaxonBase.class);\r
QueryFactory queryFactory = new QueryFactory(luceneSearch);\r
\r
- SortField[] sortFields = new SortField[]{SortField.FIELD_SCORE, new SortField("titleCache__sort", false)};\r
+ SortField[] sortFields = new SortField[]{SortField.FIELD_SCORE, new SortField("titleCache__sort", SortField.STRING, false)};\r
luceneSearch.setSortFields(sortFields);\r
\r
// ---- search criteria\r
}\r
\r
\r
+ @Override\r
public Pager<SearchResult<TaxonBase>> findByEverythingFullText(String queryString,\r
Classification classification, List<Language> languages, boolean highlightFragments,\r
Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) throws CorruptIndexException, IOException, ParseException {\r
LuceneSearch luceneSearch = new LuceneSearch(getSession(), DescriptionElementBase.class);\r
QueryFactory queryFactory = new QueryFactory(luceneSearch);\r
\r
- SortField[] sortFields = new SortField[]{SortField.FIELD_SCORE, new SortField("inDescription.taxon.titleCache__sort", false)};\r
+ SortField[] sortFields = new SortField[]{SortField.FIELD_SCORE, new SortField("inDescription.taxon.titleCache__sort", SortField.STRING, false)};\r
luceneSearch.setSortFields(sortFields);\r
\r
// ---- search criteria\r
return stringBuilder;\r
}\r
\r
+ @Override\r
public List<Synonym> createInferredSynonyms(Taxon taxon, Classification classification, SynonymRelationshipType type, boolean doWithMisappliedNames){\r
List <Synonym> inferredSynonyms = new ArrayList<Synonym>();\r
List<Synonym> inferredSynonymsToBeRemoved = new ArrayList<Synonym>();\r
HashMap <UUID, ZoologicalName> zooHashMap = new HashMap<UUID, ZoologicalName>();\r
\r
\r
- UUID uuid= taxon.getName().getUuid();\r
- ZoologicalName taxonName = getZoologicalName(uuid, zooHashMap);\r
+ UUID nameUuid= taxon.getName().getUuid();\r
+ ZoologicalName taxonName = getZoologicalName(nameUuid, zooHashMap);\r
String epithetOfTaxon = null;\r
String infragenericEpithetOfTaxon = null;\r
String infraspecificEpithetOfTaxon = null;\r
\r
if (node.getClassification().equals(classification)){\r
if (!node.isTopmostNode()){\r
- TaxonNode parent = (TaxonNode)node.getParent();\r
+ TaxonNode parent = node.getParent();\r
parent = (TaxonNode)HibernateProxyHelper.deproxy(parent);\r
- TaxonNameBase parentName = parent.getTaxon().getName();\r
+ TaxonNameBase<?,?> parentName = parent.getTaxon().getName();\r
ZoologicalName zooParentName = HibernateProxyHelper.deproxy(parentName, ZoologicalName.class);\r
Taxon parentTaxon = (Taxon)HibernateProxyHelper.deproxy(parent.getTaxon());\r
Rank rankOfTaxon = taxonName.getRank();\r
\r
\r
if (type.equals(SynonymRelationshipType.INFERRED_EPITHET_OF())){\r
- Set<String> genusNames = new HashSet<String>();\r
\r
+ \r
for (SynonymRelationship synonymRelationOfParent:synonymRelationshipsOfParent){\r
Synonym syn = synonymRelationOfParent.getSynonym();\r
\r
TaxonNameBase parentName, TaxonBase syn) {\r
\r
Synonym inferredEpithet;\r
- TaxonNameBase synName;\r
+ TaxonNameBase<?,?> synName;\r
ZoologicalName inferredSynName;\r
HibernateProxyHelper.deproxy(syn);\r
\r
String idInSourceSyn = getIdInSource(syn);\r
String idInSourceTaxon = getIdInSource(taxon);\r
// Determine the sourceReference\r
- Reference sourceReference = syn.getSec();\r
+ Reference<?> sourceReference = syn.getSec();\r
\r
if (sourceReference == null){\r
logger.warn("The synonym has no sec reference because it is a misapplied name! Take the sec reference of taxon");\r
}*/\r
String taxonId = idInSourceTaxon+ "; " + idInSourceSyn;\r
\r
- IdentifiableSource originalSource;\r
- originalSource = IdentifiableSource.NewInstance(taxonId, INFERRED_EPITHET_NAMESPACE, sourceReference, null);\r
+ \r
+ IdentifiableSource originalSource = IdentifiableSource.NewInstance(taxonId, INFERRED_EPITHET_NAMESPACE, sourceReference, null);\r
\r
inferredEpithet.addSource(originalSource);\r
\r
return citation;\r
}\r
\r
+ @Override\r
public List<Synonym> createAllInferredSynonyms(Taxon taxon, Classification tree, boolean doWithMisappliedNames){\r
List <Synonym> inferredSynonyms = new ArrayList<Synonym>();\r
\r
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
import eu.etaxonomy.cdm.model.common.Extension;
import eu.etaxonomy.cdm.model.common.ExtensionType;
+import eu.etaxonomy.cdm.model.common.Marker;
+import eu.etaxonomy.cdm.model.common.MarkerType;
import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
import eu.etaxonomy.cdm.model.description.AbsenceTerm;
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
private List<PresenceAbsenceTermBase> byRankIgnoreStatusList = null;
- private Map<NamedArea, Set<NamedArea>> subAreaMap = new HashMap<NamedArea, Set<NamedArea>>();
+ private final Map<NamedArea, Set<NamedArea>> subAreaMap = new HashMap<NamedArea, Set<NamedArea>>();
/**
private Rank findNextHigherRank(Rank rank) {
rank = (Rank) termService.load(rank.getUuid());
OrderedTermVocabulary<Rank> rankVocabulary = nameService.getRankVocabulary();
- return (Rank) rankVocabulary.getNextHigherTerm(rank);
+ return rankVocabulary.getNextHigherTerm(rank);
}
/**
* If the doClear is set all existing description elements will be cleared.
*
* @param taxon
- * @param doClear
+ * @param doClear will remove all existing Distributions if the taxon already
+ * has a MarkerType.COMPUTED() TaxonDescription
* @return
*/
private TaxonDescription findComputedDescription(Taxon taxon, boolean doClear) {
// find existing one
for (TaxonDescription description : taxon.getDescriptions()) {
-// if (description.hasMarker(MarkerType.COMPUTED, true)) { // TODO
- if (description.getTitleCache().equals(descriptionTitle)) {
+ if (description.hasMarker(MarkerType.COMPUTED(), true)) {
logger.debug("reusing description for " + taxon.getTitleCache());
if (doClear) {
+ int deleteCount = 0;
for (DescriptionElementBase descriptionElement : description.getElements()) {
- descriptionService.deleteDescriptionElement(descriptionElement);
+ if(descriptionElement instanceof Distribution) {
+ descriptionService.deleteDescriptionElement(descriptionElement);
+ deleteCount++;
+ }
}
- logger.debug("\tall elements cleared");
+ logger.debug("\t" + deleteCount +" distributions cleared");
}
return description;
}
logger.debug("creating new description for " + taxon.getTitleCache());
TaxonDescription description = TaxonDescription.NewInstance(taxon);
description.setTitleCache(descriptionTitle, true);
-// description.addMarker(Marker.NewInstance(MarkerType.COMPUTED, true)); // TODO
+ description.addMarker(Marker.NewInstance(MarkerType.COMPUTED(), true));
return description;
}
import java.io.ByteArrayInputStream;
import java.io.InputStream;
+import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@Service("lsidDataService")
@Transactional
public class LsidDataServiceImpl implements LSIDDataService {
-
+ private static final Logger logger = Logger.getLogger(LsidDataServiceImpl.class);
+
private LSIDRegistry lsidRegistry;
@Autowired
}
public InputStream getData(LSID lsid) throws LSIDServerException {
- IIdentifiableDao identfiableDAO = lsidRegistry.lookupDAO(lsid);
+ IIdentifiableDao<?> identfiableDAO = lsidRegistry.lookupDAO(lsid);
if(identfiableDAO == null) { // we do not have a mapping for lsids with this authority or namespace
throw new LSIDServerException(LSIDException.UNKNOWN_LSID, "Unknown LSID");
}
public InputStream getDataByRange(LSID lsid, Integer start, Integer length)
throws LSIDServerException {
- IIdentifiableDao identfiableDAO = lsidRegistry.lookupDAO(lsid);
+ IIdentifiableDao<?> identfiableDAO = lsidRegistry.lookupDAO(lsid);
if(identfiableDAO == null) { // we do not have a mapping for lsids with this authority or namespace
throw new LSIDServerException(LSIDException.UNKNOWN_LSID, "Unknown LSID");
}
}
public void initService(LSIDServiceConfig arg0) throws LSIDServerException {
- // TODO Auto-generated method stub
-
+ //TODO
+ logger.warn("initService(LSIDServiceConfig) not yet implemented");
}
}
import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.orm.hibernate3.HibernateTransactionManager;
+import org.springframework.orm.hibernate4.HibernateTransactionManager;
import org.springframework.stereotype.Component;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.Transactional;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.MultiReader;
+import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
-import org.apache.lucene.search.Searcher;
-import org.apache.lucene.search.BooleanClause.Occur;
-import org.hibernate.Session;
import org.hibernate.search.Search;
import org.hibernate.search.SearchFactory;
-import org.hibernate.search.reader.ReaderProvider;
-import org.hibernate.search.store.DirectoryProvider;
+import org.hibernate.search.indexes.IndexReaderAccessor;
import eu.etaxonomy.cdm.model.common.CdmBase;
* @return
*/
@Override
- public Searcher getSearcher() {
+ public IndexSearcher getSearcher() {
if(searcher == null){
SearchFactory searchFactory = Search.getFullTextSession(session).getSearchFactory();
List<IndexReader> readers = new ArrayList<IndexReader>();
for(Class<? extends CdmBase> type : directorySelectClasses){
- DirectoryProvider[] directoryProviders = searchFactory.getDirectoryProviders(type);
- logger.info(directoryProviders[0].getDirectory().toString());
-
- ReaderProvider readerProvider = searchFactory.getReaderProvider();
- readers.add(readerProvider.openReader(directoryProviders[0]));
+ //OLD
+// DirectoryProvider[] directoryProviders = searchFactory.getDirectoryProviders(type);
+// logger.info(directoryProviders[0].getDirectory().toString());
+
+// ReaderProvider readerProvider = searchFactory.getReaderProvider();
+ IndexReaderAccessor ira = searchFactory.getIndexReaderAccessor();
+ IndexReader reader = ira.open(type);
+// readers.add(readerProvider.openReader(directoryProviders[0]));
+ readers.add(reader);
}
if(readers.size() > 1){
MultiReader multireader = new MultiReader(readers.toArray(new IndexReader[readers.size()]), true);
import java.io.IOException;
import java.util.Collection;
-import javax.management.RuntimeErrorException;
-
import org.apache.log4j.Logger;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.MultiCollector;
import org.apache.lucene.search.Query;
-import org.apache.lucene.search.Searcher;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.SortField;
import org.apache.lucene.search.TermQuery;
-import org.apache.lucene.search.grouping.AllGroupsCollector;
-import org.apache.lucene.search.grouping.FirstPassGroupingCollector;
import org.apache.lucene.search.grouping.GroupDocs;
import org.apache.lucene.search.grouping.SearchGroup;
-import org.apache.lucene.search.grouping.SecondPassGroupingCollector;
+import org.apache.lucene.search.grouping.TermAllGroupsCollector;
+import org.apache.lucene.search.grouping.TermFirstPassGroupingCollector;
+import org.apache.lucene.search.grouping.TermSecondPassGroupingCollector;
import org.apache.lucene.search.grouping.TopGroups;
+import org.apache.lucene.util.Version;
import org.hibernate.Session;
+import org.hibernate.search.ProjectionConstants;
import org.hibernate.search.Search;
import org.hibernate.search.SearchFactory;
-import org.hibernate.search.engine.DocumentBuilder;
-import org.hibernate.search.reader.ReaderProvider;
-import org.hibernate.search.store.DirectoryProvider;
import eu.etaxonomy.cdm.hibernate.search.GroupByTaxonClassBridge;
import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.model.description.TextData;
import eu.etaxonomy.cdm.model.taxon.Taxon;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.cdm.persistence.dao.hibernate.AlternativeSpellingSuggestionParser;
/**
*
/**
* @return
*/
- public Searcher getSearcher() {
+ public IndexSearcher getSearcher() {
if(searcher == null){
searcher = new IndexSearcher(getIndexReader());
searcher.setDefaultFieldSortScoring(true, true);
public IndexReader getIndexReader() {
SearchFactory searchFactory = Search.getFullTextSession(session).getSearchFactory();
- DirectoryProvider[] directoryProviders = searchFactory.getDirectoryProviders(getDirectorySelectClass());
- logger.info(directoryProviders[0].getDirectory().toString());
+// OLD
+// DirectoryProvider[] directoryProviders = searchFactory.getDirectoryProviders(getDirectorySelectClass());
+// logger.info(directoryProviders[0].getDirectory().toString());
- ReaderProvider readerProvider = searchFactory.getReaderProvider();
- IndexReader reader = readerProvider.openReader(directoryProviders[0]);
+// ReaderProvider readerProvider = searchFactory.getReaderProvider();
+// IndexReader reader = readerProvider.openReader(directoryProviders[0]);
+
+ IndexReader reader = searchFactory.getIndexReaderAccessor().open(getDirectorySelectClass());
return reader;
}
*/
public QueryParser getQueryParser() {
Analyzer analyzer = getAnalyzer();
- QueryParser parser = new QueryParser("titleCache", analyzer);
+ Version version = AlternativeSpellingSuggestionParser.version;
+ QueryParser parser = new QueryParser(version, "titleCache", analyzer);
return parser;
}
// perform the search (needs two passes for grouping)
// - first pass
- FirstPassGroupingCollector firstPassCollector = new FirstPassGroupingCollector(GROUP_BY_FIELD, withinGroupSort, limit);
+ TermFirstPassGroupingCollector firstPassCollector = new TermFirstPassGroupingCollector(GROUP_BY_FIELD, withinGroupSort, limit);
getSearcher().search(fullQuery, firstPassCollector);
- Collection<SearchGroup> topGroups = firstPassCollector.getTopGroups(0, true); // no offset here since we need the first item for the max score
+ Collection<SearchGroup<String>> topGroups = firstPassCollector.getTopGroups(0, true); // no offset here since we need the first item for the max score
if (topGroups == null) {
return null;
boolean getScores = true;
boolean getMaxScores = true;
boolean fillFields = true;
- AllGroupsCollector allGroupsCollector = new AllGroupsCollector(GROUP_BY_FIELD);
- SecondPassGroupingCollector secondPassCollector = new SecondPassGroupingCollector(GROUP_BY_FIELD, topGroups, groupSort, withinGroupSort, maxDocsPerGroup , getScores, getMaxScores, fillFields);
+ TermAllGroupsCollector allGroupsCollector = new TermAllGroupsCollector(GROUP_BY_FIELD);
+ TermSecondPassGroupingCollector secondPassCollector = new TermSecondPassGroupingCollector(GROUP_BY_FIELD, topGroups, groupSort, withinGroupSort, maxDocsPerGroup , getScores, getMaxScores, fillFields);
getSearcher().search(fullQuery, MultiCollector.wrap(secondPassCollector, allGroupsCollector));
- TopGroups groupsResult = secondPassCollector.getTopGroups(0); // no offset here since we need the first item for the max score
+ TopGroups<String> groupsResult = secondPassCollector.getTopGroups(0); // no offset here since we need the first item for the max score
// get max score from very first result
float maxScore = groupsResult.groups[0].maxScore;
BooleanQuery filteredQuery = new BooleanQuery();
BooleanQuery classFilter = new BooleanQuery();
- Term t = new Term(DocumentBuilder.CLASS_FIELDNAME, clazz.getName());
+ Term t = new Term(ProjectionConstants.OBJECT_CLASS, clazz.getName());
TermQuery termQuery = new TermQuery(t);
classFilter.setBoost(0);
*
*/
public class TopGroupsWithMaxScore{
- public TopGroups topGroups;
+ public TopGroups<String> topGroups;
public float maxScore = Float.NaN;
- TopGroupsWithMaxScore(TopGroups topGroups, int offset, int totalGroupCount, float maxScore){
+ TopGroupsWithMaxScore(TopGroups<String> topGroups, int offset, int totalGroupCount, float maxScore){
this.maxScore = maxScore;
- TopGroups newTopGroups;
+ TopGroups<String> newTopGroups;
if(offset > 0){
- GroupDocs[] newGroupDocs = new GroupDocs[topGroups.groups.length - offset];
+ GroupDocs<String>[] newGroupDocs = new GroupDocs[topGroups.groups.length - offset];
for(int i = offset; i < topGroups.groups.length; i++){
newGroupDocs[i - offset] = topGroups.groups[i];
}
- newTopGroups = new TopGroups(
+ newTopGroups = new TopGroups<String>(
topGroups.groupSort,
topGroups.withinGroupSort,
topGroups.totalHitCount,
} else {
newTopGroups = topGroups;
}
- this.topGroups = new TopGroups(newTopGroups, totalGroupCount);
+ this.topGroups = new TopGroups<String>(newTopGroups, totalGroupCount);
}
}
import java.util.Map;
import org.apache.lucene.document.Document;
-import org.hibernate.search.engine.DocumentBuilder;
+import org.hibernate.search.ProjectionConstants;
import eu.etaxonomy.cdm.model.common.CdmBase;
public void addDoc(Document doc) {
- String key = doc.getValues(DocumentBuilder.CLASS_FIELDNAME)[0] + "." + doc.getValues(LuceneSearch.ID_FIELD)[0];
+ String key = doc.getValues(ProjectionConstants.OBJECT_CLASS)[0] + "." + doc.getValues(LuceneSearch.ID_FIELD)[0];
this.docs.put(key, doc);
}
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.search.WildcardQuery;
import org.apache.lucene.search.grouping.GroupDocs;
-import org.apache.lucene.search.grouping.TopGroups;
-import org.hibernate.search.engine.DocumentBuilder;
+import org.hibernate.search.ProjectionConstants;
import eu.etaxonomy.cdm.api.service.search.LuceneSearch.TopGroupsWithMaxScore;
import eu.etaxonomy.cdm.model.CdmBaseType;
*/
private String findId(Map<CdmBaseType,String> idFieldMap, Document doc) {
- String docClassName = doc.getValues(DocumentBuilder.CLASS_FIELDNAME)[0];
+ String docClassName = doc.getValues(ProjectionConstants.OBJECT_CLASS)[0];
String id = null;
for(CdmBaseType baseType : idFieldMap.keySet()){
never be without security\r
======================================================================\r
-->\r
- <context:component-scan base-package="eu/etaxonomy/cdm/persistence">\r
+\r
+ <context:component-scan base-package="eu/etaxonomy/cdm/persistence">\r
<context:exclude-filter type="regex" expression="eu\.etaxonomy\.cdm\.persistence\.dao\.hibernate\.taxon\.TaxonAlternativeSpellingSuggestionParser"/>\r
</context:component-scan>\r
\r
*/\r
package eu.etaxonomy.cdm.api.facade;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
-import org.junit.BeforeClass;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.agent.Team;\r
-import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
String exsiccatum = "Greuter, Pl. Dahlem. 456";\r
String accessionNumber = "8909756";\r
String catalogNumber = "UU879873590";\r
- TaxonNameBase taxonName = BotanicalName.NewInstance(Rank.GENUS(), "Abies", null, null, null, null, null, null, null);\r
+ TaxonNameBase<?,?> taxonName = BotanicalName.NewInstance(Rank.GENUS(), "Abies", null, null, null, null, null, null, null);\r
String collectorsNumber = "234589913A34";\r
Collection collection = Collection.NewInstance();\r
\r
*/\r
package eu.etaxonomy.cdm.api.facade;\r
\r
-import junit.framework.Assert;\r
-\r
import org.apache.log4j.Logger;\r
+import org.junit.Assert;\r
import org.junit.Before;\r
import org.junit.Test;\r
\r
import eu.etaxonomy.cdm.model.agent.Person;\r
import eu.etaxonomy.cdm.model.agent.Team;\r
-import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;\r
import eu.etaxonomy.cdm.model.common.Language;\r
import eu.etaxonomy.cdm.model.common.LanguageString;\r
import eu.etaxonomy.cdm.model.common.TimePeriod;\r
String exsiccatum = "Greuter, Pl. Dahlem. 456";\r
String accessionNumber = "8909756";\r
String catalogNumber = "UU879873590";\r
- TaxonNameBase taxonName = BotanicalName.NewInstance(Rank.GENUS(), "Abies", null, null, null, null, null, null, null);\r
+ TaxonNameBase<?,?> taxonName = BotanicalName.NewInstance(Rank.GENUS(), "Abies", null, null, null, null, null, null, null);\r
String collectorsNumber = "234589913A34";\r
Collection collection = Collection.NewInstance();\r
\r
import java.util.List;
import java.util.UUID;
-import junit.framework.Assert;
+import org.junit.Assert;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import java.util.Set;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Ignore;\r
*\r
*/\r
public class CommonServiceImplTest extends CdmIntegrationTest {\r
+ @SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(CommonServiceImplTest.class);\r
\r
@SpringBeanByType\r
\r
@SpringBeanByType\r
private IReferenceService referenceService;\r
-\r
- @SpringBeanByType\r
- private IAgentService agentService;\r
-\r
- @SpringBeanByType\r
- private IUserService userService;\r
+//\r
+// @SpringBeanByType\r
+// private IAgentService agentService;\r
+//\r
+// @SpringBeanByType\r
+// private IUserService userService;\r
\r
@SpringBeanByType\r
private IOccurrenceService occurrenceService;\r
@DataSet\r
@Ignore\r
public final void testGetReferencingObjects() {\r
- ReferenceFactory refFactory = ReferenceFactory.newInstance();\r
BotanicalName name = BotanicalName.NewInstance(Rank.SPECIES());\r
name.setTitleCache("A name", true);\r
- Reference ref1 = refFactory.newArticle();\r
+ Reference<?> ref1 = ReferenceFactory.newArticle();\r
Taxon taxon = Taxon.NewInstance(name, ref1);\r
Person author = Person.NewInstance();\r
author.setTitleCache("Author", true);\r
// occurrenceService.save(spec1);\r
\r
UUID uuidSpec = UUID.fromString("41539e9c-3764-4f14-9712-2d07d00c8e4c");\r
- SpecimenOrObservationBase spec1 = occurrenceService.find(uuidSpec);\r
+ SpecimenOrObservationBase<?> spec1 = occurrenceService.find(uuidSpec);\r
\r
\r
Set<CdmBase> referencedObjects = service.getReferencingObjects(spec1);\r
}\r
\r
\r
-// @Test\r
- public final void printDataSet() {\r
- printDataSet(System.out);\r
- }\r
-\r
-\r
@Test\r
@DataSet\r
public final void testLoadCacheStrategyForReference(){\r
- Reference ref = referenceService.load(UUID.fromString("613980ac-9bd5-43b9-a374-d71e1794688f"));\r
+ Reference<?> ref = referenceService.load(UUID.fromString("613980ac-9bd5-43b9-a374-d71e1794688f"));\r
ref.setType(ReferenceType.Article);\r
referenceService.update(ref);\r
referenceService.updateTitleCache();\r
-\r
}\r
}\r
import java.util.Set;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Test;\r
@Test\r
@DataSet("CommonServiceImplTest.xml")\r
public void testChangeDescriptionElement(){\r
- DescriptionBase descBase = service.find(UUID.fromString("eb17b80a-9be6-4642-a6a8-b19a318925e6"));\r
+ DescriptionBase<?> descBase = service.find(UUID.fromString("eb17b80a-9be6-4642-a6a8-b19a318925e6"));\r
Set<DescriptionElementBase> elements = descBase.getElements();\r
- Iterator iterator = elements.iterator();\r
+ Iterator<?> iterator = elements.iterator();\r
while (iterator.hasNext()){\r
DescriptionElementBase base = (DescriptionElementBase) iterator.next();\r
if (base instanceof TextData){\r
if (test instanceof TextData){\r
\r
Set <Entry<Language,LanguageString>> entries = ((TextData) test).getMultilanguageText().entrySet();\r
- Iterator entryIterator = entries.iterator();\r
+ Iterator<?> entryIterator = entries.iterator();\r
while (entryIterator.hasNext()){\r
Entry <Language, LanguageString> entry = (Entry<Language, LanguageString>) entryIterator.next();\r
LanguageString langString = entry.getValue();\r
\r
import java.util.UUID;\r
\r
+import org.apache.log4j.Level;\r
import org.apache.log4j.Logger;\r
import org.junit.Assert;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.ExpectedDataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
+import eu.etaxonomy.cdm.model.common.CdmBase;\r
import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
*/\r
@Transactional(TransactionMode.DISABLED)\r
public class IdentifiableServiceBaseTest extends CdmTransactionalIntegrationTest {\r
+ @SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(IdentifiableServiceBaseTest.class);\r
\r
\r
Class clazz = TaxonNameBase.class;\r
int stepSize = 2;\r
nameService.updateTitleCache(clazz, stepSize, null, null);\r
-\r
-// TaxonNameBase name = nameService.find(UUID.fromString("5d74500b-9fd5-4d18-b9cd-cc1c8a372fec"));\r
-// System.out.println(name.getRank().getLabel());\r
-// setComplete();\r
-// endTransaction();\r
-// try {\r
-// printDataSet(System.out, new String[]{"TaxonNameBase","DefinedTermBase"});\r
-//// printDataSet(new FileOutputStream("C:\\tmp\\test.xml"), new String[]{"TaxonNameBase"});\r
-// } catch(Exception e) { \r
-// logger.warn(e);\r
-// } \r
- \r
+ commit();\r
+// commitAndStartNewTransaction(new String[]{"TaxonNameBase","TaxonNameBase_AUD"}); \r
}\r
\r
\r
- public static Logger getLogger() {\r
- return logger;\r
- }\r
}\r
*/\r
\r
@Ignore\r
-public class IdentificationKeyGeneratorTest {\r
+public class IdentificationKeyGeneratorTTT {\r
\r
//*************************** TESTS *********************** /\r
\r
+++ /dev/null
-
-package eu.etaxonomy.cdm.api.service;
-
-
-import org.junit.Ignore;
-
-import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
-
-/**
- * NOTE: Removing MediaServiceImplTest led to problems with term loading, especially
- * eu.etaxonomy.cdm.api.service.TaxonServiceImplTest.testMakeTaxonSynonym() is failing.
- * Therefore we kept this dummy class.
- * It is still unclear what the reason is. See ticket #2397
- *
- */
-@Ignore
-public class MediaServiceImplTest extends CdmIntegrationTest{
-
-}
@Ignore //FIXME Remove @Ignore once maximes code is completely comitted
public class NaturalLanguageGeneratorTest extends CdmIntegrationTest {
+ @SuppressWarnings("unused")
private static final Logger logger = Logger.getLogger(NaturalLanguageGeneratorTest.class);
@SpringBeanByType
import eu.etaxonomy.cdm.model.description.PolytomousKey;\r
import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;\r
import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;\r
import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
/**\r
package eu.etaxonomy.cdm.api.service;
import java.util.List;
-import java.util.Set;
-
-import junit.framework.Assert;
+import org.junit.Assert;
import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import eu.etaxonomy.cdm.api.service.exception.HomotypicalGroupChangeException;
-import eu.etaxonomy.cdm.model.common.DefaultTermInitializer;
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
import eu.etaxonomy.cdm.model.name.NonViralName;
import eu.etaxonomy.cdm.model.name.TaxonNameBase;
TaxonNameBase otherHeteroSynonymName = NonViralName.NewInstance(null);
Synonym s2 = Synonym.NewInstance(otherHeteroSynonymName, t1.getSec());
t1.addSynonym(s2, heteroTypicSynonymRelationshipType, null, null);
- TaxonNameBase otherHeteroSynonymNameB = NonViralName.NewInstance(null);
+ TaxonNameBase<?,?> otherHeteroSynonymNameB = NonViralName.NewInstance(null);
otherHeteroSynonymName.addBasionym(otherHeteroSynonymNameB);
Synonym s2b = Synonym.NewInstance(otherHeteroSynonymNameB, t1.getSec());
t1.addSynonym(s2b, heteroTypicSynonymRelationshipType, null, null);
*/\r
@Test\r
public final void testRemoveTaxon() {\r
- Taxon taxon = Taxon.NewInstance(BotanicalName.NewInstance(null), null);\r
+ Taxon taxon = Taxon.NewInstance(BotanicalName.NewInstance(Rank.UNKNOWN_RANK()), null);\r
UUID uuid = service.save(taxon);\r
service.delete(taxon);\r
TaxonBase<?> actualTaxon = service.find(uuid);\r
assertNull(actualTaxon);\r
}\r
\r
-// @Test\r
-// @DataSet("ClearDBDataSet.xml")\r
-// public final void clearDataBase() {\r
-//\r
-// setComplete();\r
-// commitAndStartNewTransaction(null);\r
-//\r
-// logger.info("DataBase tables cleared");\r
-// }\r
-\r
-\r
-// @Test\r
- public final void testPrintDataSet() {\r
-//\r
-// printDataSet(System.out);\r
-// printDataSet(System.err, new String[] {"TAXONNODE", "AgentBase"});\r
-// printTableNames(System.err, "<%1$s />");\r
-// System.exit(0);\r
-\r
- }\r
\r
@Test\r
public final void testMakeTaxonSynonym() {\r
assertEquals(groupTest, groupTest2);\r
}\r
\r
- //@Test\r
+ @Test\r
+ @Ignore\r
public final void testChangeSynonymToAcceptedTaxon(){\r
Rank rank = Rank.SPECIES();\r
//HomotypicalGroup group = HomotypicalGroup.NewInstance();\r
Assert.fail("Move of single heterotypic synonym should not throw exception: " + e.getMessage());\r
}\r
//Asserts\r
- //FIXME thows exception\r
+ //FIXME throws exception\r
commitAndStartNewTransaction(tableNames);\r
\r
// printDataSet(System.err, new String[]{"AgentBase", "TaxonBase"});\r
//\r
// printDataSet(System.err, new String[]{"TaxonBase"});\r
\r
- heterotypicSynonym = (Synonym)service.load(uuidSyn5);\r
+ heterotypicSynonym = (Synonym)service.load(uuidSyn5);\r
\r
// printDataSet(System.err, new String[]{"TaxonBase"});\r
// System.exit(0);\r
\r
- Assert.assertNotNull("Synonym should still exist", heterotypicSynonym);\r
+ Assert.assertNotNull("Synonym should still exist", heterotypicSynonym);\r
Assert.assertEquals("Synonym should still have 1 relation", 1, heterotypicSynonym.getSynonymRelations().size());\r
rel = heterotypicSynonym.getSynonymRelations().iterator().next();\r
Assert.assertEquals("Accepted taxon of single relation should be new taxon", newTaxon, rel.getAcceptedTaxon());\r
\r
@Test\r
@DataSet("TaxonServiceImplTest.testInferredSynonyms.xml")\r
-\r
public void testCreateInferredSynonymy(){\r
\r
UUID classificationUuid = UUID.fromString("aeee7448-5298-4991-b724-8d5b75a0a7a9");\r
Classification tree = classificationService.find(classificationUuid);\r
UUID taxonUuid = UUID.fromString("bc09aca6-06fd-4905-b1e7-cbf7cc65d783");\r
- TaxonBase taxonBase = service.find(taxonUuid);\r
+ TaxonBase<?> taxonBase = service.find(taxonUuid);\r
List <TaxonBase> synonyms = service.list(Synonym.class, null, null, null, null);\r
assertEquals("Number of synonyms should be 2",2,synonyms.size());\r
Taxon taxon = (Taxon)taxonBase;\r
+ \r
//synonyms = taxonDao.getAllSynonyms(null, null);\r
//assertEquals("Number of synonyms should be 2",2,synonyms.size());\r
List<Synonym> inferredSynonyms = service.createInferredSynonyms(taxon, tree, SynonymRelationshipType.INFERRED_EPITHET_OF(), true);\r
assertNotNull("there should be a new synonym ", inferredSynonyms);\r
// System.err.println(inferredSynonyms.size());\r
assertEquals ("the name of inferred epithet should be SynGenus lachesis", inferredSynonyms.get(0).getTitleCache(), "SynGenus lachesis sec. ");\r
+ \r
inferredSynonyms = service.createInferredSynonyms(taxon, tree, SynonymRelationshipType.INFERRED_GENUS_OF(), true);\r
assertNotNull("there should be a new synonym ", inferredSynonyms);\r
// System.err.println(inferredSynonyms.get(0).getTitleCache());\r
assertEquals ("the name of inferred epithet should be SynGenus lachesis", inferredSynonyms.get(0).getTitleCache(), "Acherontia ciprosus sec. ");\r
+ \r
inferredSynonyms = service.createInferredSynonyms(taxon, tree, SynonymRelationshipType.POTENTIAL_COMBINATION_OF(), true);\r
assertNotNull("there should be a new synonym ", inferredSynonyms);\r
assertEquals ("the name of inferred epithet should be SynGenus lachesis", inferredSynonyms.get(0).getTitleCache(), "SynGenus ciprosus sec. ");\r
public final void testFindTaxaAndNames() {\r
\r
// pass 1\r
- IFindTaxaAndNamesConfigurator configurator = new FindTaxaAndNamesConfiguratorImpl();\r
+ IFindTaxaAndNamesConfigurator<?> configurator = new FindTaxaAndNamesConfiguratorImpl();\r
configurator.setTitleSearchString("Abies*");\r
configurator.setMatchMode(MatchMode.BEGINNING);\r
configurator.setDoTaxa(true);\r
if (list.get(i) instanceof NonViralName) {\r
nameCache = ((NonViralName<?>) list.get(i)).getNameCache();\r
} else if (list.get(i) instanceof TaxonBase) {\r
- TaxonNameBase taxonNameBase = ((TaxonBase) list.get(i)).getName();\r
+ TaxonNameBase<?,?> taxonNameBase = ((TaxonBase) list.get(i)).getName();\r
nameCache = HibernateProxyHelper.deproxy(taxonNameBase, NonViralName.class).getNameCache();\r
} else {\r
}\r
\r
Pager<SearchResult<TaxonBase>> pager;\r
\r
- pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Weißtanne", null, null, null, false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Wei\u00dftanne", null, null, null, false, null, null, null, null);\r
Assert.assertEquals("Expecting one entity when searching for CommonTaxonName", Integer.valueOf(1), pager.getCount());\r
\r
// the description containing the Nulltanne has no taxon attached, taxon.id = null\r
pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Nulltanne", null, null, null, false, null, null, null, null);\r
Assert.assertEquals("Expecting no entity when searching for 'Nulltanne' ", Integer.valueOf(0), pager.getCount());\r
\r
- pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Weißtanne", null, null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Wei\u00dftanne", null, null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
Assert.assertEquals("Expecting one entity when searching in German", Integer.valueOf(1), pager.getCount());\r
\r
- pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Weißtanne", null, null, Arrays.asList(new Language[]{Language.RUSSIAN()}), false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "Wei\u00dftanne", null, null, Arrays.asList(new Language[]{Language.RUSSIAN()}), false, null, null, null, null);\r
Assert.assertEquals("Expecting no entity when searching in Russian", Integer.valueOf(0), pager.getCount());\r
\r
}\r
\r
Pager<SearchResult<TaxonBase>> pager;\r
\r
- pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "WeiÃ\9f*", null, null, null, false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "WeiÃ\83Ÿ*", null, null, null, false, null, null, null, null);\r
Assert.assertEquals("Expecting one entity when searching for CommonTaxonName", Integer.valueOf(1), pager.getCount());\r
}\r
\r
pager = taxonService.findByDescriptionElementFullText(Distribution.class, "Abies", null, null, null, false, null, null, null, null);\r
Assert.assertEquals("Expecting no entity when searching for Distribution", Integer.valueOf(0), pager.getCount());\r
\r
- pager = taxonService.findByDescriptionElementFullText(TextData.class, "Ð\91алÑ\8cзам", null, null, Arrays.asList(new Language[]{}), false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(TextData.class, "Ã\90â\80\98Ã\90°Ã\90»Ã\91Å\92Ã\90·Ã\90°Ã\90¼", null, null, Arrays.asList(new Language[]{}), false, null, null, null, null);\r
Assert.assertEquals("Expecting one entity", Integer.valueOf(1), pager.getCount());\r
Assert.assertEquals("Abies balsamea sec. ", pager.getRecords().get(0).getEntity().getTitleCache());\r
\r
- pager = taxonService.findByDescriptionElementFullText(TextData.class, "Ð\91алÑ\8cзам", null, null, Arrays.asList(new Language[]{Language.RUSSIAN()}), false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(TextData.class, "Ã\90â\80\98Ã\90°Ã\90»Ã\91Å\92Ã\90·Ã\90°Ã\90¼", null, null, Arrays.asList(new Language[]{Language.RUSSIAN()}), false, null, null, null, null);\r
Assert.assertEquals("Expecting one entity", Integer.valueOf(1), pager.getCount());\r
Assert.assertEquals("Abies balsamea sec. ", pager.getRecords().get(0).getEntity().getTitleCache());\r
\r
- pager = taxonService.findByDescriptionElementFullText(TextData.class, "Ð\91алÑ\8cзам", null, null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(TextData.class, "Ã\90â\80\98Ã\90°Ã\90»Ã\91Å\92Ã\90·Ã\90°Ã\90¼", null, null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
Assert.assertEquals("Expecting no entity", Integer.valueOf(0), pager.getCount());\r
\r
pager = taxonService.findByDescriptionElementFullText(TextData.class, "Balsam-Tanne", null, null, Arrays.asList(new Language[]{Language.GERMAN(), Language.RUSSIAN()}), false, null, null, null, null);\r
DescriptionElementBase textData = descriptionService.getDescriptionElementByUuid(UUID.fromString(descriptionElementUuidStr[0]));\r
\r
((TextData)textData).removeText(Language.GERMAN());\r
- ((TextData)textData).putText(Language.SPANISH_CASTILIAN(), "abeto balsámico");\r
+ ((TextData)textData).putText(Language.SPANISH_CASTILIAN(), "abeto balsÃ\83¡mico");\r
\r
descriptionService.saveDescriptionElement(textData);\r
commitAndStartNewTransaction(null);\r
pager = taxonService.findByDescriptionElementFullText(TextData.class, "Balsam-Tanne", null, null, Arrays.asList(new Language[]{Language.GERMAN(), Language.RUSSIAN()}), false, null, null, null, null);\r
Assert.assertEquals("The german 'Balsam-Tanne' TextData should no longer be indexed", Integer.valueOf(0), pager.getCount());\r
pager = taxonService.findByDescriptionElementFullText(TextData.class, "abeto", null, null, Arrays.asList(new Language[]{Language.SPANISH_CASTILIAN()}), false, null, null, null, null);\r
- Assert.assertEquals("expecting to find the SPANISH_CASTILIAN 'abeto balsámico'", Integer.valueOf(1), pager.getCount());\r
- pager = taxonService.findByDescriptionElementFullText(TextData.class, "balsámico", null, null, null, false, null, null, null, null);\r
- Assert.assertEquals("expecting to find the SPANISH_CASTILIAN 'abeto balsámico'", Integer.valueOf(1), pager.getCount());\r
+ Assert.assertEquals("expecting to find the SPANISH_CASTILIAN 'abeto balsÃ\83¡mico'", Integer.valueOf(1), pager.getCount());\r
+ pager = taxonService.findByDescriptionElementFullText(TextData.class, "balsÃ\83¡mico", null, null, null, false, null, null, null, null);\r
+ Assert.assertEquals("expecting to find the SPANISH_CASTILIAN 'abeto balsÃ\83¡mico'", Integer.valueOf(1), pager.getCount());\r
\r
//\r
// modify the DescriptionElement via the Description object\r
- DescriptionBase description = descriptionService.find(UUID.fromString(inDescriptionUuidStr[0]));\r
+ DescriptionBase<?> description = descriptionService.find(UUID.fromString(inDescriptionUuidStr[0]));\r
Set<DescriptionElementBase> elements = description.getElements();\r
for( DescriptionElementBase elm : elements){\r
if(elm.getUuid().toString().equals(descriptionElementUuidStr[0])){\r
((TextData)elm).removeText(Language.SPANISH_CASTILIAN());\r
- ((TextData)elm).putText(Language.POLISH(), "Jodła balsamiczna");\r
+ ((TextData)elm).putText(Language.POLISH(), "Jodła balsamiczna");\r
}\r
}\r
descriptionService.saveOrUpdate(description);\r
commitAndStartNewTransaction(null);\r
pager = taxonService.findByDescriptionElementFullText(TextData.class, "abeto", null, null, Arrays.asList(new Language[]{Language.SPANISH_CASTILIAN()}), false, null, null, null, null);\r
- Assert.assertEquals("The spanish 'abeto balsámico' TextData should no longer be indexed", Integer.valueOf(0), pager.getCount());\r
+ Assert.assertEquals("The spanish 'abeto balsÃ\83¡mico' TextData should no longer be indexed", Integer.valueOf(0), pager.getCount());\r
pager = taxonService.findByDescriptionElementFullText(TextData.class, "balsamiczna", null, null, Arrays.asList(new Language[]{Language.POLISH()}), false, null, null, null, null);\r
- Assert.assertEquals("expecting to find the POLISH 'Jodła balsamiczna'", Integer.valueOf(1), pager.getCount());\r
+ Assert.assertEquals("expecting to find the POLISH 'Jodła balsamiczna'", Integer.valueOf(1), pager.getCount());\r
}\r
\r
@SuppressWarnings("rawtypes")\r
d_abies_balsamea_new\r
.addElement(TextData\r
.NewInstance(\r
- "Die Balsamtanne ist mit bis zu 30 m Höhe ein mittelgroÃ\9fer Baum und kann bis zu 200 Jahre alt werden",\r
+ "Die Balsamtanne ist mit bis zu 30 m HÃ\83¶he ein mittelgroÃ\83Ÿer Baum und kann bis zu 200 Jahre alt werden",\r
Language.GERMAN(), null));\r
t_abies_balsamea.addDescription(d_abies_balsamea_new);\r
taxonService.saveOrUpdate(t_abies_balsamea);\r
"DESCRIPTIONBASE"\r
});\r
\r
- pager = taxonService.findByDescriptionElementFullText(TextData.class, "mittelgroÃ\9fer Baum", null, null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(TextData.class, "mittelgroÃ\83Ÿer Baum", null, null, Arrays.asList(new Language[]{Language.GERMAN()}), false, null, null, null, null);\r
Assert.assertEquals("the taxon should be found via the new Description", Integer.valueOf(1), pager.getCount());\r
}\r
\r
createRandomTaxonWithCommonName(NUM_OF_NEW_RADOM_ENTITIES);\r
\r
IFindTaxaAndNamesConfigurator configurator = new FindTaxaAndNamesConfiguratorImpl();\r
- configurator.setTitleSearchString("WeiÃ\9f%");\r
+ configurator.setTitleSearchString("WeiÃ\83Ÿ%");\r
configurator.setMatchMode(MatchMode.BEGINNING);\r
configurator.setDoTaxa(false);\r
configurator.setDoSynonyms(false);\r
\r
long startMillis = System.currentTimeMillis();\r
for (int indx = 0; indx < BENCHMARK_ROUNDS; indx++) {\r
- pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "WeiÃ\9f*", null, null, null, false, null, null, null, null);\r
+ pager = taxonService.findByDescriptionElementFullText(CommonTaxonName.class, "WeiÃ\83Ÿ*", null, null, null, false, null, null, null, null);\r
if (logger.isDebugEnabled()) {\r
logger.debug("[" + indx + "]" + pager.getRecords().get(0).getEntity().getTitleCache());\r
}\r
\r
d_abies_alba.setUuid(UUID.fromString(D_ABIES_BALSAMEA_UUID));\r
// CommonTaxonName\r
- d_abies_alba.addElement(CommonTaxonName.NewInstance("WeiÃ\9ftanne", Language.GERMAN()));\r
+ d_abies_alba.addElement(CommonTaxonName.NewInstance("WeiÃ\83Ÿtanne", Language.GERMAN()));\r
d_abies_alba.addElement(CommonTaxonName.NewInstance("silver fir", Language.ENGLISH()));\r
// TextData\r
TaxonDescription d_abies_balsamea = TaxonDescription.NewInstance(t_abies_balsamea);\r
d_abies_balsamea\r
.addElement(TextData\r
.NewInstance(\r
- "Die Balsam-Tanne (Abies balsamea) ist eine Pflanzenart aus der Gattung der Tannen (Abies). Sie wächst im nordöstlichen Nordamerika, wo sie sowohl Tief- als auch Bergland besiedelt. Sie gilt als relativ anspruchslos gegenüber dem Standort und ist frosthart. In vielen Teilen des natürlichen Verbreitungsgebietes stellt sie die Klimaxbaumart dar.",\r
+ "Die Balsam-Tanne (Abies balsamea) ist eine Pflanzenart aus der Gattung der Tannen (Abies). Sie wÃ\83¤chst im nordÃ\83¶stlichen Nordamerika, wo sie sowohl Tief- als auch Bergland besiedelt. Sie gilt als relativ anspruchslos gegenÃ\83¼ber dem Standort und ist frosthart. In vielen Teilen des natÃ\83¼rlichen Verbreitungsgebietes stellt sie die Klimaxbaumart dar.",\r
Language.GERMAN(), null));\r
d_abies_balsamea\r
.addElement(TextData\r
.NewInstance(\r
- "Ð\91алÑ\8cзам нÑ\8cÑ\8bв (лаÑ\82. Abies balsamea) â\80\93 бÑ\8bдмаÑ\81Ñ\81Ñ\8dзлӧн пожÑ\83м коÑ\82Ñ\8bÑ\80иÑ\81Ñ\8c нÑ\8cÑ\8bв Ñ\83вÑ\82Ñ\8bÑ\80Ñ\8bн Ñ\82оÑ\80Ñ\8cÑ\8f вид. Ð\9dÑ\8cÑ\8bвпÑ\83Ñ\8bÑ\81 бÑ\8bдмӧ 14â\80\9320 меÑ\82Ñ\80а вÑ\8bлÑ\8bна да овлӧ 10â\80\9360 Ñ\81м кÑ\8bза диамеÑ\82Ñ\80Ñ\8bн. Ð\9dÑ\8cÑ\8bвпÑ\83 панÑ\82аÑ\81Ñ\8cÓ§ Ð\9eйвÑ\8bв Ð\90меÑ\80икаÑ\8bн.",\r
+ "Ã\90â\80\98Ã\90°Ã\90»Ã\91Å\92Ã\90·Ã\90°Ã\90¼ Ã\90½Ã\91Å\92Ã\91â\80¹Ã\90² (Ã\90»Ã\90°Ã\91â\80\9a. Abies balsamea) ââ\82¬â\80\9c Ã\90±Ã\91â\80¹Ã\90´Ã\90¼Ã\90°Ã\91�Ã\91�Ã\91�Ã\90·Ã\90»Ã\93§Ã\90½ Ã\90¿Ã\90¾Ã\90¶Ã\91Æ\92Ã\90¼ Ã\90ºÃ\90¾Ã\91â\80\9aÃ\91â\80¹Ã\91â\82¬Ã\90¸Ã\91�Ã\91Å\92 Ã\90½Ã\91Å\92Ã\91â\80¹Ã\90² Ã\91Æ\92Ã\90²Ã\91â\80\9aÃ\91â\80¹Ã\91â\82¬Ã\91â\80¹Ã\90½ Ã\91â\80\9aÃ\90¾Ã\91â\82¬Ã\91Å\92Ã\91� Ã\90²Ã\90¸Ã\90´. Ã\90�Ã\91Å\92Ã\91â\80¹Ã\90²Ã\90¿Ã\91Æ\92Ã\91â\80¹Ã\91� Ã\90±Ã\91â\80¹Ã\90´Ã\90¼Ã\93§ 14ââ\82¬â\80\9c20 Ã\90¼Ã\90µÃ\91â\80\9aÃ\91â\82¬Ã\90° Ã\90²Ã\91â\80¹Ã\90»Ã\91â\80¹Ã\90½Ã\90° Ã\90´Ã\90° Ã\90¾Ã\90²Ã\90»Ã\93§ 10ââ\82¬â\80\9c60 Ã\91�Ã\90¼ Ã\90ºÃ\91â\80¹Ã\90·Ã\90° Ã\90´Ã\90¸Ã\90°Ã\90¼Ã\90µÃ\91â\80\9aÃ\91â\82¬Ã\91â\80¹Ã\90½. Ã\90�Ã\91Å\92Ã\91â\80¹Ã\90²Ã\90¿Ã\91Æ\92 Ã\90¿Ã\90°Ã\90½Ã\91â\80\9aÃ\90°Ã\91�Ã\91Å\92Ã\93§ Ã\90žÃ\90¹Ã\90²Ã\91â\80¹Ã\90² Ã\90�Ã\90¼Ã\90µÃ\91â\82¬Ã\90¸Ã\90ºÃ\90°Ã\91â\80¹Ã\90½.",\r
Language.RUSSIAN(), null));\r
setComplete();\r
endTransaction();\r
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;\r
\r
@Ignore //FIXME tests are failing\r
-@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/applicationContext-testSecurity.xml")\r
+@SpringApplicationContext("file:./target/test-classes/eu/etaxonomy/cdm/applicationContext-securityTest.xml")\r
public class UserServiceImplTest extends CdmIntegrationTest {\r
\r
protected static final Logger logger = Logger.getLogger(UserServiceImplTest.class);\r
import static org.junit.Assert.assertEquals;\r
import static org.junit.Assert.assertNotNull;\r
\r
+import java.util.List;\r
+\r
import org.junit.Before;\r
import org.junit.Test;\r
import org.unitils.dbunit.annotation.DataSet;\r
import org.unitils.spring.annotation.SpringBeanByType;\r
\r
+import eu.etaxonomy.cdm.api.service.INameService;\r
import eu.etaxonomy.cdm.api.service.lsid.impl.LsidRegistryImpl;\r
import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;\r
import eu.etaxonomy.cdm.model.common.LSID;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;\r
+import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;\r
\r
@DataSet("LSIDAuthorityServiceTest.testGetAvailableServices.xml")\r
-public class LSIDMetadataServiceTest extends CdmIntegrationTest {\r
+public class LSIDMetadataServiceTest extends CdmTransactionalIntegrationTest {\r
\r
@SpringBeanByType\r
private LSIDMetadataService lsidMetadataService;\r
@SpringBeanByType\r
private LSIDRegistry lsidRegistry;\r
\r
+ @SpringBeanByType\r
+ private INameService nameService;\r
+ \r
private LSID lsid;\r
\r
@Before \r
public void setUp() throws Exception {\r
+ \r
lsid = new LSID("example.org", "taxonconcepts", "1", null);\r
((LsidRegistryImpl)lsidRegistry).init();\r
}\r
* @version 1.0
*/
public class FixMultipleTextDataInImageGalleries {
- public static final Logger logger = Logger
- .getLogger(FixMultipleTextDataInImageGalleries.class);
+ public static final Logger logger = Logger.getLogger(FixMultipleTextDataInImageGalleries.class);
public static ICdmDataSource dataSource(){
DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;
\r
import eu.etaxonomy.cdm.api.application.CdmApplicationController;\r
import eu.etaxonomy.cdm.api.application.CdmApplicationUtils;\r
+import eu.etaxonomy.cdm.common.AccountStore;\r
import eu.etaxonomy.cdm.database.CdmDataSource;\r
import eu.etaxonomy.cdm.database.CdmPersistentDataSource;\r
import eu.etaxonomy.cdm.database.DataSourceNotFoundException;\r
private void testNewConfigControler(){\r
List<CdmPersistentDataSource> lsDataSources = CdmPersistentDataSource.getAllDataSources();\r
System.out.println(lsDataSources);\r
- CdmPersistentDataSource dataSource = lsDataSources.get(0);\r
- DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;\r
-// ICdmDataSource dataSource = CdmDataSource.NewInstance(dbType, "192.168.2.10", "cdm_test_andreas", dbType.getDefaultPort() + "", "edit", "", null, null);\r
- CdmPersistentDataSource.save(dataSource.getName(), dataSource);\r
+// CdmPersistentDataSource dataSource = lsDataSources.get(0);\r
+// DatabaseTypeEnum dbType = DatabaseTypeEnum.MySQL;\r
+ String server = "localhost";\r
+ String database = "cdm_test";\r
+ String username = "edit";\r
+ ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance(server, database, username, AccountStore.readOrStorePassword(server, database, username, null));\r
+// CdmPersistentDataSource.save(dataSource.getName(), dataSource);\r
CdmApplicationController appCtr;\r
- appCtr = CdmApplicationController.NewInstance(dataSource);\r
+ appCtr = CdmApplicationController.NewInstance(dataSource, DbSchemaValidation.CREATE);\r
appCtr.close();\r
}\r
\r
\r
private void test(){\r
System.out.println("Start Datasource");\r
- //testNewConfigControler();\r
+ testNewConfigControler();\r
//testDatabaseChange();\r
\r
//testSqlServer();\r
//testLocalHsql();\r
//testLocalH2();\r
//testWritableResourceDirectory();\r
- testH2();\r
+// testH2();\r
System.out.println("\nEnd Datasource");\r
}\r
\r
*/
@Ignore /* IGNORE in Suite */
public class TestC3P0Configuration{
- private static final Logger logger = Logger
- .getLogger(TestC3P0Configuration.class);
+ private static final Logger logger = Logger.getLogger(TestC3P0Configuration.class);
CdmApplicationController appController;
import java.util.Set;\r
import java.util.UUID;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.hibernate.mapping.Column;\r
*/\r
@Ignore\r
public class TestDatabase {\r
+ @SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(TestDatabase.class);\r
- ReferenceFactory refFactory;\r
+\r
private void test(){\r
System.out.println("Start TestDatabase");\r
//testNewDatabaseConnection();\r
BotanicalName botanicalName = BotanicalName.NewInstance(genus);\r
botanicalName.setGenusOrUninomial("GenusName");\r
\r
- IJournal journal = refFactory.newJournal();\r
+ IJournal journal = ReferenceFactory.newJournal();\r
journal.setTitleCache("Afro+Doc", true);\r
\r
// Taxon taxon = Taxon.NewInstance(botanicalName, journal);\r
BotanicalName botanicalName = BotanicalName.NewInstance(genus);\r
botanicalName.setGenusOrUninomial("GenusName");\r
\r
- IJournal journal = refFactory.newJournal();\r
+ IJournal journal = ReferenceFactory.newJournal();\r
journal.setTitleCache("Afro+Doc", true);\r
\r
Taxon taxon = Taxon.NewInstance(botanicalName,(Reference)journal);\r
BotanicalName botanicalName = BotanicalName.NewInstance(genus);\r
botanicalName.setGenusOrUninomial("GenusName");\r
\r
- IJournal journal = refFactory.newJournal();\r
+ IJournal journal = ReferenceFactory.newJournal();\r
journal.setTitle("JournalTitel");\r
\r
// Taxon taxon = Taxon.NewInstance(botanicalName, journal);\r
//ICdmDataSource datasource = CdmDataSource.NewH2EmbeddedInstance("CDM", "sa", "");\r
ICdmDataSource datasource = cdm_test_anahit2();\r
CdmApplicationController appCtr = CdmApplicationController.NewInstance(datasource, dbSchemaValidation);\r
- AgentBase person = Person.NewTitledInstance("TestPerson");\r
+ Person person = Person.NewTitledInstance("TestPerson");\r
Contact contact1 = new Contact();\r
Set<String> set = new HashSet<String>();\r
set.add("email1");\r
// if you are willing to blame it on conversations, please rewrite into two methods\r
// the result will be the same\r
ConversationHolder newConversation = appCtr.NewConversation();\r
- DescriptionBase loadedDescription = appCtr.getDescriptionService().load(taxonDescriptionUuid);\r
+ DescriptionBase<?> loadedDescription = appCtr.getDescriptionService().load(taxonDescriptionUuid);\r
\r
TextData descriptionElement = (TextData) loadedDescription.getElements().iterator().next();\r
\r
import javax.validation.ValidatorFactory;\r
import javax.validation.groups.Default;\r
\r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
\r
import org.apache.log4j.Logger;\r
import org.junit.Before;\r
\r
#hibernate.connection.password=\r
#hibernate.hbm2ddl.auto=create-drop\r
-#hibernate.cache.provider_class=net.sf.ehcache.hibernate.SingletonEhCacheProvider\r
-#hibernate.cache.provider_class=org.hibernate.cache.NoCacheProvider\r
-#hibernate.search.default.directory_provider=org.hibernate.search.store.FSDirectoryProvider\r
+#hibernate.cache.region.factory_class=net.sf.ehcache.hibernate.SingletonEhCacheRegionFactory\r
+#hibernate.cache.region.factory_class=org.hibernate.cache.internal.NoCachingRegionFactory\r
+#hibernate.search.default.directory_provider=org.hibernate.search.store.impl.FSDirectoryProvider\r
#hibernate.search.default.indexBase=./target/test-classes\r
<HOMOTYPICALGROUP ID="4" CREATED="2008-12-10 09:56:07.0" UUID="3c6ff240-9cab-4ec9-b47e-97280318ab30" UPDATED="2008-12-10 09:56:07.253"/>\r
<HOMOTYPICALGROUP ID="5" CREATED="2008-12-10 09:56:07.0" UUID="5cd73df5-1c72-44a6-9864-adb145d8bd56" UPDATED="2008-12-10 09:56:07.253"/>\r
<HOMOTYPICALGROUP ID="6" CREATED="2008-12-10 09:56:07.0" UUID="335977f0-ef55-4294-b78b-aed47435b428" UPDATED="2008-12-10 09:56:07.253"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2009-02-03 17:52:26.0" UUID="88fab5b3-0d9a-42c3-9915-71fc17266116" TITLECACHE="" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="[null]" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2009-02-03 17:52:26.0" UUID="984e4304-57b0-4ce8-8f94-7c39be7396d9" TITLECACHE="Abies" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="773" COMBINATIONAUTHORTEAM_ID="[null]"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" CREATED="2009-02-03 17:52:26.0" UUID="a7e666e7-0d96-4284-9cc4-8e5ccc3b9a36" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="[null]"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="5" CREATED="2009-02-03 17:52:26.0" UUID="5d74500b-9fd5-4d18-b9cd-cc1c8a372fec" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Some" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="strangetitle" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="5" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="1"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="6" CREATED="2009-02-03 17:52:26.0" UUID="55e6ee55-371e-418e-8775-d885d28453c4" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="6" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="2"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2009-02-03 17:52:26.0" UUID="88fab5b3-0d9a-42c3-9915-71fc17266116" TITLECACHE="" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="[null]" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="[null]" COMBINATIONAUTHORTEAM_ID="[null]"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2009-02-03 17:52:26.0" UUID="984e4304-57b0-4ce8-8f94-7c39be7396d9" TITLECACHE="Abies" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="[null]" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="773" COMBINATIONAUTHORTEAM_ID="[null]"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" CREATED="2009-02-03 17:52:26.0" UUID="a7e666e7-0d96-4284-9cc4-8e5ccc3b9a36" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="[null]"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="5" CREATED="2009-02-03 17:52:26.0" UUID="5d74500b-9fd5-4d18-b9cd-cc1c8a372fec" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="Some" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="strangetitle" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="5" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="1"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="6" CREATED="2009-02-03 17:52:26.0" UUID="55e6ee55-371e-418e-8775-d885d28453c4" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="6" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="2"/>\r
<TAXONBASE DTYPE="Taxon" ID="4" CREATED="2009-02-03 17:52:26.0" UUID="aafce7fe-0c5f-42ed-814b-4c7c2c715660" TITLECACHE="Abies sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" USENAMECACHE="false" TAXONSTATUSUNKNOWN="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="4"/>\r
<TAXONBASE DTYPE="Taxon" ID="5" CREATED="2009-02-03 17:52:26.0" UUID="5c1a3d10-3a32-45d1-a5ae-1e982533b79f" TITLECACHE="Abies alba sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" USENAMECACHE="false" TAXONSTATUSUNKNOWN="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="5"/>\r
<TAXONBASE DTYPE="Synonym" ID="6" CREATED="2009-02-03 17:52:26.0" UUID="4de9d002-d68c-49af-84f1-7f9eddaa1226" TITLECACHE="Abies alba sec. ???" PROTECTEDTITLECACHE="false" DOUBTFUL="false" USENAMECACHE="false" TAXONSTATUSUNKNOWN="[null]" TAXONOMICCHILDRENCOUNT="[null]" NAME_ID="6"/>\r
<TAXONBASE DTYPE="Synonym" ID="3" NAME_ID="3" UUID="3034249e-9491-4439-bcb6-9c7d68e29bce" PROTECTEDTITLECACHE="false" DOUBTFUL="false" USENAMECACHE="false" EXCLUDED="[null]" TAXONSTATUSUNKNOWN="[null]" UNPLACED="[null]" TAXONOMICCHILDRENCOUNT="[null]"/>
<TAXONBASE DTYPE="Synonym" ID="4" NAME_ID="4" UUID="ac6c5bb1-d36d-4068-af7c-4f0bb009880d" PROTECTEDTITLECACHE="false" DOUBTFUL="false" USENAMECACHE="false" EXCLUDED="[null]" TAXONSTATUSUNKNOWN="[null]" UNPLACED="[null]" TAXONOMICCHILDRENCOUNT="[null]"/>
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" UUID="54a1d7f9-79ab-4fb3-bff5-152e1046cf75" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="1" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" UUID="e7f50b04-9648-479b-bc8a-ffebf295dce9" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="2" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" UUID="c0439dd6-8d2b-4428-86f4-37f4a90d4583" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="3" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="4" UUID="6a5774bd-c8aa-42dc-91dd-d62d27e7ea2a" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="4" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" UUID="54a1d7f9-79ab-4fb3-bff5-152e1046cf75" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="1" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false" RANK_ID="765"/>
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" UUID="e7f50b04-9648-479b-bc8a-ffebf295dce9" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="2" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false" RANK_ID="765"/>
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" UUID="c0439dd6-8d2b-4428-86f4-37f4a90d4583" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="3" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false" RANK_ID="765"/>
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="4" UUID="6a5774bd-c8aa-42dc-91dd-d62d27e7ea2a" PROTECTEDTITLECACHE="false" PARSINGPROBLEM="0" HOMOTYPICALGROUP_ID="4" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" HYBRIDFORMULA="false" MONOMHYBRID="false" BINOMHYBRID="false" TRINOMHYBRID="false" ANAMORPHIC="false" RANK_ID="765"/>
<HOMOTYPICALGROUP ID="1" CREATED="2011-10-12 19:57:31.0" UUID="d8652fa0-eff9-460d-8990-aed0ebf1322e"/>
<HOMOTYPICALGROUP ID="2" CREATED="2011-10-12 19:57:31.0" UUID="2a1b0776-b4b5-462a-9be7-f88378ebd732"/>
<HOMOTYPICALGROUP ID="3" CREATED="2011-10-12 19:57:31.0" UUID="3ac4e376-31cd-47fd-9dd6-eaff415ff0e7"/>
<TAXONBASE DTYPE="Synonym" ID="7" CREATED="2011-10-12 19:57:31.0" UUID="fcc0bcf8-8bac-43bd-9508-1e97821587dd" PROTECTEDTITLECACHE="false" TITLECACHE="Heterotypic synonym5 sec. ???" DOUBTFUL="false" USENAMECACHE="false" TAXONSTATUSUNKNOWN="[null]" UNPLACED="[null]" EXCLUDED="[null]" TAXONOMICCHILDRENCOUNT="[null]" NAME_ID="7"/>\r
<TAXONBASE DTYPE="Synonym" ID="8" CREATED="2011-10-12 19:57:31.0" UUID="0ccd4e7c-6fbd-4b7c-bd47-29e45b92f34b" PROTECTEDTITLECACHE="false" TITLECACHE="Heterotypic synonym6 sec. ???" DOUBTFUL="false" USENAMECACHE="false" TAXONSTATUSUNKNOWN="[null]" UNPLACED="[null]" EXCLUDED="[null]" TAXONOMICCHILDRENCOUNT="[null]" NAME_ID="8"/>\r
\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2011-10-12 19:57:31.0" UUID="3f3c5808-de2b-44cc-b738-6ebaf8f32377" PROTECTEDTITLECACHE="true" TITLECACHE="Old Taxon" FULLTITLECACHE="TaxonName1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2011-10-12 19:57:31.0" UUID="1b2aa952-41de-4249-8345-dccc32ee7cf9" PROTECTEDTITLECACHE="true" TITLECACHE="New Taxon" FULLTITLECACHE="TaxonName2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" CREATED="2011-10-12 19:57:31.0" UUID="9e9a3cad-3888-46ab-bb26-f06ddfd21e0c" PROTECTEDTITLECACHE="true" TITLECACHE="Homotypic synonym1" FULLTITLECACHE="Synonym1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="4" CREATED="2011-10-12 19:57:31.0" UUID="613f3c93-013e-4ffc-aadc-1c98d71c335e" PROTECTEDTITLECACHE="true" TITLECACHE="Homotypic synonym2" FULLTITLECACHE="Synonym2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="5" CREATED="2011-10-12 19:57:31.0" UUID="6c3e0021-2b9b-461a-a017-189a86a13606" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym3" FULLTITLECACHE="Synonym3" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="6" CREATED="2011-10-12 19:57:31.0" UUID="242dcacb-f0d5-4ad8-9ead-2d3bb535462c" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym4" FULLTITLECACHE="Synonym4" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="7" CREATED="2011-10-12 19:57:31.0" UUID="9744106c-9845-4e9f-a077-6dffef3b857a" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym5" FULLTITLECACHE="Synonym5" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="4" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="8" CREATED="2011-10-12 19:57:31.0" UUID="2ca9f4a2-05ae-49f9-91ff-c0e611f1eff2" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym6" FULLTITLECACHE="Synonym6" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="5" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2011-10-12 19:57:31.0" UUID="3f3c5808-de2b-44cc-b738-6ebaf8f32377" PROTECTEDTITLECACHE="true" TITLECACHE="Old Taxon" FULLTITLECACHE="TaxonName1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2011-10-12 19:57:31.0" UUID="1b2aa952-41de-4249-8345-dccc32ee7cf9" PROTECTEDTITLECACHE="true" TITLECACHE="New Taxon" FULLTITLECACHE="TaxonName2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" CREATED="2011-10-12 19:57:31.0" UUID="9e9a3cad-3888-46ab-bb26-f06ddfd21e0c" PROTECTEDTITLECACHE="true" TITLECACHE="Homotypic synonym1" FULLTITLECACHE="Synonym1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="4" CREATED="2011-10-12 19:57:31.0" UUID="613f3c93-013e-4ffc-aadc-1c98d71c335e" PROTECTEDTITLECACHE="true" TITLECACHE="Homotypic synonym2" FULLTITLECACHE="Synonym2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="5" CREATED="2011-10-12 19:57:31.0" UUID="6c3e0021-2b9b-461a-a017-189a86a13606" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym3" FULLTITLECACHE="Synonym3" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="6" CREATED="2011-10-12 19:57:31.0" UUID="242dcacb-f0d5-4ad8-9ead-2d3bb535462c" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym4" FULLTITLECACHE="Synonym4" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="7" CREATED="2011-10-12 19:57:31.0" UUID="9744106c-9845-4e9f-a077-6dffef3b857a" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym5" FULLTITLECACHE="Synonym5" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="4" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="8" CREATED="2011-10-12 19:57:31.0" UUID="2ca9f4a2-05ae-49f9-91ff-c0e611f1eff2" PROTECTEDTITLECACHE="true" TITLECACHE="Heterotypic synonym6" FULLTITLECACHE="Synonym6" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false" HOMOTYPICALGROUP_ID="5" RANK_ID="765"/>\r
\r
<SYNONYMRELATIONSHIP ID="1" CREATED="2011-10-12 19:57:31.0" UUID="980fb6a3-04f0-4f58-b69d-5d8838ed6022" DOUBTFUL="false" PARTIAL="false" PROPARTE="false" RELATEDFROM_ID="3" RELATEDTO_ID="1" TYPE_ID="847" CITATIONMICROREFERENCE="rel1" CITATION_ID="1"/>\r
<SYNONYMRELATIONSHIP ID="2" CREATED="2011-10-12 19:57:31.0" UUID="347c620e-10e5-46de-a47d-0ce26492fe90" DOUBTFUL="false" PARTIAL="false" PROPARTE="true" RELATEDFROM_ID="4" RELATEDTO_ID="1" TYPE_ID="847" CITATIONMICROREFERENCE="rel2" CITATION_ID="1"/>\r
<TAXONBASE_AUD DTYPE="Taxon" ID="3" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="2d9a642d-5a82-442d-8fec-95efa978e8f8" PROTECTEDTITLECACHE="false" TITLECACHE="TaxonName2 sec. ???" DOUBTFUL="false" USENAMECACHE="false" NAME_ID="3" TAXONSTATUSUNKNOWN="false" UNPLACED="false" EXCLUDED="false" TAXONOMICCHILDRENCOUNT="0"/>\r
<TAXONBASE_AUD DTYPE="Synonym" ID="4" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="f8d86dc9-5f18-4877-be46-fbb9412465e4" PROTECTEDTITLECACHE="false" TITLECACHE="Synonym2 sec. ???" DOUBTFUL="false" USENAMECACHE="false" NAME_ID="4" TAXONSTATUSUNKNOWN="[null]" UNPLACED="[null]" EXCLUDED="[null]" TAXONOMICCHILDRENCOUNT="[null]"/>\r
\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="1" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="3f3c5808-de2b-44cc-b738-6ebaf8f32377" PROTECTEDTITLECACHE="true" TITLECACHE="TaxonName1" FULLTITLECACHE="TaxonName1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="2" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="9e9a3cad-3888-46ab-bb26-f06ddfd21e0c" PROTECTEDTITLECACHE="true" TITLECACHE="Synonym1" FULLTITLECACHE="Synonym1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="3" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="1b2aa952-41de-4249-8345-dccc32ee7cf9" PROTECTEDTITLECACHE="true" TITLECACHE="TaxonName2" FULLTITLECACHE="TaxonName2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
- <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="4" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="613f3c93-013e-4ffc-aadc-1c98d71c335e" PROTECTEDTITLECACHE="true" TITLECACHE="Synonym2" FULLTITLECACHE="Synonym2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="4" RANK_ID="765" AUTHORSHIPCACHE="" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="1" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="3f3c5808-de2b-44cc-b738-6ebaf8f32377" PROTECTEDTITLECACHE="true" TITLECACHE="TaxonName1" FULLTITLECACHE="TaxonName1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="2" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="9e9a3cad-3888-46ab-bb26-f06ddfd21e0c" PROTECTEDTITLECACHE="true" TITLECACHE="Synonym1" FULLTITLECACHE="Synonym1" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="2" RANK_ID="765" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="3" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="1b2aa952-41de-4249-8345-dccc32ee7cf9" PROTECTEDTITLECACHE="true" TITLECACHE="TaxonName2" FULLTITLECACHE="TaxonName2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
+ <TAXONNAMEBASE_AUD DTYPE="BotanicalName" ID="4" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="613f3c93-013e-4ffc-aadc-1c98d71c335e" PROTECTEDTITLECACHE="true" TITLECACHE="Synonym2" FULLTITLECACHE="Synonym2" PARSINGPROBLEM="0" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="false" HOMOTYPICALGROUP_ID="4" RANK_ID="765" AUTHORSHIPCACHE="[null]" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="false" PROTECTEDNAMECACHE="false" TRINOMHYBRID="false" ANAMORPHIC="false"/>\r
\r
<SYNONYMRELATIONSHIP_AUD ID="1" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="980fb6a3-04f0-4f58-b69d-5d8838ed6022" DOUBTFUL="false" PARTIAL="false" PROPARTE="false" RELATEDFROM_ID="2" RELATEDTO_ID="1" TYPE_ID="846"/>\r
<SYNONYMRELATIONSHIP_AUD ID="2" REV="1001" REVTYPE="0" CREATED="2011-10-12 19:57:31.0" UUID="347c620e-10e5-46de-a47d-0ce26492fe90" DOUBTFUL="false" PARTIAL="false" PROPARTE="true" RELATEDFROM_ID="2" RELATEDTO_ID="3" TYPE_ID="846"/>\r
<PERMISSIONGROUP_GRANTEDAUTHORITYIMPL PERMISSIONGROUP_ID="1" GRANTEDAUTHORITIES_ID="4"/>\r
<PERMISSIONGROUP_GRANTEDAUTHORITYIMPL PERMISSIONGROUP_ID="2" GRANTEDAUTHORITIES_ID="1"/>\r
<PERMISSIONGROUP_GRANTEDAUTHORITYIMPL PERMISSIONGROUP_ID="2" GRANTEDAUTHORITIES_ID="6"/>\r
- <GRANTEDAUTHORITYIMPL ID="1" UUIDUUID="441a3c40-0c84-11de-8c30-0800200c9a66" CREATED="2009-02-03 17:52:26.0" AUTHORITY="USER.READ"/>\r
+ <GRANTEDAUTHORITYIMPL ID="1" UUID="441a3c40-0c84-11de-8c30-0800200c9a66" CREATED="2009-02-03 17:52:26.0" AUTHORITY="USER.READ"/>\r
<GRANTEDAUTHORITYIMPL ID="2" UUID="14788361-1a7e-4eed-b22f-fd90a0b424ac" CREATED="2009-02-03 17:52:26.0" AUTHORITY="USER.UPDATE"/>\r
<GRANTEDAUTHORITYIMPL ID="3" UUID="fa56073c-0ffd-4384-b459-b2f07e35b689" CREATED="2009-02-03 17:52:26.0" AUTHORITY="USER.CREATE"/>\r
<GRANTEDAUTHORITYIMPL ID="4" UUID="e5354c0e-657b-4b4d-bb2f-791612199711" CREATED="2009-02-03 17:52:26.0" AUTHORITY="USER.DELETE"/>\r
<TAXONBASE DTYPE="Taxon" ID="5" CREATED="2009-02-03 17:52:26.0" LSID_LSID="[null]" LSID_AUTHORITY="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" UUID="5c1a3d10-3a32-45d1-a5ae-1e982533b79f" TITLECACHE="Abies alba sec. ???" PROTECTEDTITLECACHE="true" DOUBTFUL="false" USENAMECACHE="false" TAXONSTATUSUNKNOWN="false" UNPLACED="false" EXCLUDED="false" TAXONOMICCHILDRENCOUNT="0" NAME_ID="5"/>\r
<TAXONBASE DTYPE="Synonym" ID="6" CREATED="2009-02-03 17:52:26.0" LSID_LSID="[null]" LSID_AUTHORITY="[null]" LSID_NAMESPACE="[null]" LSID_OBJECT="[null]" UUID="4de9d002-d68c-49af-84f1-7f9eddaa1226" TITLECACHE="Abies alba sec. ???" PROTECTEDTITLECACHE="true" DOUBTFUL="false" USENAMECACHE="false" TAXONSTATUSUNKNOWN="[null]" UNPLACED="[null]" EXCLUDED="[null]" TAXONOMICCHILDRENCOUNT="[null]" NAME_ID="6"/>\r
\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2009-02-03 17:52:26.0" UUID="88fab5b3-0d9a-42c3-9915-71fc17266116" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2009-02-03 17:52:26.0" UUID="984e4304-57b0-4ce8-8f94-7c39be7396d9" TITLECACHE="Abies" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="774"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" CREATED="2009-02-03 17:52:26.0" UUID="a7e666e7-0d96-4284-9cc4-8e5ccc3b9a36" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765"/>\r
- <TAXONNAMEBASE DTYPE="BotanicalName" ID="4" CREATED="2009-02-03 17:52:26.0" UUID="ebd459a6-52ec-4f7c-a520-32c82aa31011" TITLECACHE="Abies" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="4" RANK_ID="774" COMBINATIONAUTHORTEAM_ID="1"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="1" CREATED="2009-02-03 17:52:26.0" UUID="88fab5b3-0d9a-42c3-9915-71fc17266116" TITLECACHE="" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" NAMECACHE="" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="1" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="2" CREATED="2009-02-03 17:52:26.0" UUID="984e4304-57b0-4ce8-8f94-7c39be7396d9" TITLECACHE="Abies" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="2" RANK_ID="774"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="3" CREATED="2009-02-03 17:52:26.0" UUID="a7e666e7-0d96-4284-9cc4-8e5ccc3b9a36" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="3" RANK_ID="765"/>\r
+ <TAXONNAMEBASE DTYPE="BotanicalName" ID="4" CREATED="2009-02-03 17:52:26.0" UUID="ebd459a6-52ec-4f7c-a520-32c82aa31011" TITLECACHE="Abies" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="[null]" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="4" RANK_ID="774" COMBINATIONAUTHORTEAM_ID="1"/>\r
<TAXONNAMEBASE DTYPE="BotanicalName" ID="5" CREATED="2009-02-03 17:52:26.0" UUID="5d74500b-9fd5-4d18-b9cd-cc1c8a372fec" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="5" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="1"/>\r
<TAXONNAMEBASE DTYPE="BotanicalName" ID="6" CREATED="2009-02-03 17:52:26.0" UUID="55e6ee55-371e-418e-8775-d885d28453c4" TITLECACHE="Abies alba" PROTECTEDTITLECACHE="true" PARSINGPROBLEM="0" FULLTITLECACHE="Abies alba" PROBLEMENDS="-1" PROBLEMSTARTS="-1" PROTECTEDFULLTITLECACHE="true" AUTHORSHIPCACHE="" GENUSORUNINOMIAL="Abies" NAMECACHE="Abies alba" PROTECTEDAUTHORSHIPCACHE="true" PROTECTEDNAMECACHE="true" SPECIFICEPITHET="alba" ANAMORPHIC="false" BINOMHYBRID="false" HYBRIDFORMULA="false" MONOMHYBRID="false" TRINOMHYBRID="false" HOMOTYPICALGROUP_ID="6" RANK_ID="765" COMBINATIONAUTHORTEAM_ID="2"/>\r
</dataset>\r
class="org.springframework.beans.factory.config.PropertiesFactoryBean">\r
<property name="properties">\r
<props>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
- <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
+ <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.impl.FSDirectoryProvider</prop>\r
<!-- TODO trying to use a managed session context\r
<prop key="hibernate.current_session_context_class">managed</prop>\r
-->\r
+ \r
+<!-- temp for h4 migration testing -->\r
+<!-- <prop key="hibernate.connection.driver_class">org.h2.Driver</prop> -->\r
+<!-- <prop key="hibernate.connection.url">jdbc:h2:mem:cdm</prop> -->\r
+<!-- <prop key="hibernate.connection.username">sa</prop> -->\r
+<!-- <prop key="hibernate.connection.password"></prop> -->\r
+<!-- <prop key="hibernate.search.lucene_version">LUCENE_36</prop> -->\r
+<!-- end temp for h4 migration testing -->\r
+ \r
<prop key="hibernate.search.default.indexBase">./target/index</prop>\r
<!-- hsqldb v. <1.9 has a bug (http://sourceforge.net/tracker/?func=detail&atid=378131&aid=1407528&group_id=23316)\r
due to which it is not possible to use batch updates, so we need to disable\r
</bean>\r
\r
\r
+<!--\r
+ We do not use spelling suggestions anymore. This one relates to springmodules which is\r
+ somewhat outdated. Once we work again with spelling suggestions we better use a modern\r
+ approache, e.g. annotation based.\r
<bean id="taxonSpellingDirectory" class="org.springmodules.lucene.index.support.FSDirectoryFactoryBean">\r
<property name="location" value="file:./target/index/eu.etaxonomy.cdm.model.taxon.TaxonBase_spelling"/>\r
<property name="create" value="true"/>\r
- </bean>\r
+ </bean> -->\r
\r
<bean id="validatorFactory" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">\r
<property name="mappingLocations">\r
<tx:annotation-driven transaction-manager="transactionManager"/>\r
\r
<bean id="transactionManager"\r
- class="org.springframework.orm.hibernate3.HibernateTransactionManager">\r
+ class="org.springframework.orm.hibernate4.HibernateTransactionManager">\r
<property name="sessionFactory" ref="sessionFactory"/>\r
</bean>\r
\r
- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">\r
+ <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">\r
<property name="namingStrategy">\r
<bean class="org.hibernate.cfg.DefaultComponentSafeNamingStrategy" />\r
</property>\r
<property name="properties">\r
<props>\r
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLCorrectedDialect</prop>\r
- <prop key="hibernate.cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>\r
+ <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.internal.NoCachingRegionFactory</prop>\r
<!-- TODO trying to use a managed session context -->\r
<!-- <prop key="hibernate.current_session_context_class">managed</prop>-->\r
<prop key="hibernate.show_sql">false</prop>\r
<prop key="hibernate.format_sql">false</prop>\r
- <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.FSDirectoryProvider</prop>\r
+ <prop key="hibernate.search.default.directory_provider">org.hibernate.search.store.impl.FSDirectoryProvider</prop>\r
<prop key="hibernate.search.default.indexBase">./target/test-classes</prop>\r
</props>\r
</property>\r
### avoid warnings about inappropriate Annotations ###
# TODO remove the below two line after updating to hibernate 4.x
-log4j.logger.org.hibernate.search.engine.DocumentBuilderContainedEntity=error
-log4j.logger.org.hibernate.search.impl.SearchFactoryImpl=error
+#log4j.logger.org.hibernate.search.engine.DocumentBuilderContainedEntity=error
+#log4j.logger.org.hibernate.search.impl.SearchFactoryImpl=error
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
<java.codelevel>1.6</java.codelevel>
<spring.version>3.2.1.RELEASE</spring.version>
<spring-security.version>3.0.7.RELEASE</spring-security.version>
- <hibernate.version>3.4.0-SNAPSHOT</hibernate.version>
+ <hibernate.version>4.1.9.Final</hibernate.version>
+<!-- <hibernate.version>3.4.0-SNAPSHOT</hibernate.version> -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<unitils.version>3.3</unitils.version>
- <lucene.version>2.9.4</lucene.version><!-- lucene.version in hibernate-search 3.4.0-SNAPSHOT is 2.4.0-->
+ <!-- OLD: <lucene.version>2.9.4</lucene.version> --><!-- lucene.version in hibernate-search 3.4.0-SNAPSHOT is 2.4.0-->
+ <lucene.version>3.6.2</lucene.version><!-- lucene.version in hibernate-search 3.4.0-SNAPSHOT is 2.4.0-->
+
+
<hsqldb.version>1.8.0.10</hsqldb.version><!-- 1.8.0.10, 1.9.0-rc6 (manualy build only for debugging) -->
<httpcomponents.version>4.2.3</httpcomponents.version>
</properties>
<artifactId>jaxb-xjc</artifactId>
<version>2.1.6</version>
</dependency>
- <!-- ******* hibernate 3.4 uses slf4j ******* -->
+ <!-- ******* hibernate uses slf4j ******* -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<artifactId>unitils-orm</artifactId>
<version>${unitils.version}</version>
<scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-orm</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.unitils</groupId>
- <artifactId>unitils-spring</artifactId>
- <version>${unitils.version}</version>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-test</artifactId>
- </exclusion>
- </exclusions>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-orm</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.unitils</groupId>
+ <artifactId>unitils-spring</artifactId>
+ <version>${unitils.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-test</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<version>2.4.9</version>
<scope>test</scope>
</dependency>
+ <!-- dependency of unitils database, but with lower number there
+ , higher number needed for compatibility with current hibernate and Java 1.6 PreparedStatement -->
+ <dependency>
+ <groupId>commons-dbcp</groupId>
+ <artifactId>commons-dbcp</artifactId>
+ <version>1.4</version>
+<!-- <scope>test</scope> -->
+ </dependency>
+
<!-- ******* aspect ******* -->
<dependency>
<groupId>org.aspectj</groupId>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
- <version>1.5</version>
+ <version>2.1</version>
</dependency>
<dependency>
+ <groupId>org.jadira.usertype</groupId>
+ <artifactId>usertype.jodatime</artifactId>
+ <version>2.0.1</version>
+ </dependency>
+
+ <!-- <dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time-hibernate</artifactId>
<version>1.0</version>
<artifactId>hibernate</artifactId>
</exclusion>
</exclusions>
- </dependency>
+ </dependency> -->
+
+
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>${lucene.version}</version>
</dependency>
<dependency>
- <groupId>org.springmodules</groupId>
- <artifactId>spring-modules-lucene</artifactId>
- <version>0.8</version>
- <exclusions>
- <exclusion>
- <groupId>org.apache</groupId>
- <artifactId>poi</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.apache</groupId>
- <artifactId>poi-scratchpad</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-dao</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jca</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-support</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-beans</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-aop</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-context</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.springframework</groupId>
- <artifactId>spring-jdbc</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-grouping</artifactId>
+ <version>${lucene.version}</version>
+ </dependency>
+
<dependency>
<groupId>com.ibm.lsid</groupId>
<artifactId>lsid-client</artifactId>
<artifactId>stax</artifactId>
<version>1.2.0</version>
</dependency>
- <!-- ******* HIBERNATE / EJB3 ******* -->
<dependency>
- <groupId>javax.persistence</groupId>
- <artifactId>persistence-api</artifactId>
+ <groupId>xom</groupId>
+ <artifactId>xom</artifactId>
<version>1.0</version>
</dependency>
- <dependency>
+ <!-- ******* HIBERNATE / EJB3 ******* -->
+ <dependency>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ <version>1.0.1.Final</version>
+ </dependency>
+ <dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-annotations</artifactId>
+ <artifactId>hibernate-core</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-commons-annotations</artifactId>
+ <artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-core</artifactId>
+ <artifactId>hibernate-ehcache</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-search</artifactId>
- <version>3.1.0.GA</version>
+ <artifactId>hibernate-envers</artifactId>
+ <version>${hibernate.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-c3p0</artifactId>
+ <version>${hibernate.version}</version>
<exclusions>
- <exclusion>
- <groupId>org.apache.lucene</groupId>
- <artifactId>lucene-core</artifactId>
- </exclusion>
+ <!-- version 0.9.1.x has a bug in NewProxyPreparedStatement
+ therefore we use com.mchange/c3po 0.9.2 instead -->
+ <exclusion>
+ <groupId>c3p0</groupId>
+ <artifactId>c3p0</artifactId>
+ </exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>com.mchange</groupId>
+ <artifactId>c3p0</artifactId>
+ <version>0.9.2</version>
+ </dependency>
+
+
+ <!-- Part of hibernate-core since 3.6 -->
+<!-- <dependency> -->
+<!-- <groupId>org.hibernate</groupId> -->
+<!-- <artifactId>hibernate-annotations</artifactId> -->
+<!-- <version>3.5.6-Final</version> -->
+<!-- </dependency> -->
<dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-entitymanager</artifactId>
- <version>${hibernate.version}</version>
+ <groupId>org.hibernate.common</groupId>
+ <artifactId>hibernate-commons-annotations</artifactId>
+ <version>4.0.1.FINAL</version>
</dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-search</artifactId>
+ <version>4.2.0.Final</version>
+ </dependency>
+
<dependency>
+ <!-- needed?? -->
<groupId>org.hibernate</groupId>
- <artifactId>hibernate-envers</artifactId>
- <version>${hibernate.version}</version>
+ <artifactId>hibernate-search-engine</artifactId>
+ <version>4.2.0.Final</version>
+ <exclusions>
+ <!-- still needed ?? -->
+ <exclusion>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>hibernate-cglib-repack</artifactId>
<version>2.1_3</version>
</dependency>
+
<dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-ehcache</artifactId>
- <version>${hibernate.version}</version>
- </dependency>
- <dependency>
+ <!-- still needed ?? -->
<groupId>org.hibernate</groupId>
<artifactId>hibernate-parent</artifactId>
+ <!-- last version is 3.6.10.Final -->
<version>${hibernate.version}</version>
</dependency>
- <dependency>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate-c3p0</artifactId>
- <version>${hibernate.version}</version>
- </dependency>
+
<!-- ******* SPRING ******* -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-security-context</artifactId> <!-- could not find this on http://mvnrepository.com/ -->
<version>${spring-security.version}</version>
</dependency>
+ <dependency> <!-- needed for the FSDirectoryFactoryBean -->
+ <groupId>org.springmodules</groupId>
+ <artifactId>spring-modules-lucene</artifactId>
+ <version>0.8</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache</groupId>
+ <artifactId>poi</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache</groupId>
+ <artifactId>poi-scratchpad</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-dao</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jca</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-support</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-beans</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-aop</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-jdbc</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
<!-- ******* SERVLET/JSP/JSF ******* -->
<dependency>
<groupId>javax.servlet</groupId>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.1.115</version>
-<!-- <version>1.3.170</version> -->
+<!-- <version>1.1.115</version> -->
+ <version>1.3.170</version>
</dependency>
<!-- yourkit profiler api controller (used in ..)-->
<dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
- <version>1.0.CR5</version>
+ <version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
- <version>4.0.0.CR1</version>
+ <version>4.3.1.Final</version>
</dependency>
<dependency>
<groupId>p6spy</groupId>