Hibernate 4 migration. All test running except for SDDImport (Out of memory)
authorAndreas Müller <a.mueller@bgbm.org>
Sat, 16 Mar 2013 00:30:47 +0000 (00:30 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Sat, 16 Mar 2013 00:30:47 +0000 (00:30 +0000)
282 files changed:
.gitattributes
cdmlib-commons/src/test/java/eu/etaxonomy/cdm/common/UriUtilsTest.java
cdmlib-ext/pom.xml
cdmlib-ext/src/test/java/eu/etaxonomy/cdm/ext/geo/GeoServiceAreaTest.java
cdmlib-ext/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml
cdmlib-io/pom.xml
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelOccurrenceImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/berlinModel/in/BerlinModelOccurrenceSourceImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/common/mapping/DbImportMapperBase.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/dwca/in/DwcaImportState.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/sdd/ikeyplus/IkeyPlusImport.java
cdmlib-io/src/main/java/eu/etaxonomy/cdm/io/sdd/in/SDDImport.java
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/excel/taxa/NormalExplicitImportTest.java
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/jaxb/CdmDocumentBuilderTest.java
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/sdd/in/IkeyPlusImportTest.java
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/sdd/in/SDDImportExportTest.java
cdmlib-io/src/test/java/eu/etaxonomy/cdm/io/sdd/in/SDDImportTest.java
cdmlib-io/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml
cdmlib-io/src/test/resources/eu/etaxonomy/cdm/io/excel/taxa/NormalExplicitImportTest.testUuid.xml
cdmlib-model/pom.xml
cdmlib-model/src/main/java/eu/etaxonomy/cdm/hibernate/PartialUserType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/hibernate/URIUserType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/hibernate/UUIDUserType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/hibernate/WSDLDefinitionUserType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/hibernate/search/IdFieldOptions.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/hibernate/search/SortFieldOptions.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/AgentBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Contact.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Institution.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Person.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/Team.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/agent/TeamOrPersonBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/AnnotatableEntity.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/CdmBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/EventBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/Group.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/IdentifiableEntity.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/LSIDAuthority.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/LanguageStringBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/MarkerType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/PersistentMultiLanguageText.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/PersistentMultiLanguageTextType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/RelationshipTermBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/Representation.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TermBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TermVocabulary.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/TimePeriod.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/User.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/UuidAndTitleCache.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/VersionableEntity.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/common/package-info.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/CommonTaxonName.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/DescriptionElementBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/IndividualsAssociation.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/KeyStatement.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/PolytomousKey.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/PolytomousKeyNode.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/StateData.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/TaxonInteraction.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/description/TextData.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/Media.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/media/Rights.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/GenBankAccession.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/molecular/Locus.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/BacterialName.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/BotanicalName.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/NonViralName.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/TaxonNameBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/ViralName.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/name/ZoologicalName.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/Collection.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/DerivedUnitBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/FieldObservation.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/GatheringEvent.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/Specimen.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/occurrence/SpecimenOrObservationBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/reference/Reference.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/reference/ReferenceType.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/Synonym.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/Taxon.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonBase.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/name/NonViralNameDefaultCacheStrategy.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/cache/name/ZooNameDefaultCacheStrategy.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/BasionymsMustShareEpithetsAndAuthors.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/ChildTaxaMustBeLowerRankThanParent.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/ChildTaxaMustDeriveNameFromParent.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/ChildTaxaMustNotSkipRanks.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/CorrectEpithetsForRank.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/HomotypicSynonymsShouldBelongToGroup.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/InReference.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/MustHaveAuthority.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/NamesWithHomotypicRelationshipsMustBelongToSameGroup.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/NoDuplicateNames.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/NullOrNotEmpty.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/ReferenceCheck.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/annotation/TaxonNameCannotBeAcceptedAndSynonym.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/BasionymsMustShareEpithetsAndAuthorsValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/ChildTaxaMustBeLowerRankThanParentValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/ChildTaxaMustDeriveNameFromParentValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/ChildTaxaMustNotSkipRanksValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/CorrectEpithetsForRankValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/HomotypicSynonymsShouldBelongToGroupValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/InReferenceValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/NamesWithHomotypicRelationshipsMustBelongToSameGroupValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/NullOrNotEmptyValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/ReferenceCheckValidator.java
cdmlib-model/src/main/java/eu/etaxonomy/cdm/validation/constraint/TaxonNameCannotBeAcceptedAndSynonymValidator.java
cdmlib-model/src/main/resources/terms/MarkerType.csv
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/agent/InstitutionalMembershipTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/agent/TeamTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/common/CdmMetaDataTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/common/DefinedTermBaseTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/common/TimePeriodTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/description/CategoricalDataTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/description/DescriptionElementTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/location/PointTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/media/MediaTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/name/NonViralNameTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/taxon/ClassificationTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/agent/PersonDefaultCacheStrategyTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/common/TermDefaultCacheStrategyTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/reference/ArticleDefaultCacheStrategyTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/reference/BookDefaultCacheStrategyTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/reference/BookSectionDefaultCacheStrategyTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/cache/reference/GenericDefaultCacheStrategyTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/NameTypeParserTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/NonViralNameParserImplTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/validation/MustHaveAuthorityTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/validation/NameValidCharactersTest.java
cdmlib-model/src/test/java/eu/etaxonomy/cdm/validation/ReferenceValidationTest.java
cdmlib-persistence/pom.xml
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/CdmDataSource.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/CdmPersistentDataSource.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/ICdmDataSource.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/NomenclaturalCodeAwareDataSource.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SqlServer2005DatabaseType.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SqlServer2008DatabaseType.java [new file with mode: 0644]
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/AbstractBeanInitializer.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/AlternativeSpellingSuggestionParser.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/HibernateBeanInitializer.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/AnnotationDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBase.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmGenericDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/DefinedTermDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/IdentifiableDaoBase.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/MarkerDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/TermVocabularyDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/VersionableDaoBase.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionElementDaoImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/media/MediaDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/occurrence/OccurrenceDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonAlternativeSpellingSuggestionParser.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/CacheStrategyGenerator.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/CdmDataChangeEvent.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/CdmDeleteListener.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/CdmPostDataChangeObservableListener.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/SaveEntityListener.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/SaveOrUpdateEntityListener.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/TableGenerator.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/UpdateEntityListener.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/hibernate/replace/impl/ReferringObjectMetadataFactoryImpl.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/query/GroupByDate.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/query/MatchMode.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/query/NativeSqlOrderHint.java
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/query/RandomOrder.java
cdmlib-persistence/src/main/java/org/hibernate/envers/synchronization/work/CollectionChangeWorkUnit.java
cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/h2-datasource.xml
cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/hibernate.cfg.xml
cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/hsql-datasource.xml
cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/persistence.xml
cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/persistence_security.xml
cdmlib-persistence/src/main/resources/eu/etaxonomy/cdm/spelling.xml
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/database/CdmPersistentDataSourceTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/BeanInitializerIntegration.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/FreeTextSearchIntegration.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/agent/AgentDaoImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBaseTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/DefinedTermDaoImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/IdentifiableDaoBaseTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionDaoHibernateImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/IdentificationKeyDaoHibernateImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/media/MediaRepresentationPartDaoImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/molecular/MolecularHibernateImplTest.java [new file with mode: 0644]
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TypeDesignationDaoHibernateImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/reference/ReferenceDaoHibernateImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImplBenchmark.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonNodeDaoHibernateImplTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/view/AuditEventDaoTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/hibernate/replace/ReferringObjectMetadataFactoryTest.java
cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/test/integration/CdmTransactionalIntegrationTest.java
cdmlib-persistence/src/test/resources/c3p0-config.xml [new file with mode: 0644]
cdmlib-persistence/src/test/resources/dbscripts/001-cdm.h2.sql
cdmlib-persistence/src/test/resources/dbscripts/hibernate.properties
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.common.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/applicationContext-testPersistentDataSource.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/agent/AgentDaoImplTest.testUpdate-result.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/agent/AgentDaoImplTest.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TypeDesignationDaoHibernateImplTest.testSaveTypeDesignationsWithAuditing-result.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/hibernate/CdmDeleteListenerTest.testOnDelete-result.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/hibernate/CdmDeleteListenerTest.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/hibernate/replace/ReferringObjectMetadataFactoryTest.testReplaceToOneProperty-result.xml
cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/persistence/hibernate/replace/ReferringObjectMetadataFactoryTest.xml
cdmlib-print/src/test/java/eu/etaxonomy/cdm/print/PubTest.java [new file with mode: 0644]
cdmlib-remote-webapp/pom.xml
cdmlib-remote-webapp/src/main/webapp/WEB-INF/datasources/configurable.xml
cdmlib-remote-webapp/src/main/webapp/WEB-INF/datasources/datasources-local.xml
cdmlib-remote-webapp/src/main/webapp/WEB-INF/datasources/empty-default-datasource.xml
cdmlib-remote-webapp/src/main/webapp/WEB-INF/datasources/p6spy.xml
cdmlib-remote-webapp/src/main/webapp/WEB-INF/datasources/routing-datasource.xml
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/config/DataSourceConfigurer.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/AbstractController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/AbstractListController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/BaseController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/DerivedUnitFacadeController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/OccurrenceController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/OccurrencePortalController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/dto/PolytomousKeyNodeDtoController.java [new file with mode: 0644]
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/AbstractLinkDto.java
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/LinkedPolytomousKeyNodeRowDto.java [moved from cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/LinkedPolytomousKeyNodeEntryDto.java with 56% similarity]
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/PolytomousKeyNodeLinkDto.java [new file with mode: 0644]
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/TaxonLinkDto.java [new file with mode: 0644]
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/json/processor/bean/LuceneDocumentBeanProcessor.java
cdmlib-remote/src/main/resources/eu/etaxonomy/cdm/remote/json/jsonConfigurations.xml
cdmlib-remote/src/test/java/eu/etaxonomy/cdm/remote/dto/assembler/lsid/AssemblerTest.java
cdmlib-remote/src/test/java/eu/etaxonomy/cdm/remote/view/OaiPmhViewTest.java
cdmlib-remote/src/test/java/eu/etaxonomy/cdm/remote/view/RdfViewTest.java
cdmlib-remote/src/test/resources/applicationContext.xml
cdmlib-services/pom.xml
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationController.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationDefaultConfiguration.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonService.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/NameServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/description/TransmissionEngineOccurrence.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/lsid/impl/LsidDataServiceImpl.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/search/CdmMassIndexer.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/search/LuceneMultiSearch.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/search/LuceneSearch.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/search/SearchResult.java
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/search/SearchResultBuilder.java
cdmlib-services/src/main/resources/eu/etaxonomy/cdm/services.xml
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/facade/DerivedUnitFacadeCacheStrategyTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/facade/DerivedUnitFacadeFieldObservationCacheStrategyTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/ClassificationServiceImplTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/CommonServiceImplTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/DescriptionServiceImplTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBaseTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentificationKeyGeneratorTTT.java [moved from cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentificationKeyGeneratorTest.java with 87% similarity]
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/MediaServiceImplTest.java [deleted file]
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/NaturalLanguageGeneratorTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/PolytomousKeyServiceImplTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TaxonServiceImplBusinessTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TaxonServiceImplTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/TaxonServiceSearchTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/UserServiceImplTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/lsid/LSIDMetadataServiceTest.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/scripts/FixMultipleTextDataInImageGalleries.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/Datasource.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestC3P0Configuration.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/test/function/TestDatabase.java
cdmlib-services/src/test/java/eu/etaxonomy/cdm/validation/ValidationTest.java
cdmlib-services/src/test/resources/dbscripts/hibernate.properties
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/IdentifiableServiceBaseTest.xml
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImplTest.xml
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/TaxonServiceImplTest.testMoveSynonymToAnotherTaxon.xml
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/UserServiceImplTest.xml
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/api/service/lsid/LSIDAuthorityServiceTest.testGetAvailableServices.xml
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/applicationContext-test.xml
cdmlib-services/src/test/resources/eu/etaxonomy/cdm/applicationContextSecurity.unused.xml
cdmlib-services/src/test/resources/log4j.properties
pom.xml

index 3175daa65b0dbf5da4c3770a9363ba771fd1707f..7620baf10850d9923ad3c7908aa1288d542048fe 100644 (file)
@@ -1201,6 +1201,7 @@ cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/OracleDatabaseT
 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
@@ -1447,6 +1448,7 @@ cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/desc
 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
@@ -1475,6 +1477,7 @@ cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/test/suite/TestsShouldNotFailI
 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
@@ -1593,6 +1596,7 @@ cdmlib-print/src/site/apt/index.apt -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
@@ -1718,6 +1722,7 @@ cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/VocabularyControl
 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
@@ -1781,7 +1786,9 @@ cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/oaipmh/Verb.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
@@ -2086,8 +2093,7 @@ cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/ClassificationService
 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
index 417ead7342cc1ec10e3a76cd2bbdaf553af436be..f0928029d86bb8d825982bd204b2238af91ecd8b 100644 (file)
@@ -8,7 +8,7 @@ import java.net.URL;
 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
index e767083e056a534d83cfb0d44f89d9c433eb1f45..08384dec85417a667633c5c2474209c26b1566de 100644 (file)
       <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>
index f5281560d510dc790d4ba7b29352b51e92503e0a..2f43615e063daf676ef25d7efa4505f95b5135cd 100644 (file)
@@ -13,7 +13,7 @@ import static org.junit.Assert.fail;
 \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
index 88a69289bba7736de2c47288a6ffa6c5e5ecc09a..d23d1d630a1928e4e1e4559aeb276a63620add62 100644 (file)
             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
index 5c08a58b0a7437c5707a63e0345c4b6be593b8af..701634365644d9e64c6ed82e881218ae85ecf38a 100644 (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>
index 31b2586b6a3828b89aa9d22d18b152067c23ba1f..55c9d990e1e9e0534c4f3c7e3540af0558aa038f 100644 (file)
@@ -128,7 +128,7 @@ public class BerlinModelOccurrenceImport  extends BerlinModelImportBase {
                 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
index 2f4da4186a1f3648e8cfef05f27072dc2e54a5e1..6da239a0dc43e7e620d7bbff5126663e3875483a 100644 (file)
@@ -119,10 +119,10 @@ public class BerlinModelOccurrenceSourceImport  extends BerlinModelImportBase {
                 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
index c9585d69ffa3b949858da101ec25631e9590a9f2..6fae5e4c8adedae6e5a30fa2a5a5ba47ee523785 100644 (file)
@@ -1,9 +1,9 @@
 // $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
@@ -32,15 +32,14 @@ public class DbImportMapperBase<STATE extends DbImportStateBase<?,?>>  {
        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
index ba54bf28b2dcaca479723ee98b12261ac2e53c76..dd174e61662961be9538569eca31b2885c6b3ce5 100644 (file)
@@ -19,7 +19,6 @@ import java.util.Set;
 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
index f5842fdef20da78097ff72048e91fba518290f11..250c71df9e3961755ffb4de3d3fcfb139bdca73f 100644 (file)
@@ -28,6 +28,7 @@ import eu.etaxonomy.cdm.model.description.KeyStatement;
 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;
@@ -170,7 +171,8 @@ public class IkeyPlusImport extends CdmImportBase<IkeyPlusImportConfigurator, Ik
 
                 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 !!!!!!
index c70ee8ca75090b274b47c505501aabf566c378ff..59d5805be4adaf9f5efc92058da3ffa0c1c2125c 100644 (file)
@@ -25,7 +25,6 @@ import java.util.Set;
 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
@@ -79,6 +78,7 @@ import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 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
@@ -884,7 +884,7 @@ public class SDDImport extends XmlImportBase<SDDImportConfigurator, SDDImportSta
 \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
@@ -1189,7 +1189,7 @@ public class SDDImport extends XmlImportBase<SDDImportConfigurator, SDDImportSta
         */\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
index 026971b653b8aa04eeea134e7cd5d9bfd839c5e7..511eae16aebfc05fdd58b4e3eb7437a56cc2dc20 100644 (file)
@@ -23,9 +23,8 @@ import java.util.List;
 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
@@ -67,7 +66,7 @@ public class NormalExplicitImportTest extends CdmTransactionalIntegrationTest{
        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
@@ -144,7 +143,7 @@ public class NormalExplicitImportTest extends CdmTransactionalIntegrationTest{
                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
@@ -202,13 +201,13 @@ public class NormalExplicitImportTest extends CdmTransactionalIntegrationTest{
                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
index e282c72bf109099ab279d2605939057bcd50a18e..906899d3f277e3457e093e0aef671a812be908ff 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.cdm.io.jaxb;
 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
index d89df856a11c935b97035da5546a30a88a325dec..49fea19330768df4363369269f5f738490ec7a31 100644 (file)
@@ -9,7 +9,6 @@
 \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
@@ -17,14 +16,12 @@ import java.net.URISyntaxException;
 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
@@ -63,7 +60,9 @@ public class IkeyPlusImportTest extends CdmTransactionalIntegrationTest {
     @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
index d484ccbde9263ee82304897a3bad25019db1598d..2ae8ac1e75fd4c30e71c14d355ae9ccae79aa002 100644 (file)
@@ -19,9 +19,8 @@ import java.net.URISyntaxException;
 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
@@ -36,7 +35,6 @@ import eu.etaxonomy.cdm.database.CdmPersistentDataSource;
 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
index eb76eadf1ac4c2856326ea6a64f6e1aaab04d4e7..b5b79d7bcefad0fc546ff6b120365fa2e7396d67 100644 (file)
@@ -9,15 +9,12 @@
 \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
@@ -52,7 +49,7 @@ public class SDDImportTest extends CdmTransactionalIntegrationTest {
         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
index 133ed8e46081a167704689ef2376685c3d13dfb4..6befae592e284fc65ea5df10fddfaa8f2a853dcf 100644 (file)
         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
@@ -57,7 +57,7 @@
     </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
@@ -68,7 +68,7 @@
       <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
index 1ca5869704c1007b23462c33f9457b996a821282..609425568b8177217a95d1c478b575e7c095af8f 100644 (file)
@@ -3,8 +3,8 @@
        <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
index 04477e12853a18763b2d022f0c4bba4c88ffb6a2..8acf153db390a59ddee29e86c5f1fabfe98491cf 100644 (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>
index dc24c47df1ffc8b52e02ed50c41c9f5d5784c7b1..66c321730d1456d75139423146177cd607854534 100644 (file)
@@ -9,16 +9,19 @@
 \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
@@ -28,61 +31,27 @@ import org.joda.time.Partial;
  * 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
@@ -101,17 +70,14 @@ public class PartialUserType implements UserType {
                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
@@ -147,36 +113,25 @@ public class PartialUserType implements UserType {
                }\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
index cea1f15d65d377019ce9a617e5dfef6859576158..479019758520258fcb3e66c65489f3c3cd64ee08 100644 (file)
@@ -9,23 +9,29 @@
 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
@@ -33,71 +39,51 @@ public class URIUserType implements UserType, Serializable  {
      */\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
@@ -115,45 +101,6 @@ public class URIUserType implements UserType, Serializable  {
         }\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
index 5afb989f7edf37e59fd64eb7ae9adbbec8a473a3..e7b7fc708d67538e79c294a44869cd4c1327d19d 100644 (file)
@@ -17,35 +17,26 @@ import java.sql.Types;
 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
@@ -76,33 +67,10 @@ public class UUIDUserType implements UserType {
                }\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
@@ -116,38 +84,35 @@ public class UUIDUserType implements UserType {
                }\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
index 365538959a005b8ed7591a58cbe835f00772c4a4..df83794529a5646d7dc185cf368b94dd68cd98fc 100644 (file)
@@ -26,11 +26,13 @@ import javax.wsdl.xml.WSDLLocator;
 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
@@ -46,9 +48,9 @@ import eu.etaxonomy.cdm.model.common.LSIDWSDLLocator;
  * @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
@@ -73,6 +75,9 @@ public class WSDLDefinitionUserType implements UserType {
                }\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
@@ -86,6 +91,8 @@ public class WSDLDefinitionUserType implements UserType {
                }\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
@@ -99,21 +106,13 @@ public class WSDLDefinitionUserType implements UserType {
                }\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
@@ -130,18 +129,23 @@ public class WSDLDefinitionUserType implements UserType {
                }\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
@@ -149,17 +153,15 @@ public class WSDLDefinitionUserType implements UserType {
         }\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
index 4cb70d24eeb41594157bec4d3bd0d06be5f75cc6..35da4eae55873dd4e965e5938b68b85487fb78d3 100644 (file)
@@ -9,6 +9,8 @@
 */
 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;
@@ -27,7 +29,8 @@ import org.hibernate.search.bridge.LuceneOptions;
  *
  */
 public class IdFieldOptions implements LuceneOptions {
-
+       private static final Logger logger = Logger.getLogger(IdFieldOptions.class);
+       
 
     @Override
     public Store getStore() {
@@ -45,8 +48,36 @@ public class IdFieldOptions implements LuceneOptions {
     }
 
     @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;
+       }
+
 }
index 32cfe390450cd42678599e312d2d1cc1ee6aec6c..37705f23de1f9c17d8a51d991c5ec2d9ac88e7e3 100644 (file)
@@ -9,6 +9,8 @@
 */
 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;
@@ -27,8 +29,8 @@ import org.hibernate.search.bridge.LuceneOptions;
  *
  */
 public class SortFieldOptions implements LuceneOptions {
-
-
+       private static final Logger logger = Logger.getLogger(SortFieldOptions.class);
+       
     @Override
     public Store getStore() {
         return Store.YES;
@@ -45,8 +47,36 @@ public class SortFieldOptions implements LuceneOptions {
     }
 
     @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;
+       }
+
 }
index 04f24789e17269ce143a4f60245882127fb6b205..f59faedc527f158c6d3ebe8ce90c30de8d675068 100644 (file)
@@ -15,7 +15,6 @@ import java.util.Set;
 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;
@@ -64,7 +63,6 @@ public abstract class AgentBase<S extends IIdentifiableEntityCacheStrategy> exte
     @Embedded
     @Merge(MergeMode.MERGE)
     @Match(MatchMode.IGNORE)
-    @NotNull
     private Contact contact;
        
        /** 
index 8b4e42dd85a22b200df3634ad31507583c6765c7..c1e8e8585fa29a915714172e744d15ecb548f1d0 100644 (file)
@@ -15,6 +15,7 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
+import javax.persistence.ElementCollection;
 import javax.persistence.Embeddable;
 import javax.persistence.FetchType;
 import javax.persistence.OneToMany;
@@ -26,13 +27,12 @@ import javax.xml.bind.annotation.XmlRootElement;
 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;
@@ -64,7 +64,6 @@ 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);
        
        
@@ -91,8 +90,8 @@ public class Contact implements Serializable, Cloneable {
                        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);
                }
@@ -142,23 +141,23 @@ public class Contact implements Serializable, Cloneable {
 
        @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)
index a5ff4f6f67eebf701c4f88f8ec3a8c57e4e65a27..b593bd65738b40f7bc4c4b8745fafca7a36d8c7e 100644 (file)
@@ -71,13 +71,13 @@ public class Institution extends AgentBase<IIdentifiableEntityCacheStrategy<Inst
        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;
index b3259a9dc3b643d39530e4d7bc31cd6543fd3576..ac34766668fb2b0280720e846d8ed2fd0547ee18 100644 (file)
@@ -12,6 +12,8 @@ package eu.etaxonomy.cdm.model.agent;
 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;
@@ -36,7 +38,6 @@ import org.joda.time.Partial;
 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;
@@ -81,25 +82,25 @@ public class Person extends TeamOrPersonBase<Person>{
        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;
@@ -311,6 +312,9 @@ public class Person extends TeamOrPersonBase<Person>{
         * @see  #getLifespan()
         */
        public void setLifespan(TimePeriod lifespan){
+               if (lifespan == null){
+                       this.lifespan = TimePeriod.NewInstance(new Partial(), new Partial());
+               }
                this.lifespan = lifespan;
        }
 
index c35636b4e3622d5cda5d85b89ed99df05285ed1f..bf359bf01e4e119e2ac663ec639a05000d8d51a2 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * 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.
 */
@@ -53,7 +53,7 @@ import eu.etaxonomy.cdm.strategy.match.MatchMode;
  * <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
@@ -71,7 +71,7 @@ import eu.etaxonomy.cdm.strategy.match.MatchMode;
 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;
 
@@ -86,16 +86,16 @@ public class Team extends TeamOrPersonBase<Team> {
        @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.
         */
@@ -105,8 +105,8 @@ public class Team extends TeamOrPersonBase<Team> {
                result.setNomenclaturalTitle(nomTitle, true);
                return result;
        }
-       
-       /** 
+
+       /**
         * Class constructor (including the cache strategy defined in
         * {@link eu.etaxonomy.cdm.strategy.cache.agent.TeamDefaultCacheStrategy TeamDefaultCacheStrategy}).
         */
@@ -131,21 +131,24 @@ public class Team extends TeamOrPersonBase<Team> {
         */
        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) {
@@ -153,14 +156,14 @@ public class Team extends TeamOrPersonBase<Team> {
                }
                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()
@@ -173,11 +176,11 @@ public class Team extends TeamOrPersonBase<Team> {
                        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.
         *
@@ -200,8 +203,8 @@ public class Team extends TeamOrPersonBase<Team> {
                        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
@@ -212,10 +215,10 @@ public class Team extends TeamOrPersonBase<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}.
@@ -227,7 +230,7 @@ public class Team extends TeamOrPersonBase<Team> {
         * {@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
@@ -242,14 +245,14 @@ public class Team extends TeamOrPersonBase<Team> {
                        //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)
         */
@@ -261,7 +264,7 @@ public class Team extends TeamOrPersonBase<Team> {
        /**
         * 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) {
@@ -269,7 +272,7 @@ public class Team extends TeamOrPersonBase<Team> {
                this.nomenclaturalTitle = nomenclaturalTitle;
                this.protectedNomenclaturalTitleCache = protectedNomenclaturalTitleCache;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.cdm.model.agent.TeamOrPersonBase#getTitleCache()
         */
@@ -279,7 +282,7 @@ public class Team extends TeamOrPersonBase<Team> {
                isGeneratingTitleCache = true;
                String result = "";
                if (isProtectedTitleCache()){
-                       result = this.titleCache;                       
+                       result = this.titleCache;
                }else{
                        result = generateTitle();
                        result = replaceEmptyTitleByNomTitle(result);
@@ -298,14 +301,14 @@ public class Team extends TeamOrPersonBase<Team> {
                        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()
         */
@@ -324,9 +327,9 @@ public class Team extends TeamOrPersonBase<Team> {
                        e.printStackTrace();
                        return null;
                }
-               
-               
+
+
        }
-       
-       
+
+
 }
\ No newline at end of file
index d6dd8818d5757bc66e39d8536b8adb4a608f663e..3a0eda2edaac107752590d36b5460de6b7896970 100644 (file)
@@ -17,13 +17,13 @@ import javax.xml.bind.annotation.XmlElement;
 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
@@ -48,7 +48,7 @@ public abstract class TeamOrPersonBase<T extends TeamOrPersonBase<?>> extends Ag
     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
@@ -66,7 +66,7 @@ public abstract class TeamOrPersonBase<T extends TeamOrPersonBase<?>> extends Ag
     @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
@@ -106,10 +106,10 @@ public abstract class TeamOrPersonBase<T extends TeamOrPersonBase<?>> extends Ag
      * @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
index 19742ee66fbdf4ef1eb3dbc2ebae0e945b64f787..9369a6b2adf1280885663967a3abe587598f6fe4 100644 (file)
@@ -25,6 +25,7 @@ import javax.xml.bind.annotation.XmlType;
 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;
@@ -40,6 +41,7 @@ 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;
index d0b0480b0a15408e634cb92da6a38ee26101729a..a1e3a45109a05b03cc7a6baf8b8bf67ba7a85337 100644 (file)
@@ -39,6 +39,8 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 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;
@@ -100,6 +102,7 @@ public abstract class CdmBase implements Serializable, ICdmBase, Cloneable{
     @Match(MatchMode.IGNORE)
     @NotNull
     @Min(0)
+    @Audited
     private int id;
 
     @XmlAttribute(required = true)
@@ -110,8 +113,9 @@ public abstract class CdmBase implements Serializable, ICdmBase, Cloneable{
     @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)
@@ -119,8 +123,9 @@ public abstract class CdmBase implements Serializable, ICdmBase, Cloneable{
     @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")
@@ -128,6 +133,7 @@ public abstract class CdmBase implements Serializable, ICdmBase, Cloneable{
     @XmlSchemaType(name = "IDREF")
     @ManyToOne(fetch=FetchType.LAZY)
     @Match(MatchMode.IGNORE)
+    @Audited
     private User createdBy;
 
     /**
index 6626d16026b357b821d7f8805f8da32b00cdeeb6..efbdbdb1455012fbc1e5c3d1b2c1b8f3e1519faa 100644 (file)
@@ -54,7 +54,7 @@ public abstract class EventBase extends AnnotatableEntity implements IEvent {
        private AgentBase actor;
        
        @XmlElement(name = "Description")
-       @Field(index=Index.TOKENIZED)
+       @Field(index=Index.YES)   //TODO H42
        private String description;
        
        
index 9dd8a77506b95cfc3d30a37fe0bbebe965915363..4e497fee5f15a7a79de1396bcd856b30ff4aea21 100644 (file)
@@ -49,7 +49,7 @@ public class Group extends CdmBase {
        \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
index 22db6753e27bbeb048d59e53598cf812e53ace31..a2fbbdab7806c94a858abcf0c4e42f471d2541a8 100644 (file)
@@ -38,11 +38,12 @@ import org.apache.log4j.Logger;
 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;
 
@@ -85,6 +86,7 @@ import eu.etaxonomy.cdm.validation.Level2;
     "credits",
     "sources"
 })
+@Audited
 @MappedSuperclass
 public abstract class IdentifiableEntity<S extends IIdentifiableEntityCacheStrategy> extends AnnotatableEntity
         implements IIdentifiableEntity /*, ISourceable<IdentifiableSource> */ {
@@ -109,7 +111,7 @@ public abstract class IdentifiableEntity<S extends IIdentifiableEntityCacheStrat
     @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;
index fbea7c8ca475d6385d26fb66a7b5275713b85b17..c8a4e9dc8189b38a18edc177861ed148e9a3e510 100644 (file)
@@ -12,8 +12,12 @@ package eu.etaxonomy.cdm.model.common;
 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
@@ -24,7 +28,6 @@ import javax.xml.bind.annotation.XmlTransient;
 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
@@ -77,11 +80,13 @@ public class LSIDAuthority extends CdmBase {
        \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
@@ -136,10 +141,17 @@ public class LSIDAuthority extends CdmBase {
         * @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
index 552eae630e8c6efc66484a42f546721c5131012f..55665b68b2c12548392f16920045adda3b72f2d9 100644 (file)
@@ -57,7 +57,7 @@ public abstract class LanguageStringBase extends AnnotatableEntity{
     @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;
index f965e16e905d0ac39c449d9446fec1ef46938f84..c780370e363f8b656ade0bc37d6e3e77f92179d5 100644 (file)
@@ -1,8 +1,8 @@
 /**
 * 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.
 */
@@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlType;
 
 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;
@@ -51,22 +52,23 @@ public class MarkerType extends DefinedTermBase<MarkerType> {
        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
@@ -80,8 +82,8 @@ public class MarkerType extends DefinedTermBase<MarkerType> {
         * 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() {
@@ -94,8 +96,8 @@ public class MarkerType extends DefinedTermBase<MarkerType> {
        public void setTechnical(boolean isTechnical) {
                this.isTechnical = isTechnical;
        }
-       
-//***************************** CONSTRUCTOR **************************************/    
+
+//***************************** CONSTRUCTOR **************************************/
 
        /**
         * Constructor
@@ -107,8 +109,8 @@ public class MarkerType extends DefinedTermBase<MarkerType> {
        }
 
 //***************************** TERMS **************************************/
-    
-       
+
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.cdm.model.common.DefinedTermBase#resetTerms()
         */
@@ -117,15 +119,15 @@ public class MarkerType extends DefinedTermBase<MarkerType> {
                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);
        }
@@ -145,7 +147,7 @@ public class MarkerType extends DefinedTermBase<MarkerType> {
        public static final MarkerType PUBLISH(){
                return getTermByUuid(uuidPublish);
        }
-       
+
        public static final MarkerType IN_BIBLIOGRAPHY(){
                return getTermByUuid(uuidInBibliography);
        }
@@ -153,19 +155,22 @@ public class MarkerType extends DefinedTermBase<MarkerType> {
        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);
                }
        }
 
index 65d54ad9f2ffa559cd6a0e2d1192aaeb8b0db930..03ba6d182b9c1ee3dccdd3c37df9fe1392c3748b 100644 (file)
@@ -11,8 +11,8 @@ package eu.etaxonomy.cdm.model.common;
 
 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 {
 
@@ -24,6 +24,9 @@ public class PersistentMultiLanguageText extends PersistentMap implements IMulti
                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){
index 25ffc15361986cbcca4190ff6f449e364f6d5ce6..1f834f7a7cc686f2cb5592c27feba423a9c4bc9c 100644 (file)
@@ -13,8 +13,8 @@ import java.util.Iterator;
 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;
 
index 1961405263da89ae7300b0696324f3fa68c215e6..2178e4f00f8bc8febf5942c117085f700a6cea00 100644 (file)
@@ -33,6 +33,7 @@ import org.apache.log4j.Logger;
 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;
@@ -66,12 +67,12 @@ public abstract class RelationshipTermBase<T extends RelationshipTermBase> exten
        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")
index a9df104eee7359e8ce3d855dbcde78a773ce7aef..d86c5202f7ee92403ca587620f4cc109452fee8b 100644 (file)
@@ -45,11 +45,11 @@ public class Representation extends LanguageStringBase {
     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;
 
     /**
index e1f46aa6aacf4e48c44df95c3b32f852da918ffa..31215acf2564cbb354f4303bc27d599ae399859c 100644 (file)
@@ -31,12 +31,13 @@ import org.hibernate.LazyInitializationException;
 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;
 
@@ -51,15 +52,13 @@ 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;
 
index e15d469983db037f74d09a84e754dd19e89f2756..3139e6192c8fe58c264a7d6214bd1b0e497a1f6e 100644 (file)
@@ -39,7 +39,9 @@ import org.hibernate.annotations.Cascade;
 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;
@@ -70,8 +72,7 @@ public class TermVocabulary<T extends DefinedTermBase> extends TermBase implemen
        // 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;
        
index 602a85700df0b8ac9a8b8f0012b49979ab15876b..d738126fc24e98d7c1ac66babb07e8aecca7894c 100644 (file)
@@ -26,9 +26,9 @@ import javax.xml.bind.annotation.XmlRootElement;
 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;
@@ -66,14 +66,14 @@ public class TimePeriod implements Cloneable, Serializable {
        @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;
 
index bbd2ce89ed0754ffd8a63c50ad6c2917fc0d8257..3ffa2057c321320e0796bf0d079b133ce76774b6 100644 (file)
@@ -37,6 +37,7 @@ import org.hibernate.envers.Audited;
 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
@@ -102,7 +103,7 @@ public class User extends CdmBase implements UserDetails {
 \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
index eb3be40c7617ada18cdd0796f57b6cf12c00691b..0e38693bd5b2d3d1c8bd8f1b6bd7d998189a28e5 100644 (file)
@@ -34,10 +34,17 @@ public class UuidAndTitleCache<T extends ICdmBase> implements Serializable {
        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;
        }
        
        /**
@@ -67,4 +74,8 @@ public class UuidAndTitleCache<T extends ICdmBase> implements Serializable {
                return type;
        }
        
+       public boolean getIsOrphaned() {
+               return this.isOrphaned;
+       }
+       
 }
index a93bd8fc8d278ec353c02908bc405b0c83242dcf..d3e42620c46f770989965298e353711879d34afc 100644 (file)
@@ -25,6 +25,8 @@ import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 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;
@@ -56,6 +58,7 @@ import eu.etaxonomy.cdm.strategy.match.MatchMode;
     "updatedBy"
 })
 @XmlJavaTypeAdapter(value=DateTimeAdapter.class,type=DateTime.class)
+@Audited
 @MappedSuperclass
 public abstract class VersionableEntity extends CdmBase implements IVersionableEntity{
        private static final long serialVersionUID = 1409299200302758513L;
@@ -69,7 +72,7 @@ public abstract class VersionableEntity extends CdmBase implements IVersionableE
        @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;
        
index 75ad392403d2c16e0ab89abf6359bb0421e0d8b3..34c293360277ec1e20ef4c90dcfe506928c25371 100644 (file)
@@ -96,8 +96,9 @@
 \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
index 50fa275466684388ccc0887d8228ef1d408f3207..ba72d39fb022c8ef8e0c12e33fde7fa16b91901c 100644 (file)
@@ -63,7 +63,7 @@ public class CommonTaxonName extends DescriptionElementBase implements Cloneable
     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")
index 095bdb3e5b2d2f2d4e55e8c5b0f373d948176e19..3703835aae57c75635f4c86761979bd870583b72 100644 (file)
@@ -24,6 +24,7 @@ import javax.persistence.InheritanceType;
 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;
@@ -116,6 +117,7 @@ public abstract class DescriptionElementBase extends AnnotatableEntity implement
     @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>();
index e84f40a89bdd07a01145e9e4e6dd4c91270d2c6c..f06ce9787e90e1ec085dd0346a9efc45a77c837c 100644 (file)
@@ -17,6 +17,7 @@ import javax.persistence.Entity;
 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;
@@ -70,7 +71,8 @@ public class IndividualsAssociation extends DescriptionElementBase implements IM
        @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>();
        
index b36b9ac44895f0cc56d1d7692cbc10644e1ad72f..c88b9ddcbe72415569272133e6671ff0a962f0b3 100644 (file)
@@ -10,6 +10,7 @@ import java.util.Map.Entry;
 \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
@@ -54,6 +55,7 @@ public class KeyStatement extends VersionableEntity implements IMultiLanguageTex
        @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
index 8e47a6278ca19fcb6a81b4afa84ba8f6e086a91c..180de70280f353765de6307047cc63e90713f496 100644 (file)
@@ -30,12 +30,12 @@ import javax.xml.bind.annotation.XmlRootElement;
 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
@@ -424,7 +424,7 @@ public class PolytomousKey extends IdentifiableEntity<PolytomousKeyDefaultCacheS
                                                result += otherNodeString + separator;\r
                                        }\r
 \r
-                                       result = StringUtils.chompLast(result, separator);\r
+                                       result = StringUtils.chomp(result, separator);\r
                                        result += "\n";\r
                                }\r
                        }\r
index 34ac125b52a65857b5cca2a27bb5eddb0a947dee..126bd815939b2ac8ac04c6601001c23b382f880c 100644 (file)
@@ -18,6 +18,7 @@ import javax.persistence.Entity;
 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;
@@ -205,7 +206,8 @@ public class PolytomousKeyNode extends VersionableEntity implements IMultiLangua
        @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;
index 723b692fd540d886c12d41b98b3c00b732b3e406..3489f0e473dfefe7406f2b7de24b679e8a2a9f45 100644 (file)
@@ -19,6 +19,7 @@ import javax.persistence.Entity;
 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
@@ -93,6 +94,7 @@ public class StateData extends VersionableEntity implements IModifiable, IMultiL
     @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
index 80322e31f97bce9573e515636ff7673191a0423c..04272b63b5bcc517bcdcc82cef0f52e35b77523c 100644 (file)
@@ -18,6 +18,7 @@ import javax.persistence.Entity;
 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;
@@ -73,6 +74,7 @@ public class TaxonInteraction extends DescriptionElementBase implements IMultiLa
        @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>();
index 17910c22b1e4b427e948f3f27503a35b26c87359..3b5b279fef81ce3f433a8a6c0067a1177fac18a2 100644 (file)
@@ -17,6 +17,7 @@ import java.util.Map;
 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;
@@ -78,6 +79,7 @@ public class TextData extends DescriptionElementBase implements IMultiLanguageTe
     @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)
index 7e67e385ede765df45bbc7fe21cd9c4b397768c1..ec129bd6b58f55d8ebac0fd95890e9fc031fe644 100644 (file)
@@ -22,6 +22,7 @@ import javax.persistence.Inheritance;
 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;
@@ -54,6 +55,7 @@ import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 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;
 
@@ -81,7 +83,7 @@ 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);
@@ -91,6 +93,7 @@ public class Media extends IdentifiableEntity implements Cloneable, IMultiLangua
     @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
@@ -109,9 +112,10 @@ public class Media extends IdentifiableEntity implements Cloneable, IMultiLangua
     @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>();
 
index 2a399d73b83c05ae6599050e3788c029097f17b7..d995aa1c057d530c8b59d11af51abcb635fc846a 100644 (file)
@@ -28,6 +28,7 @@ import org.hibernate.annotations.Cascade;
 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;
 
@@ -62,10 +63,7 @@ public class Rights extends LanguageStringBase implements Cloneable{
        
        //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;
        
index e7adb34f605bbcc281892c48763dfeed92db99ea..9814fb97db4e15c03bd1bd5030f66748c48358ac 100644 (file)
@@ -19,6 +19,7 @@ import eu.etaxonomy.cdm.validation.annotation.NullOrNotEmpty;
 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;
 
@@ -51,10 +52,7 @@ public class GenBankAccession extends VersionableEntity {
        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;
        
index f1ab8ee68f50ffbd612c65559454cbd07acc0865..8e8cf1a7886cf88dff991e94777bc9d148558a71 100644 (file)
 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 = {
@@ -58,7 +55,10 @@ public class Locus extends VersionableEntity {
        
 //*********************** 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() {
 
        }
 
index 8ea6810eb92407f2c0df4ac70d1eda2ca8810f16..3c6f9158a4bc517d75e8c53d7b07a2bc7f1511f8 100644 (file)
@@ -52,12 +52,12 @@ public class BacterialName extends NonViralName<BacterialName> implements Clonea
 
        //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 *************/
index ffba41cb7ac6a0226365fd2d7575132214f0a5df..2c628b2ee30b1150a9297e91371b334ad7d3728a 100644 (file)
@@ -52,13 +52,14 @@ import eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl;
 @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
index 6e0089bd0807cd48927d9c5cfda38d5ed0bdea11..57e80a3cef44c1f2e704a9f3413a39f033a66348 100644 (file)
@@ -41,6 +41,7 @@ import org.hibernate.annotations.Cascade;
 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;
@@ -122,8 +123,8 @@ public class NonViralName<T extends NonViralName> extends TaxonNameBase<T, INonV
     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"} )
@@ -136,7 +137,7 @@ public class NonViralName<T extends NonViralName> extends TaxonNameBase<T, INonV
     protected boolean protectedNameCache;
 
     @XmlElement(name = "GenusOrUninomial")
-    @Field(index=Index.TOKENIZED)
+    @Field(index=Index.YES)  //TODO H42
     @Match(MatchMode.EQUAL_REQUIRED)
     @CacheUpdate("nameCache")
     @NullOrNotEmpty
@@ -146,7 +147,7 @@ public class NonViralName<T extends NonViralName> extends TaxonNameBase<T, INonV
     private String genusOrUninomial;
 
     @XmlElement(name = "InfraGenericEpithet")
-    @Field(index=Index.TOKENIZED)
+    @Field(index=Index.YES) //TODO H42
     @CacheUpdate("nameCache")
     @NullOrNotEmpty
     @Size(max = 255)
@@ -154,7 +155,7 @@ public class NonViralName<T extends NonViralName> extends TaxonNameBase<T, INonV
     private String infraGenericEpithet;
 
     @XmlElement(name = "SpecificEpithet")
-    @Field(index=Index.TOKENIZED)
+    @Field(index=Index.YES)  //TODO H42
     @CacheUpdate("nameCache")
     @NullOrNotEmpty
     @Size(max = 255)
@@ -162,7 +163,7 @@ public class NonViralName<T extends NonViralName> extends TaxonNameBase<T, INonV
     private String specificEpithet;
 
     @XmlElement(name = "InfraSpecificEpithet")
-    @Field(index=Index.TOKENIZED)
+    @Field(index=Index.YES)    //TODO H42
     @CacheUpdate("nameCache")
     @NullOrNotEmpty
     @Size(max = 255)
@@ -210,8 +211,8 @@ public class NonViralName<T extends NonViralName> extends TaxonNameBase<T, INonV
     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"} )
@@ -850,7 +851,7 @@ public class NonViralName<T extends NonViralName> extends TaxonNameBase<T, INonV
         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);
             }
         }
index b14d0f28579c1a8f9f2c180b011aa78ad335b0fc..e1885596c7f61b1f10fddf74a84e67b23b3f45f8 100644 (file)
@@ -138,14 +138,14 @@ public abstract class TaxonNameBase<T extends TaxonNameBase<?,?>, S extends INam
     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)
index 5b8e37fca7d078c603094081b9831df17b7b6b0c..a8e5400215fc9e95f12afa066c7847462f286396 100644 (file)
@@ -66,7 +66,7 @@ public class ViralName extends TaxonNameBase<ViralName, INameCacheStrategy<Viral
 //     protected INameCacheStrategy<ViralName> cacheStrategy;
        
        @XmlElement(name = "Acronym")
-       @Field(index=Index.TOKENIZED)
+       @Field(index=Index.YES)   //TODO H42
        @NullOrNotEmpty
        @Length(max = 255)
        private String acronym;
index 94ad11d636dab748d66453233e4c62ad2dbecf0a..3cd2d0b14f59c067c94ab3a54114c1702e1e7264 100644 (file)
@@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlType;
 
 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;
@@ -66,19 +67,19 @@ public class ZoologicalName extends NonViralName<ZoologicalName> implements Clon
 
        //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;
index 030dc96c08f853a95dc3c677a9673ce3594b1979..ffd23ca667672d4cc45fb7c466220056a43cd1bc 100644 (file)
@@ -26,10 +26,11 @@ 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.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;
@@ -38,7 +39,6 @@ import org.springframework.beans.factory.annotation.Configurable;
 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;
 
@@ -61,31 +61,31 @@ 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;
index 0a445071c96f34d738ec48e3a9df7ea80eb1a385..4fe2f6203dd61d09f1d9438b6227422f8f318bea 100644 (file)
@@ -29,6 +29,7 @@ import javax.xml.bind.annotation.XmlType;
 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;
@@ -75,25 +76,25 @@ public abstract class DerivedUnitBase<S extends IIdentifiableEntityCacheStrategy
        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;
index 074587529f64579d81be5cf09c8705bc0a10efb4..84aafa488e9f968d6e44e8b260e5fb2f4907ba95 100644 (file)
@@ -64,7 +64,7 @@ public class FieldObservation extends SpecimenOrObservationBase<IIdentifiableEnt
        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;
@@ -79,7 +79,7 @@ public class FieldObservation extends SpecimenOrObservationBase<IIdentifiableEnt
        private Person primaryCollector;
        
        @XmlElement(name = "FieldNotes")
-       @Field(index=Index.TOKENIZED)
+       @Field(index=Index.YES)   //TODO H42
        @NullOrNotEmpty
        @Length(max = 255)
        private String fieldNotes;
index f6675b47935e8e24a108211981152542e3829799..1b42fbc3c65d361f2e4c4f63ec4a3a9462df3918 100644 (file)
@@ -33,6 +33,7 @@ import org.apache.log4j.Logger;
 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;
@@ -102,28 +103,28 @@ public class GatheringEvent extends EventBase implements Cloneable{
        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;
 
        /**
index f9ae25ef5ac36aeb6b8dccb2265c18c693ddeaa6..318273904764c791e47c568efe8f391c2e0cf6c7 100644 (file)
@@ -63,7 +63,7 @@ public class Specimen extends DerivedUnitBase<IIdentifiableEntityCacheStrategy<S
        
        @XmlElement(name = "Exsiccatum")
        @NullOrNotEmpty
-       @Field(index=Index.TOKENIZED)
+       @Field(index=Index.YES)   //TODO H42
        @Size(max = 255)
     private String exsiccatum;
        
index 8c7814f13a49053f58563e5732c6cb026d14d36b..a24252f1a55aadf98a43683ec56bbde74931e7ae 100644 (file)
@@ -20,6 +20,7 @@ import javax.persistence.Inheritance;
 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;
@@ -40,6 +41,7 @@ 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.IndexedEmbedded;
 
@@ -110,7 +112,7 @@ public abstract class SpecimenOrObservationBase<S extends IIdentifiableEntityCac
        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;
        
@@ -119,7 +121,8 @@ public abstract class SpecimenOrObservationBase<S extends IIdentifiableEntityCac
        @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>();
index 3f1d510f403145c9c6d6f253316083eabd6d844b..43535324fee368d083e90fbcd57141da2b52729e 100644 (file)
@@ -39,6 +39,7 @@ import org.hibernate.annotations.CascadeType;
 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
@@ -126,7 +127,7 @@ public class Reference<S extends IReferenceBaseCacheStrategy> extends Identifiab
        @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
@@ -136,70 +137,70 @@ public class Reference<S extends IReferenceBaseCacheStrategy> extends Identifiab
 \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
@@ -257,7 +258,7 @@ public class Reference<S extends IReferenceBaseCacheStrategy> extends Identifiab
        @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
@@ -265,7 +266,7 @@ public class Reference<S extends IReferenceBaseCacheStrategy> extends Identifiab
        \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
index 21e35a1e3c6fe820afc337eac2a0553d64134c59..4ab1c6352a3ebdf7af642564363fcc401a63e952 100644 (file)
@@ -1,9 +1,9 @@
 // $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
@@ -50,13 +50,13 @@ import eu.etaxonomy.cdm.strategy.cache.reference.ThesisDefaultCacheStrategy;
 @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
@@ -97,19 +97,19 @@ public enum ReferenceType implements IDefinedTerm<ReferenceType>, Serializable{
        //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
@@ -121,7 +121,7 @@ public enum ReferenceType implements IDefinedTerm<ReferenceType>, Serializable{
 \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
@@ -135,17 +135,18 @@ public enum ReferenceType implements IDefinedTerm<ReferenceType>, Serializable{
                        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
@@ -153,47 +154,51 @@ public enum ReferenceType implements IDefinedTerm<ReferenceType>, Serializable{
        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
@@ -202,29 +207,34 @@ public enum ReferenceType implements IDefinedTerm<ReferenceType>, Serializable{
                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
index b963465eefd2c47c0dc6167cf60c7d0bf3ec20a9..74a01e6cdae665f8ad34e834e4f08d58e5209fe1 100644 (file)
@@ -240,6 +240,10 @@ public class Synonym extends TaxonBase<IIdentifiableEntityCacheStrategy<Synonym>
                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}
index 03f2ad1f93d5d6e98e909db37cbcb955700ebe29..5560bb6fac3d28c22d4b517d8ba5121e754a43ba 100644 (file)
@@ -15,6 +15,7 @@ import java.util.ArrayList;
 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;
@@ -49,6 +50,8 @@ import org.springframework.util.ReflectionUtils;
 
 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;
@@ -1525,6 +1528,17 @@ public class Taxon extends TaxonBase<IIdentifiableEntityCacheStrategy<Taxon>> im
         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;
     }
index 4e381b49b5e95fa2ab2e22cf64940cd966eb74b3..c3542860a0804be5358c7288db65a99ef0f286d5 100644 (file)
@@ -283,6 +283,9 @@ public abstract class TaxonBase<S extends IIdentifiableEntityCacheStrategy> exte
     public void setUseNameCache(boolean useNameCache) {
         this.useNameCache = useNameCache;
     }
+    
+    @Transient
+    public abstract boolean isOrphaned();
 //*********************** CLONE ********************************************************/
 
     /**
index 3bfa3ba4388c9aedab7c71368c105731a612ee0f..40d270d08e6dd53d5d997c71f73ffd91a0e8b17a 100644 (file)
@@ -385,6 +385,9 @@ public class NonViralNameDefaultCacheStrategy<T extends NonViralName> extends Na
             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
index 8cb8619d2e0697becc64bcb5fdf5d5df4a799bcf..3ea50b05daea5b6eadf4523eb36f2e0833bb11c4 100644 (file)
@@ -95,6 +95,9 @@ public class ZooNameDefaultCacheStrategy extends NonViralNameDefaultCacheStrateg
                        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
index d935e1745cf1bcf4738da6c6b4c5ce27659ca03c..aa2dadad733f47eb34167a6870b69bee5fec01dc 100644 (file)
@@ -18,7 +18,10 @@ import eu.etaxonomy.cdm.validation.constraint.NamesWithHomotypicRelationshipsMus
 @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
index 24735cc005c93f3aa4eb7f43e18cc0118c4d4790..76c2cbcd9c2638f6fa2f2936a24d867410db41df 100644 (file)
@@ -17,7 +17,10 @@ import eu.etaxonomy.cdm.validation.constraint.ChildTaxaMustBeLowerRankThanParent
 @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
index 11543c6aa5aadd6d8d7a308abc185b33c47a316c..d9c7c1a146f35e2e8f22d58fe37de612bc98c5a3 100644 (file)
@@ -17,7 +17,10 @@ import eu.etaxonomy.cdm.validation.constraint.ChildTaxaMustDeriveNameFromParentV
 @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
index a2b7dce58edbc305af2327e781083e04f4e481b1..1d49573a9a1fe5505cffa4d5bbaf0b9e8820e6fb 100644 (file)
@@ -17,7 +17,10 @@ import eu.etaxonomy.cdm.validation.constraint.ChildTaxaMustNotSkipRanksValidator
 @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
index 74532e3665bb36fefabab66e375729729ec0c788..9bc05cd76df60bc613bff339efb6ac53b9042c93 100644 (file)
@@ -26,7 +26,10 @@ import eu.etaxonomy.cdm.validation.constraint.CorrectEpithetsForRankValidator;
 @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
index ab618535f6c0601af4c35e8d7a662585e2b96161..963b7698e0398e6e6ad08377d4e1b3765ab6a85c 100644 (file)
@@ -18,7 +18,10 @@ import eu.etaxonomy.cdm.validation.constraint.HomotypicSynonymsShouldBelongToGro
 @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
index aa546f26f702f62de2dcd084b16d3790c6feb8ad..b558393e01bed87fae40dd1cd77caf0594213785 100644 (file)
@@ -21,8 +21,10 @@ import eu.etaxonomy.cdm.validation.constraint.InReferenceValidator;
 @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
index 570741f1f829e51f33e30f01d9095a58a4768830..6aad8b360bd6329b665f32e5c3f6ace9c91e5c52 100644 (file)
@@ -26,7 +26,10 @@ import eu.etaxonomy.cdm.validation.constraint.MustHaveAuthorityValidator;
 @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
index e00e999ff2936fe976ca716cebc5a511f39ec89e..3f735af8ba2608adfc5d66138136e99fe8ed3daf 100644 (file)
@@ -17,7 +17,10 @@ import eu.etaxonomy.cdm.validation.constraint.NamesWithHomotypicRelationshipsMus
 @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
index 3b542f537ecb8a7bb076bbfe9e63755ae85e28f9..a2db95945e5cc2dbdfca02dad9f769b7ea69b077 100644 (file)
@@ -26,7 +26,10 @@ import eu.etaxonomy.cdm.validation.constraint.StubValidator;
 @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
index fdb64580e35ef777ab090b0b5e31fd7ab5f9bab8..e6d97d10d300acbebfbb139e25a9a9e48c14bf47 100644 (file)
@@ -25,7 +25,10 @@ import eu.etaxonomy.cdm.validation.constraint.NullOrNotEmptyValidator;
 @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
index 6917fd1c1f9d9d93752f5b3bf06afd6de3cc90d9..1ab83e7511dfe5d4b83fb2cc12e1d4bd8c4ec6f9 100644 (file)
@@ -21,8 +21,10 @@ import eu.etaxonomy.cdm.validation.constraint.ReferenceCheckValidator;
 @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
index a1e3d30b3d10193c2b83b86eab3c4f0cd1c33f91..dd442b0737f77f1f16801e5d7b9811ade470aedb 100644 (file)
@@ -27,7 +27,10 @@ import eu.etaxonomy.cdm.validation.constraint.TaxonNameCannotBeAcceptedAndSynony
 @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
index cd8a222d14a23f0dfe0f4ab90896cc56537189c7..d4bbbd1badb14708c5a241bf173148e7508d3534 100644 (file)
@@ -29,37 +29,37 @@ public class BasionymsMustShareEpithetsAndAuthorsValidator implements
        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
index 8b02e2e4ae28872f32d46489ce7da60048816710..b090a0e7de21199d0712b895c390d2735c0720d5 100644 (file)
@@ -24,6 +24,7 @@ public class ChildTaxaMustBeLowerRankThanParentValidator implements
 \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
@@ -31,7 +32,7 @@ public class ChildTaxaMustBeLowerRankThanParentValidator implements
                        \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
index 058167db711f11f6d87d7b4987678ac60594ae09..5bebf440c1b843238ae67b1988e10d097e31c97b 100644 (file)
@@ -37,12 +37,12 @@ public class ChildTaxaMustDeriveNameFromParentValidator implements
                                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
index a09b0c40ace3be0f5449f66b55212c9c040a2aa1..646306044e2144d297ff8786c7e8365ed41122d4 100644 (file)
@@ -32,10 +32,10 @@ public class ChildTaxaMustNotSkipRanksValidator implements
                        \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
index 6e120fe10439f48b1c7d84dc48f5e7812d2d787d..36b4039e348d9727889be7ad268deedc11f884d2 100644 (file)
@@ -15,8 +15,7 @@ import javax.validation.ConstraintValidatorContext;
 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
@@ -25,49 +24,49 @@ public class CorrectEpithetsForRankValidator implements
                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
index e16b51a79aefa7e8d3c69f38473670d18ed6bf2e..c7b4db09f37008a71bc7d8b75e5aa4c039c5d465 100644 (file)
@@ -32,7 +32,7 @@ public class HomotypicSynonymsShouldBelongToGroupValidator implements
                        \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
index 8a24850e4530b0371c51f2bd60f22f9cb0d6885c..21a25c470a54ea405356689ad168cf1b0ae3e5eb 100644 (file)
@@ -14,8 +14,7 @@ public class InReferenceValidator implements ConstraintValidator<InReference, Re
                \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
@@ -34,8 +33,8 @@ public class InReferenceValidator implements ConstraintValidator<InReference, Re
                \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
index fe614d8190cac15ad7ec2f52967fb71b3757d813..846b209642f5eca2ad77b9d699385348fd14b0f6 100644 (file)
@@ -33,8 +33,8 @@ public class NamesWithHomotypicRelationshipsMustBelongToSameGroupValidator imple
                   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
index 677c7d1e20c13f059e7d3fbef4668da7af12a5fc..785c5783de1d7b7677574027d23d86758ab02bdc 100644 (file)
@@ -14,8 +14,7 @@ import javax.validation.ConstraintValidatorContext;
 \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
index 6507031447c4fe6fe82cfed307ff7fe8a5cf8002..e11910891bfb3ee955324e50dd3a836827df70b5 100644 (file)
@@ -20,7 +20,7 @@ ConstraintValidator<ReferenceCheck, Reference>{
                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
@@ -34,7 +34,7 @@ ConstraintValidator<ReferenceCheck, Reference>{
                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
index 3848980457bd47d1386c26a8f5864e0b8e075794..8984b62f92c1764d2e0103de2d19f66daa7dc713 100644 (file)
@@ -16,11 +16,9 @@ import javax.validation.ConstraintValidatorContext;
 \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
@@ -43,11 +41,11 @@ public class TaxonNameCannotBeAcceptedAndSynonymValidator implements
                                                                \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
index 0282fbd92329c1c46c9616b5060e5a41a36c3b04..3ad8006504629d48df29e775f705252c69b5bdc0 100644 (file)
@@ -6,4 +6,6 @@
 "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
index fdd061f2b595b4a11c2b9c1798ba84b39f813515..b5eca2ed6cd3268997c40896e53364f740ef4978 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.cdm.model.agent;
 \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
index 873c8b52849c1e780d8606fc75713ee3c89fd04e..ef06a63d3987c82627ba40df95a58e314429d068 100644 (file)
@@ -9,12 +9,10 @@
 */\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
index 4710ff20e7d744206c833cae35045ad9475953b7..be9e188b29bb00a7f135b1d7b706a66d2023d359 100644 (file)
@@ -13,7 +13,7 @@ import static org.junit.Assert.*;
 \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
index 87436ab613bbac598c4f62c748db52cd4e12b001..740ded8e5df1f34bf451cfebe4c0c078be12f6e0 100644 (file)
@@ -9,8 +9,6 @@
 \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
index 01200b252bbfa411afac6f04dae2126a26a65d90..61e33ecf9fce004fff20850a1af4b7929b9456c2 100644 (file)
@@ -14,7 +14,7 @@ import static org.junit.Assert.assertFalse;
 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
index cce8906fa6ff33f42c28cbf6107e8cadcb52e4e4..c3f2e3750b03afbcc6fd4ced522a5bc5919445f4 100644 (file)
@@ -9,13 +9,11 @@
 */\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
index 673581eb63abe40a89f754d6ad47a231d1615521..cef62f0ceea71179e037e48606ef7daf6f57b67b 100644 (file)
@@ -16,7 +16,7 @@ import static org.junit.Assert.assertTrue;
 \r
 import java.util.List;\r
 \r
-import junit.framework.Assert;\r
+import org.junit.Assert;\r
 \r
 \r
 \r
index d674997498aeff29112a1f228386484dd7c127d1..e44026b04d6fe808def448ee16dc2c033f2c3515 100644 (file)
@@ -131,8 +131,8 @@ public class PointTest {
                \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
index 506af55adfac31e756ffde4c1a085a2923f245af..6b822d6552103bd20c20be408239ef896a0083e0 100644 (file)
 \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
index a56abd909ad412559ee2c3ad1bf01a6986d4fcd5..cae28e47117fbcf7e99cf34661dcdef90aebd23b 100644 (file)
@@ -15,7 +15,7 @@ import static org.junit.Assert.assertNotNull;
 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
@@ -281,19 +281,19 @@ public class NonViralNameTest extends EntityTestBase {
 \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
@@ -302,54 +302,54 @@ public class NonViralNameTest extends EntityTestBase {
                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
@@ -366,16 +366,16 @@ public class NonViralNameTest extends EntityTestBase {
                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
@@ -392,11 +392,11 @@ public class NonViralNameTest extends EntityTestBase {
                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
@@ -405,7 +405,7 @@ public class NonViralNameTest extends EntityTestBase {
                \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
index 2c235adb022ca8453d6669e101f7e0a466b570f1..9d5c673b28a6dccfb0a80f5d0737621b70756159 100644 (file)
@@ -24,7 +24,7 @@ import java.util.HashSet;
 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
@@ -70,9 +70,9 @@ public class ClassificationTest {
        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
@@ -278,7 +278,7 @@ public class ClassificationTest {
                        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
@@ -312,7 +312,7 @@ public class ClassificationTest {
                        \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
@@ -325,21 +325,21 @@ public class ClassificationTest {
                        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
@@ -349,7 +349,7 @@ public class ClassificationTest {
                        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
@@ -374,7 +374,7 @@ public class ClassificationTest {
                                        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
@@ -384,7 +384,7 @@ public class ClassificationTest {
                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
@@ -393,12 +393,12 @@ public class ClassificationTest {
                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
index fe16a5961ae65f3cef01ef61671032da69d3b97d..1dcff8f9ed9ac795e6080cf3e30ea1741615a67d 100644 (file)
@@ -12,16 +12,16 @@ package eu.etaxonomy.cdm.strategy.cache.agent;
 \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
@@ -103,7 +103,7 @@ public class PersonDefaultCacheStrategyTest {
                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
@@ -119,7 +119,7 @@ public class PersonDefaultCacheStrategyTest {
                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
index 6935e2783ad4e083946f1c304312e18d7f01f095..4dc3090bc8c375987f44e0ee0c78fe367a28bce8 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.cdm.strategy.cache.common;
 \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
@@ -32,7 +32,7 @@ public class TermDefaultCacheStrategyTest {
        @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
index 0bc9ddef3b0237765f13fb79945683d5544eecda..16d42fccc115b20a37333855b0b352e139671926 100644 (file)
@@ -10,7 +10,7 @@
 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
@@ -38,7 +38,7 @@ public class ArticleDefaultCacheStrategyTest {
        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
@@ -123,7 +123,7 @@ public class ArticleDefaultCacheStrategyTest {
                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
@@ -137,7 +137,7 @@ public class ArticleDefaultCacheStrategyTest {
                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
index 4b83c28c3df25d8d5abbb49d825c339672b4dae2..59f91ca34bb87e5d692c6f1c339f92c8fd40b237 100644 (file)
@@ -10,7 +10,7 @@
 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
index 659ff7981a17cd81b28e3ffc789e6b2e93130389..e497f791799bea6bc17395d56b1e06bbeecad155 100644 (file)
@@ -10,7 +10,7 @@
 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
index 2587c1140e126a0ccc15e4e2dc9215ae846e3137..c1149f6f00d03e66ee893412a640f4ff316ceb6c 100644 (file)
@@ -10,7 +10,7 @@
 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
index 8fd06e348f319a43b651d916523204a7da203733..8abf9325400d1cfca8ac467acdfe3d2de1beb1bd 100644 (file)
@@ -9,8 +9,7 @@
 */\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
index c1d3c714595c16aa929d9530e69c7ad19d275af4..fe03bc3c268197767ea32087ecef2b3da038374a 100644 (file)
@@ -21,12 +21,10 @@ import java.util.List;
 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
@@ -353,7 +351,7 @@ public class NonViralNameParserImplTest {
                \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
@@ -361,7 +359,7 @@ public class NonViralNameParserImplTest {
 \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
@@ -390,9 +388,9 @@ public class NonViralNameParserImplTest {
                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
@@ -434,7 +432,7 @@ public class NonViralNameParserImplTest {
        \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
@@ -444,13 +442,13 @@ public class NonViralNameParserImplTest {
                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
@@ -458,7 +456,7 @@ public class NonViralNameParserImplTest {
                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
@@ -1135,7 +1133,7 @@ public class NonViralNameParserImplTest {
 \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
index 157c1f722540f865b2bf5929c10eaca682e006fa..cfafd00e895e8554c59d0cd44ede9343bed4a773 100644 (file)
@@ -9,29 +9,20 @@
 \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
index c79ae4982e47cdb59ccde56719706bf4a8528154..93398884a0106e3018ac568f1c0c3295208b43f9 100644 (file)
@@ -23,7 +23,7 @@ import javax.validation.Validator;
 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
index 74104fcd029e30c0a691bad476c6b8667e1371b4..3d7a4be3c8463f0e6da5e596d2b411920fea797d 100644 (file)
@@ -25,7 +25,7 @@ import javax.validation.Validator;
 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
@@ -132,7 +132,7 @@ public class ReferenceValidationTest  {
                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
@@ -144,7 +144,7 @@ public class ReferenceValidationTest  {
        @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
index f5cbe543fe749166edd47dd13b09d2894ae1a7cf..8c303f8a46d2f660174ec41273cd1b7477dceb17 100644 (file)
     </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>
index 157a4a3c81980df40d2a1ec4fc4c60812d904d7e..3ab21af96cbcc8dd7ca6a4ba4b17ce972cc15a45 100644 (file)
@@ -14,8 +14,9 @@ import java.util.Properties;
 \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
@@ -51,7 +52,7 @@ public class CdmDataSource extends CdmDataSourceBase {
        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
@@ -161,7 +162,6 @@ public class CdmDataSource extends CdmDataSourceBase {
        /* (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
@@ -176,10 +176,11 @@ public class CdmDataSource extends CdmDataSourceBase {
                //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
@@ -208,14 +209,14 @@ public class CdmDataSource extends CdmDataSourceBase {
                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
@@ -240,7 +241,8 @@ public class CdmDataSource extends CdmDataSourceBase {
                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
index 6fceff355087d7b61c7514e36df9db7895593ff0..3f832380f91169541a02ee523900037455ed9713 100644 (file)
@@ -28,8 +28,8 @@ import java.util.Properties;
 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
@@ -385,7 +385,7 @@ public class CdmPersistentDataSource extends CdmDataSourceBase{
                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
@@ -395,7 +395,7 @@ public class CdmPersistentDataSource extends CdmDataSourceBase{
         * @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
@@ -407,7 +407,7 @@ public class CdmPersistentDataSource extends CdmDataSourceBase{
                        formatSql = false;\r
                }\r
                if (cacheProviderClass == null){\r
-                       cacheProviderClass = NoCacheProvider.class;\r
+                       cacheProviderClass = NoCachingRegionFactory.class;\r
                }\r
                if(registerSearchListener == null){\r
                        registerSearchListener = false;\r
@@ -420,7 +420,7 @@ public class CdmPersistentDataSource extends CdmDataSourceBase{
                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
index 1c2b4363a51c30efcf82a3d90988f534188b3711..099f103b5de9cee1f08ed34d2b398b8cfb51437a 100644 (file)
@@ -13,7 +13,7 @@ import java.sql.DatabaseMetaData;
 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
@@ -40,7 +40,7 @@ public interface ICdmDataSource {
         * @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
index 0cdb3b33dfd81f1b2e866db3674bd13b0466c57c..5ef48dd338b63300bd9a67484647db33d4bdd865 100644 (file)
@@ -26,8 +26,8 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
  * @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;
 
index a5312f9181167a91dc3b6d215f0b56bbcf5cd549..3ffc33d37757382dedeac97c991e8054ef5b55e1 100644 (file)
@@ -37,7 +37,7 @@ public class SqlServer2005DatabaseType extends DatabaseTypeBase {
     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
@@ -95,7 +95,7 @@ public class SqlServer2005DatabaseType extends DatabaseTypeBase {
     \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
diff --git a/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SqlServer2008DatabaseType.java b/cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/SqlServer2008DatabaseType.java
new file mode 100644 (file)
index 0000000..0088a77
--- /dev/null
@@ -0,0 +1,29 @@
+/**\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
index eca64832a4e98b21890052db1e237ac4dd208201..0437be2b614023184b8cef431efb2bbcc4021bd2 100644 (file)
@@ -14,7 +14,6 @@ import java.lang.reflect.InvocationTargetException;
 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
index f482fdc09b5213d967da2f4a409223633ddd3173..d60f1e7390a4be258fd7d042ee002d12066d31e9 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.cdm.persistence.dao.hibernate;
 \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
@@ -23,6 +22,7 @@ import org.apache.lucene.analysis.TokenStream;
 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
@@ -33,12 +33,14 @@ import org.apache.lucene.search.spell.Dictionary;
 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
@@ -46,8 +48,10 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 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
@@ -55,6 +59,10 @@ IAlternativeSpellingSuggestionParser {
        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
@@ -75,12 +83,12 @@ IAlternativeSpellingSuggestionParser {
        }\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
@@ -88,25 +96,39 @@ IAlternativeSpellingSuggestionParser {
        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
@@ -157,29 +179,41 @@ IAlternativeSpellingSuggestionParser {
                        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
index fb406bcc953510780caf323cecd23575a85607e9..5d98f15cc74f90fc40b608569aecbf72124e94d7 100644 (file)
@@ -11,7 +11,7 @@ package eu.etaxonomy.cdm.persistence.dao.hibernate;
 \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
index ad929dc207c4d7b45f0b554590febef45a808f13..fbb99030f997cd1d3745847c3d92ef1c0cef95e0 100644 (file)
@@ -12,7 +12,6 @@ package eu.etaxonomy.cdm.persistence.dao.hibernate.common;
 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;
@@ -45,7 +44,7 @@ public class AnnotationDaoImpl extends LanguageStringBaseDaoImpl<Annotation> imp
                
                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) {
@@ -87,7 +86,7 @@ public class AnnotationDaoImpl extends LanguageStringBaseDaoImpl<Annotation> imp
                
                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) {
index b3798c06e74a07dce9d925827c73162e5cdece9d..3727c93731cc165a30dd517f4edc0b01d6a50f02 100644 (file)
@@ -11,7 +11,6 @@ package eu.etaxonomy.cdm.persistence.dao.hibernate.common;
 \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
@@ -23,6 +22,7 @@ import java.util.UUID;
 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
@@ -55,12 +55,12 @@ import eu.etaxonomy.cdm.model.common.User;
 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
@@ -74,6 +74,10 @@ public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implem
     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
@@ -208,7 +212,7 @@ public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implem
 \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
@@ -471,7 +475,10 @@ public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implem
             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
@@ -572,18 +579,21 @@ public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implem
     }\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
@@ -682,7 +692,7 @@ public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implem
         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
@@ -747,7 +757,7 @@ public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implem
         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
index a258b87625b7473a5ec077ef83223aec718f73fd..6ac4febf2126ae7047c30d0aff40702dcd4ac741 100644 (file)
@@ -21,7 +21,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.naming.NamingException;
 import javax.naming.Reference;
 
 import org.apache.commons.lang.StringUtils;
@@ -36,8 +35,9 @@ import org.hibernate.SessionFactory;
 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;
@@ -54,12 +54,12 @@ import org.hibernate.type.EnumType;
 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;
 
@@ -273,7 +273,7 @@ public class CdmGenericDaoImpl extends CdmEntityDaoBase<CdmBase> implements ICdm
                }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;
@@ -345,7 +345,7 @@ public class CdmGenericDaoImpl extends CdmEntityDaoBase<CdmBase> implements ICdm
                                StringType.class,
                                BooleanType.class, 
                                IntegerType.class, 
-                               StringClobType.class,
+                               MaterializedClobType.class,
                                LongType.class,
                                FloatType.class,
                                SerializableType.class,
@@ -476,10 +476,11 @@ public class CdmGenericDaoImpl extends CdmEntityDaoBase<CdmBase> implements ICdm
                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();
@@ -560,7 +561,7 @@ public class CdmGenericDaoImpl extends CdmEntityDaoBase<CdmBase> implements ICdm
                        }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){
index e74c6f94900650e568581b5fd7c0f6e201271043..47825c59de8a4beef6ef5d69eab0895a91b71fad 100644 (file)
@@ -222,10 +222,9 @@ public class DefinedTermDaoImpl extends IdentifiableDaoBase<DefinedTermBase> imp
                
                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
@@ -264,9 +263,9 @@ public class DefinedTermDaoImpl extends IdentifiableDaoBase<DefinedTermBase> imp
                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();
        }
 
        
@@ -327,7 +326,7 @@ public class DefinedTermDaoImpl extends IdentifiableDaoBase<DefinedTermBase> imp
                
                    criteria.setProjection(Projections.rowCount());
                
-                   return (Integer)criteria.uniqueResult();
+               return ((Number)criteria.uniqueResult()).intValue();
                } else {
                        AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(NamedArea.class,auditEvent.getRevisionNumber());
                        
index caa5f2dbdbe6591b9c3a7afaf164e1c0d002f5e5..1bf4fea28ee72e0b84a9a2d6774365c66e42ed6e 100644 (file)
@@ -18,6 +18,7 @@ import org.apache.log4j.Logger;
 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;
@@ -41,6 +42,7 @@ import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
 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;
@@ -52,6 +54,8 @@ public class IdentifiableDaoBase<T extends IdentifiableEntity> extends Annotatab
     protected String defaultField = "titleCache_tokenized";
     protected Class<? extends T> indexedClasses[];
 
+    
+    
     public IdentifiableDaoBase(Class<T> type) {
         super(type);
     }
@@ -302,7 +306,7 @@ public class IdentifiableDaoBase<T extends IdentifiableEntity> extends Annotatab
 
     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);
@@ -352,7 +356,7 @@ public class IdentifiableDaoBase<T extends IdentifiableEntity> extends Annotatab
 
     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 {
@@ -405,7 +409,7 @@ public class IdentifiableDaoBase<T extends IdentifiableEntity> extends Annotatab
         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;
     }
 
@@ -427,7 +431,7 @@ public class IdentifiableDaoBase<T extends IdentifiableEntity> extends Annotatab
         }
 
 
-        Integer result = (Integer)crit.setProjection(Projections.rowCount()).uniqueResult();
+        Integer result = ((Number)crit.setProjection(Projections.rowCount()).uniqueResult()).intValue();
         return result;
     }
 
index 204dcd7732286b9dceb8edae3f539fc23406af6b..c51a3147b10546fca91341ba201433fcbf6eca6c 100644 (file)
@@ -35,7 +35,7 @@ public class MarkerDaoImpl extends VersionableDaoBase<Marker> implements IMarker
                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
@@ -78,7 +78,7 @@ public class MarkerDaoImpl extends VersionableDaoBase<Marker> implements IMarker
                    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
index d12c01a3ea74058f817f91a272aac0edf055319a..a29e9048eb58293424b8ef875527944d3bbf0c6d 100644 (file)
@@ -55,7 +55,7 @@ public class TermVocabularyDaoImpl extends IdentifiableDaoBase<TermVocabulary> i
                        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
index e9b791936ab11a29a3349a0f0f98387e68f6cea3..9ccb3b7a5cc82dfa4cd89d684813f3a4631e9697 100644 (file)
@@ -35,7 +35,6 @@ import eu.etaxonomy.cdm.persistence.query.MatchMode;
 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
index 5edbff1558cfd97af3587226f656d49fa78d2f48..ff2d48e4a5742a79ef3e5acfa7695dc814a0c84a 100644 (file)
@@ -98,7 +98,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 \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
@@ -170,7 +170,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 \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
@@ -204,7 +204,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 \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
@@ -432,7 +432,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 \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
@@ -493,7 +493,7 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
 \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
@@ -557,9 +557,9 @@ public class DescriptionDaoImpl extends IdentifiableDaoBase<DescriptionBase> imp
         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
index ec27644bbbb0fce6bb43b32e2a58eb7214ab86e1..f5644d22cdb927cc58a4fd7c5837bb315d746b20 100644 (file)
@@ -57,7 +57,7 @@ public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionEle
 
     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);
@@ -122,7 +122,7 @@ public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionEle
 
     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);
@@ -183,7 +183,7 @@ public class DescriptionElementDaoImpl extends AnnotatableDaoImpl<DescriptionEle
 
     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);
index a06f9e52cc50a023c0218b4c005c5acc9d6105c4..73b21ba979df1d99f0efeb55c95cdb5b25932cfa 100644 (file)
@@ -74,7 +74,7 @@ public class MediaDaoHibernateImpl extends IdentifiableDaoBase<Media> implements
                        \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
index 72dc71227c7fa76b7eb6b24c88f53f8d88303535..edfc34ffac3fc6ffb69b7b445aaf45fda18b124b 100644 (file)
@@ -63,7 +63,6 @@ import eu.etaxonomy.cdm.persistence.query.OrderHint;
 @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
@@ -114,7 +113,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonNameBase
                }\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
@@ -132,7 +131,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonNameBase
                }\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
@@ -173,7 +172,7 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonNameBase
                        }\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
@@ -719,6 +718,10 @@ public class TaxonNameDaoHibernateImpl extends IdentifiableDaoBase<TaxonNameBase
                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
index 500b472b6f1c5dd32f58822d2efff56985711c23..f4d5c996f0466ebe3e2010229a92d593adadd396 100644 (file)
@@ -114,7 +114,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
             }\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
@@ -290,7 +290,7 @@ public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrOb
                \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
index db2d74c06bd69522ffb74ad306ca6d475dcfc23d..339296ad27e2ff7e6b76387a2d0288ec49121bfc 100644 (file)
@@ -20,7 +20,8 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
 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
index adfe761ef23bf2776e8d372b923ac6e9d610beea..ef9bdabeaff2833b794bd4e96e01260e2ed05c5f 100644 (file)
@@ -12,7 +12,6 @@ import java.util.ArrayList;
 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
@@ -21,7 +20,6 @@ import java.util.SortedSet;
 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
@@ -42,9 +40,7 @@ import org.springframework.beans.factory.annotation.Qualifier;
 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
@@ -55,7 +51,6 @@ import eu.etaxonomy.cdm.model.name.NonViralName;
 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
@@ -75,7 +70,6 @@ import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;
 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
@@ -100,7 +94,8 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
     @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
@@ -295,15 +290,15 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
                 //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
@@ -657,57 +652,82 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
             }\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
@@ -1109,7 +1129,7 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
         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
@@ -1127,7 +1147,7 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
             }\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
@@ -1176,7 +1196,7 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
                 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
@@ -1205,7 +1225,7 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
             }\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
@@ -1263,7 +1283,7 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
 \r
         criteria.setProjection(Projections.projectionList().add(Projections.rowCount()));\r
 \r
-        return (Integer)criteria.uniqueResult();\r
+               return ((Number)criteria.uniqueResult()).intValue();\r
     }\r
 \r
     /*\r
@@ -1610,7 +1630,7 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
 \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
@@ -1636,7 +1656,7 @@ public class TaxonDaoHibernateImpl extends IdentifiableDaoBase<TaxonBase> implem
     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
index 03e09f73d87d7f6a07a6ead34c370c5bd0ffe13f..f9c5dc16964a917bbbbb094288015947f87642d5 100644 (file)
@@ -11,8 +11,8 @@ package eu.etaxonomy.cdm.persistence.hibernate;
 \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
index 4e5cbb8ff5769850495b6176322df5548326938e..12acb53c91588cb0a8b1ea3f12ea26d153a4a6ec 100644 (file)
@@ -12,12 +12,12 @@ package eu.etaxonomy.cdm.persistence.hibernate;
 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;
index 695a26b1c2077686edef85609fc5f345791b665c..ea0f30a4a62a8f4ef4bd0e87c034d8d3ba34eccd 100644 (file)
@@ -13,10 +13,11 @@ import java.util.Set;
 \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
index 8a987e4da9a3aa47cf7cc9594c9e043eb8d1e08d..6e306f0feb3a948b9283334322f99172492f4fb4 100644 (file)
@@ -14,14 +14,14 @@ import java.util.HashSet;
 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;
 
index b1e058a979f834f50c1c384514952be8e19efd6c..7ff471d89cf1ec4bcba5824005e55150e8a1a51b 100644 (file)
@@ -11,11 +11,9 @@ package eu.etaxonomy.cdm.persistence.hibernate;
 \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
index a5d0410256176972743e3820afbe8ce9896f1764..335d1055c437691a2d6433a5c11ebe083e256e52 100644 (file)
@@ -1,9 +1,8 @@
 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
@@ -13,7 +12,7 @@ import eu.etaxonomy.cdm.model.common.User;
 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
index 8df935ffb1f1d1b943dea7db9e04ee6ab51a966c..98ecce0d9ee1445735106e1f3975b59435bbf3cf 100644 (file)
@@ -3,13 +3,11 @@
  */
 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;
 
 /**
index 3a4d2a98ee460b3a4307607b56a44c34745d657c..7612841d4c6f7f2e332c5c941e0f68c40eaa5b39 100644 (file)
@@ -11,8 +11,8 @@ package eu.etaxonomy.cdm.persistence.hibernate;
 \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
index 56207db3f7b20b68ae9bda95c7583c214d26ad91..e54889c63afe5ea8b6d7aa0578e4c10c823c2a21 100644 (file)
@@ -10,7 +10,7 @@ import javax.persistence.OneToMany;
 
 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;
@@ -36,7 +36,7 @@ public class ReferringObjectMetadataFactoryImpl implements    ReferringObjectMetada
        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()) {
@@ -46,7 +46,7 @@ public class ReferringObjectMetadataFactoryImpl implements    ReferringObjectMetada
                                        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);
@@ -64,7 +64,7 @@ public class ReferringObjectMetadataFactoryImpl implements    ReferringObjectMetada
                                                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)) {
@@ -82,15 +82,14 @@ public class ReferringObjectMetadataFactoryImpl implements  ReferringObjectMetada
                                }
                        }
                        
-            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()) {
@@ -105,7 +104,7 @@ public class ReferringObjectMetadataFactoryImpl implements  ReferringObjectMetada
                                                                        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 {
index f11cf20fc67afd04f8a5f793e0800dafb1ff495e..d62a8589fd44c27812a8538e2cad7dc266490cb0 100644 (file)
@@ -11,11 +11,11 @@ package eu.etaxonomy.cdm.persistence.query;
 
 
 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;
@@ -34,15 +34,15 @@ public class GroupByDate extends Grouping {
                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);
                }
        }
        
index e43a1f3fa1eab88d7ea9b53ad7bc5f761ec49975..09404178829e635a61d660000d1e110c5bdaeb57 100644 (file)
@@ -59,6 +59,9 @@ public enum MatchMode {
                 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
index f0293d3911849e6770c2fba5c0f6eeb5a9ac2cbc..37e16a872cd79933773a42d55936a2f16ba5e452 100644 (file)
@@ -7,7 +7,7 @@ import org.hibernate.HibernateException;
 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;
 
@@ -27,6 +27,8 @@ public class NativeSqlOrderHint extends OrderHint {
        }
     
        public class NativeSqlHibernateOrder extends Order {
+               private static final long serialVersionUID = 6439553377404790090L;
+               
                private String nativeSQL;
                private Boolean ascending;
 
index 0743381fb459ba87b9a715dc4c3633c358e02715..c44b8b6c1832f1badfd44caad35e742d0f545656 100644 (file)
@@ -7,7 +7,7 @@ import org.hibernate.HibernateException;
 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;
 
@@ -25,6 +25,8 @@ public class RandomOrder extends OrderHint {
        }
     
        public class RandomHibernateOrder extends Order {
+               private static final long serialVersionUID = 8231534219451938847L;
+
 
                protected RandomHibernateOrder() {
                        super(RandomOrder.PROPERTY_NAME, true);
@@ -40,6 +42,7 @@ public class RandomOrder extends OrderHint {
                criteriaQuery.getSQLAlias(criteria));
                } 
        }
+       
        @Override
        public void add(AuditQuery query) {
                        throw new OperationNotSupportedInPriorViewException("You cannot sort in a random order in the history view");
index 37237f60e45e276bfa522df1d52f3d954ab64a82..d7aebb842f26cd27a4e191bc808a8b79d9769c37 100644 (file)
@@ -45,48 +45,51 @@ import org.hibernate.Session;
  * 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
index 6ceedc5453461d028587baa3e8170a87502fb9a2..b13432449a573d2343f8f033e32954f97907a167 100644 (file)
@@ -25,7 +25,7 @@
             <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
index baf9a83326b7c5cebce2337285e4a98c43d0bdbd..d51aa6fb94ea48513ab7dcc532448e39745a8b26 100644 (file)
@@ -1,7 +1,7 @@
 <?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
@@ -9,7 +9,8 @@
       <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
@@ -18,7 +19,7 @@
 \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
@@ -28,7 +29,7 @@
                      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
index 8bf68ce8a6f4d1a294bf8beb093abddebf5ab81a..d21a57d2d90742af43bd9571cc8eada26dd961b7 100644 (file)
@@ -30,7 +30,7 @@
             <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
index 39097ac5e04471cb8889ac1cb3fe1ad1ef2c97e0..193ed1763c0a4918c1d3047f52d114a3a0c7fbb6 100644 (file)
@@ -9,21 +9,24 @@
     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
@@ -32,6 +35,7 @@
             see also org.springframework.orm.hibernate3.AbstractSessionFactoryBean.setDataSource(DataSource dataSource)
          -->
       <property name="dataSource" ref="dataSource"/>
+      
       <property name="hibernateProperties" ref="hibernateProperties"/>
   </bean>
 
index 6c5c0121a070d7097bcbbdaef303c3d0e275c4c0..5f58d6df22ab4e4f7eef1b2b284899203d727d16 100644 (file)
@@ -9,11 +9,11 @@
     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
index c75692c8ce763465e607ff1226b159b7efc13fea..a73a4241dcee5e77eb9cc4662c278f8d277a99b1 100644 (file)
     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
@@ -27,7 +27,7 @@
       <property name="analyzer">\r
         <bean class="org.apache.lucene.analysis.SimpleAnalyzer"/>\r
       </property>\r
-    </bean>\r
+    </bean> -->\r
 \r
 \r
 </beans>\r
index 18cd30848ca42e9823ce760df13263733386faa4..46be95e8ff0831aeffd7fbfaf719b11ba73a3ae7 100644 (file)
@@ -21,8 +21,8 @@ import java.io.IOException;
 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
@@ -193,7 +193,7 @@ public class CdmPersistentDataSourceTest {
                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
@@ -218,7 +218,7 @@ public class CdmPersistentDataSourceTest {
                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
@@ -230,7 +230,7 @@ public class CdmPersistentDataSourceTest {
                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
index 134c04a9e2d63180eae253fdc1d52b6bd0efc809..16f97c55068ed8e2d1f1e7e9e3fade1164846e75 100644 (file)
@@ -18,10 +18,6 @@ import java.util.List;
 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
@@ -37,7 +33,6 @@ import eu.etaxonomy.cdm.model.view.AuditEvent;
 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
index 0d66ec8fb665458b2512c77a7b7915c072a854b6..dd048db59d713d36b7aadd8b0158386784c26740 100644 (file)
@@ -37,6 +37,7 @@ import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
 @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
@@ -151,6 +152,7 @@ public class FreeTextSearchIntegration extends CdmTransactionalIntegrationTest {
     }\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
@@ -158,6 +160,7 @@ public class FreeTextSearchIntegration extends CdmTransactionalIntegrationTest {
     }\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
@@ -165,6 +168,7 @@ public class FreeTextSearchIntegration extends CdmTransactionalIntegrationTest {
     }\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
@@ -172,6 +176,7 @@ public class FreeTextSearchIntegration extends CdmTransactionalIntegrationTest {
     }\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
index 808d85e94aa3cf7f4e4567fa923a86701623a2b7..0f05e2b36da9fcc96178a866519635517e8a6d40 100644 (file)
@@ -17,13 +17,11 @@ import java.util.ArrayList;
 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
@@ -32,6 +30,7 @@ import eu.etaxonomy.cdm.model.agent.AgentBase;
 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
@@ -137,8 +136,8 @@ public class AgentDaoImplTest extends CdmTransactionalIntegrationTest {
         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
index a5b3f5a3cc2b4568d94df98e19c10751174a60b3..477cb945243d22724959fad25fa1f1e19cff63d6 100644 (file)
@@ -19,33 +19,25 @@ import java.util.Arrays;
 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
@@ -56,7 +48,7 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec
 \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
@@ -118,9 +110,10 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec
     @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
@@ -132,9 +125,10 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec
     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
@@ -189,6 +183,7 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec
     @ExpectedDataSet\r
     public void testSave() throws Exception {\r
         cdmEntityDaoBase.save(cdmBase);\r
+        commit();\r
     }\r
 \r
 \r
@@ -247,9 +242,10 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec
     @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
@@ -258,7 +254,7 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec
     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
@@ -368,7 +364,7 @@ public class CdmEntityDaoBaseTest extends CdmTransactionalIntegrationTestWithSec
     @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
index 2ae710da439b143a7bc2c95630bdb63966d93303..f8b428d475016b446bedd02c5553c229503cc4a8 100644 (file)
@@ -91,12 +91,14 @@ public class DefinedTermDaoImplTest extends CdmIntegrationTest {
        @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);
        }
 
index b54e5bc61d5392812f8be90c3eba9cd455bdc106..8310796483414ea36a9432a5356ae2260dac3807 100644 (file)
@@ -141,21 +141,21 @@ public class IdentifiableDaoBaseTest extends CdmIntegrationTest {
     @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
index 513413285f6a337fc129c766b3f33f6631b9eaba..d006acd7489600dec35cf2ce9660b2beef3b0604 100644 (file)
@@ -22,13 +22,10 @@ import java.util.Map;
 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;
 
@@ -47,14 +44,12 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 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
@@ -228,7 +223,7 @@ public class DescriptionDaoHibernateImplTest extends CdmTransactionalIntegration
 
        @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);
@@ -238,15 +233,14 @@ public class DescriptionDaoHibernateImplTest extends CdmTransactionalIntegration
 
        @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);
 
@@ -295,7 +289,7 @@ public class DescriptionDaoHibernateImplTest extends CdmTransactionalIntegration
        @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);
@@ -306,7 +300,7 @@ public class DescriptionDaoHibernateImplTest extends CdmTransactionalIntegration
        @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);
index 74748ebcebc089bed3ab32702830c225a3e27356..4513659caa6b7e6b369d3f261bc1c7fee03e9b55 100644 (file)
@@ -12,8 +12,7 @@ package eu.etaxonomy.cdm.persistence.dao.hibernate.description;
 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;
@@ -21,7 +20,6 @@ import org.unitils.spring.annotation.SpringBeanByType;
 
 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;
index bab39ffde6805dedf2a9be37c6d4c50813b61f30..860d4d25854167c830bd769dd5e7742949045f5f 100644 (file)
@@ -10,9 +10,6 @@
 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;
@@ -30,11 +27,10 @@ import eu.etaxonomy.cdm.model.media.MediaRepresentation;
 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;
@@ -73,7 +69,7 @@ public class MediaRepresentationPartDaoImplTest extends /*CdmTransactionalIntegr
                
                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){
@@ -96,18 +92,7 @@ public class MediaRepresentationPartDaoImplTest extends /*CdmTransactionalIntegr
                        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");
diff --git a/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/molecular/MolecularHibernateImplTest.java b/cdmlib-persistence/src/test/java/eu/etaxonomy/cdm/persistence/dao/hibernate/molecular/MolecularHibernateImplTest.java
new file mode 100644 (file)
index 0000000..a1187b4
--- /dev/null
@@ -0,0 +1,71 @@
+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
index d36aa4dc70d01cd19c1d435617fca02d8b999199..03bdaadf53611e239023421a1d3ac4eecdea7841 100644 (file)
@@ -170,7 +170,6 @@ public class TaxonNameDaoHibernateImplTest extends CdmIntegrationTest {
        \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
@@ -185,7 +184,6 @@ public class TaxonNameDaoHibernateImplTest extends CdmIntegrationTest {
                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
index ed5b850a5752008d5686d3ab4441f3fdf2bb22c7..ddf75be5bbdcbff629351574818c5be309fd6dfb 100644 (file)
@@ -10,7 +10,7 @@
 \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
@@ -20,7 +20,6 @@ import java.util.UUID;
 \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
@@ -90,7 +89,7 @@ public class TypeDesignationDaoHibernateImplTest extends CdmTransactionalIntegra
                }\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
@@ -110,7 +109,7 @@ public class TypeDesignationDaoHibernateImplTest extends CdmTransactionalIntegra
                        }\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
@@ -139,12 +138,13 @@ public class TypeDesignationDaoHibernateImplTest extends CdmTransactionalIntegra
                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
@@ -162,13 +162,17 @@ public class TypeDesignationDaoHibernateImplTest extends CdmTransactionalIntegra
                //   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
@@ -223,6 +227,7 @@ public class TypeDesignationDaoHibernateImplTest extends CdmTransactionalIntegra
                desig1.setTypeSpecimen(specimen);\r
 \r
                occurrenceDao.saveOrUpdate(specimen);\r
+               commit();\r
 \r
        }\r
 \r
index 11e26c7120875a4eac7eae4405e8f8858475d247..0e423c57c6b7e9ad59e2a292e62fedd629a40687 100644 (file)
@@ -11,9 +11,12 @@ package eu.etaxonomy.cdm.persistence.dao.hibernate.reference;
 \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
@@ -93,7 +96,7 @@ public class ReferenceDaoHibernateImplTest extends CdmIntegrationTest {
                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
@@ -103,31 +106,45 @@ public class ReferenceDaoHibernateImplTest extends CdmIntegrationTest {
        @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
index 4eb72b22e2329bff47b7fa9a08051dfaac03673e..0b883a77ebcecfca408bab97030ccf3241745f03 100644 (file)
@@ -9,67 +9,23 @@
 \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
@@ -185,18 +141,4 @@ public class TaxonDaoHibernateImplBenchmark extends CdmTransactionalIntegrationT
 \r
 \r
 \r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
 }\r
index e0fb26a2ecd799b5e735c5f1620e9da8c171174e..083c0b17028097626ce4afcb342bcf920a88de70 100644 (file)
@@ -9,11 +9,11 @@
 \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
@@ -25,7 +25,7 @@ import java.util.List;
 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
@@ -60,7 +60,6 @@ import eu.etaxonomy.cdm.model.view.AuditEventRecord;
 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
@@ -226,7 +225,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -324,7 +323,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -429,7 +428,6 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
      * 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
@@ -752,7 +750,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -775,7 +773,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -793,7 +791,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -805,7 +803,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -815,7 +813,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -837,7 +835,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -848,7 +846,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
     @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
@@ -981,7 +979,7 @@ public class TaxonDaoHibernateImplTest extends CdmTransactionalIntegrationTest {
 \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
index 09418b5dc338bbf198af8a6f873cfbed7f32b25f..84a18b3b9cb74824fd1886991585133b15c88638 100644 (file)
@@ -9,7 +9,7 @@
 
 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;
index a796d274160f6aca5f334a49a26133d2c6c623bd..f91dae701957fb26e487b7b60c48a3c8fbd68e5e 100644 (file)
@@ -9,64 +9,15 @@
 \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
index 21c8692db2f455955aca44d46d3874e17092a008..f9a3d1835086702ea7758a5b3ca368f29dff09a3 100755 (executable)
@@ -10,7 +10,6 @@
 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
@@ -22,11 +21,8 @@ import org.unitils.spring.annotation.SpringBeanByType;
 \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
index 76af65f7aed9159ff44c804f617db15b68b77015..d2ee2323a589c67fb67ef4e77d24a516cd47c164 100644 (file)
@@ -362,6 +362,8 @@ public abstract class CdmTransactionalIntegrationTest extends CdmIntegrationTest
         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
diff --git a/cdmlib-persistence/src/test/resources/c3p0-config.xml b/cdmlib-persistence/src/test/resources/c3p0-config.xml
new file mode 100644 (file)
index 0000000..4e7e3d9
--- /dev/null
@@ -0,0 +1,38 @@
+<?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
index 0ad8f5a843bb14a731cd3c648b687af7e1fd2ac0..6463719d9ff3ed350ebf05504d16978045ff4766 100644 (file)
@@ -6,6 +6,8 @@ SET CACHE_SIZE 16384;
 ;
 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,
index 5c38e41172c3d67772d7de4a1d7712c76d8e55f9..46f5bb8876e995d80ef4f8c84386e6662bd7a821 100644 (file)
@@ -11,7 +11,7 @@
 \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
index cddce5cda569adc3bd0a9e0dfb26b758b4fb9341..1258d403d17a67479b81aac060a399902b721f86 100644 (file)
         -->\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
index 849a48174bbabac2be89473b696603f8e23f64f5..bf98e006d98b8418727cc5d39ccf9ecb9d16f844 100644 (file)
         <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
index f34cccb705f4db1f886ebda481b5f58ef23c8002..6cc96bb673e81bf525b596df1b084f826d77d96a 100644 (file)
Binary files a/cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml and b/cdmlib-persistence/src/test/resources/eu/etaxonomy/cdm/database/TermsDataSet-with_auditing_info.xml differ
index 257bdf804017da045cbf738f95add049d288d01a..d3adfb4447220b51fd5b9ba8603b0adebaa7bea3 100644 (file)
@@ -1,4 +1,9 @@
 <?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
index 4b35903483d5f7d81163df155e9611d77e9e00b8..0ddd052aa852d8f023e020a5c771cecb69f70681 100644 (file)
@@ -1,24 +1,25 @@
 <?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
index c8aef369797e4bb7eb7947134fd5ed8790a1df9e..1fe27717de789f31924f07ec1216065a1482e0a2 100644 (file)
@@ -1,24 +1,24 @@
 <?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
index 5c0425369252405f78a6d237694d04b7418acef0..a788aaeb7736fa08550f7fcf2ce6a9aa69afbe3e 100644 (file)
@@ -3,6 +3,7 @@
 \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
index 8c9b29f663557b444ae055a52505d887c10a2625..44df967a6be8b52f07303c777114284e9d371622 100644 (file)
@@ -6,8 +6,8 @@
   <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
index 5331c0cd69af028369c426c82a4dc2bfa4887375..97ba2848abf83b71c7b28bb997a100780e15bd45 100644 (file)
@@ -6,10 +6,10 @@
   <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
index 5c8e11f27df0786a7074f5e2dfa830594122acd1..fbfa32f1d25dc6fb686ed95ea2d94569fae0dbc1 100644 (file)
@@ -15,8 +15,8 @@
   <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]"/>
index 041cdb4b9c48556bfc76a17f02175c31664d2df4..19b4f791112af729f3668d19cba2c26fb67a9ab2 100644 (file)
@@ -62,8 +62,8 @@
   <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]"/>
diff --git a/cdmlib-print/src/test/java/eu/etaxonomy/cdm/print/PubTest.java b/cdmlib-print/src/test/java/eu/etaxonomy/cdm/print/PubTest.java
new file mode 100644 (file)
index 0000000..d220e31
--- /dev/null
@@ -0,0 +1,131 @@
+// $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
index 33119aa08846f3421f68f134ea8e45a3275963a1..201239ba75d1fc110233d58de80c6be34ff39116 100644 (file)
         <groupId>stax</groupId>
         <artifactId>stax</artifactId>
       </dependency>
+      <dependency>
+       <groupId>xom</groupId>
+        <artifactId>xom</artifactId>
+      </dependency>
       
       <!-- JSP TAG LIBS -->
       <dependency>
index 80fe8d48917ab727c4e730706417f84597c4255e..e30d5de9fe50eae6f97de4446d7a648a18c87c11 100644 (file)
                 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
index b8f0a5c6c19efa72bbacd59f2ff041d767e6988c..39b6f57c7c86dd5a3f753d2338c233b352f3f511 100644 (file)
@@ -45,7 +45,7 @@
             <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
index 1308f8bd932dd0c0be77794765af4cc54fff33c4..b796fb9e81f9f980e82f7ff8955bc8517bf6cb8b 100644 (file)
@@ -30,7 +30,7 @@
             <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
index 33f43d26959daf99c54f5804dbf7ca91fc3fcbd5..9936c57c200b41e91b7740e537c1b80a0d2aa46f 100644 (file)
@@ -33,7 +33,7 @@
             <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>
index a5d1e9a62fd80b67c797f904bc69153c326b7c08..2f3da069ca4322b622a9c82c51e0ef0fdfaa2df8 100644 (file)
@@ -60,7 +60,7 @@
                                      -->\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
index 3c822f2ebac89665656e1ae2a57b311b602626ec..d15c26cccec99042eac93c752692724063a00c71 100644 (file)
@@ -21,7 +21,6 @@ import java.util.Properties;
 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
index a4d38fc6645f195678ec7bd2f993f0d1e986f0b2..a92e0018dd1246097d3b2266a9975b77924a3e0c 100644 (file)
@@ -16,18 +16,27 @@ import javax.servlet.http.HttpServletRequest;
 \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
@@ -49,6 +58,9 @@ public abstract class AbstractController {
      * @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
index 3641eb0dbde5fb3a258ba327a31bef2f8617cf1c..f5edc92f4911b97ed9560d9de047813f02333cbe 100644 (file)
@@ -19,10 +19,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
  * @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
index 80202e8e5eb4727085bbde5992ab1752a04bd673..7e724be9e5171b2a58e60b5d3a66fb00a4762744 100644 (file)
@@ -55,13 +55,13 @@ import eu.etaxonomy.cdm.remote.editor.UUIDPropertyEditor;
  * @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
index 81bf9fc11e49086fb5bd3e8d255db828930d7e7b..a576ef4cf8569d5b2b9002f41d7d5191e48ee3be 100644 (file)
@@ -41,7 +41,7 @@ import eu.etaxonomy.cdm.remote.editor.UUIDPropertyEditor;
  */\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
index 09a994074bd316543b3d0a14e0a41e851974cd4c..fa09eb6c0dcf93077191b3071d572949ce71b1d7 100644 (file)
@@ -23,13 +23,9 @@ import org.springframework.stereotype.Controller;
 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
@@ -45,11 +41,18 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 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
@@ -70,7 +73,9 @@ public class OccurrenceController extends BaseController<SpecimenOrObservationBa
         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
index 7c3ea4932f28cb5a2e235aef5d6421d0cdbede4c..276901c6a927779f50b78db49c2984d521dcc6c0 100644 (file)
@@ -51,7 +51,9 @@ public class OccurrencePortalController extends BaseController<SpecimenOrObserva
             "derivedFrom.gatheringEvent.exactLocation.$",\r
             "specimenTypeDesignations.*",\r
             "specimenTypeDesignations.citation.*",\r
-            "specimenTypeDesignations.homotypicalGroup.*"\r
+            "specimenTypeDesignations.homotypicalGroup.*",\r
+            "sequences.$",\r
+            "sequences.annotations",\r
     });\r
 \r
 \r
index 6251095e31ee0a3a1397ac31fa580d3f451f68e5..34fe5b335b542a2db826b07973eb70fdfa28e870 100644 (file)
@@ -10,8 +10,6 @@
 \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
@@ -26,8 +24,6 @@ import java.util.UUID;
 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
@@ -40,47 +36,40 @@ import org.springframework.web.bind.annotation.RequestMethod;
 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
@@ -412,7 +401,7 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             config.setClassification(classification);\r
         }\r
 \r
-        return (Pager<IdentifiableEntity>) service.findTaxaAndNames(config);\r
+        return service.findTaxaAndNames(config);\r
     }\r
 \r
     /**\r
@@ -547,7 +536,7 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             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
@@ -564,7 +553,7 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
                     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
@@ -922,6 +911,9 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             @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
@@ -933,7 +925,9 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
 \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
@@ -946,6 +940,9 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
                 @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
@@ -957,7 +954,9 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
 \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
@@ -973,22 +972,38 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             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
@@ -997,7 +1012,6 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
         return filteredMedia;\r
     }\r
 \r
-\r
 // ---------------------- code snippet preserved for possible later use --------------------\r
 //     @RequestMapping(\r
 //                     value = {"/*/portal/taxon/*/descriptions"},\r
diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/dto/PolytomousKeyNodeDtoController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/dto/PolytomousKeyNodeDtoController.java
new file mode 100644 (file)
index 0000000..6f319ae
--- /dev/null
@@ -0,0 +1,346 @@
+// $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
index d8976c3f648d350e4e32e35bbc90caa65198c0f0..21e0e967fb767ae1173ade778538328e79700ec2 100644 (file)
@@ -9,6 +9,8 @@
 */\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
@@ -16,4 +18,22 @@ package eu.etaxonomy.cdm.remote.dto.polytomouskey;
  */\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
similarity index 56%
rename from cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/LinkedPolytomousKeyNodeEntryDto.java
rename to cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/LinkedPolytomousKeyNodeRowDto.java
index b2c3c0b8115ed0c7a3e430d8753441e0b96edd55..d8142f0fd2f63384b8882ef0dd39e89ca47c8c0d 100644 (file)
 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
@@ -84,27 +90,27 @@ public class LinkedPolytomousKeyNodeEntryDto {
                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
diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/PolytomousKeyNodeLinkDto.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/PolytomousKeyNodeLinkDto.java
new file mode 100644 (file)
index 0000000..4f2dac8
--- /dev/null
@@ -0,0 +1,47 @@
+// $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
diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/TaxonLinkDto.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/dto/polytomouskey/TaxonLinkDto.java
new file mode 100644 (file)
index 0000000..7e70b4a
--- /dev/null
@@ -0,0 +1,47 @@
+// $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
index 6935bd83967fd637caca750b479edb1480b26b30..1710a571811ffdcac92ec5787dabba3c4ca4591e 100644 (file)
@@ -15,6 +15,7 @@ import net.sf.json.JSONObject;
 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
@@ -37,8 +38,8 @@ public class LuceneDocumentBeanProcessor extends AbstractBeanProcessor<Document>
     @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());
         }
index d5dd612169cc361f7cacfdac6474fa452530ae31..05e7bdd425b94b225137c8ccace35f0658e07afa 100644 (file)
              <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
index bd5359cd11f064f905d72a628429d2c74351fb88..d93e922fa1c00571371284e503aecc03fe8e04ed 100644 (file)
@@ -26,8 +26,8 @@ import org.dozer.Mapper;
 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;
@@ -83,13 +83,12 @@ public class AssemblerTest extends UnitilsJUnit4 {
     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();
@@ -106,14 +105,14 @@ public class AssemblerTest extends UnitilsJUnit4 {
 
         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"));
@@ -153,7 +152,7 @@ public class AssemblerTest extends UnitilsJUnit4 {
 
         // ------------------------------------------------------
 
-        book = refFactory.newBook();
+        book = ReferenceFactory.newBook();
         book.setTitle("Book.title");
         book.setAuthorTeam(authorTeam);
         book.setCreated(new DateTime(2004, 12, 25, 12, 0, 0, 0));
@@ -169,7 +168,7 @@ public class AssemblerTest extends UnitilsJUnit4 {
         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");
@@ -393,12 +392,6 @@ public class AssemblerTest extends UnitilsJUnit4 {
             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;
@@ -429,17 +422,51 @@ public class AssemblerTest extends UnitilsJUnit4 {
 
         }
 
-        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
+                       
+               }
+
     }
 
 
index 46c614fba018c2937bd2143fc4a1f18f95ea3e24..b33944374922d4c2600b03aa1115f388d47db230 100644 (file)
@@ -1,6 +1,5 @@
 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
@@ -9,6 +8,7 @@ import java.util.List;
 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
@@ -23,28 +23,26 @@ import org.unitils.UnitilsJUnit4;
 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
index f01f577645eae1f70cde6b8c46fda2a721147943..c200bb277f0d9a136f6bd21da9b70671b11104f4 100644 (file)
@@ -12,15 +12,10 @@ import java.util.HashSet;
 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
index f75983e48eee6bd32ede2919db8c128ff99ae93d..b356710d11ccd303ccdf66c2572219c2bb1941f6 100644 (file)
@@ -33,7 +33,7 @@
             <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>
index f44abd73e384ad7363a5b366b1643026bd7c441a..95ff582322ee7c1e961cfca50669dc560dde33ef 100644 (file)
        <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>
index 24a00db272053be6e7cfc944722da91db9f9dea2..b30471e9efb81d34dc437cc42d967bab6271a2cf 100644 (file)
@@ -12,9 +12,7 @@
 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
@@ -28,7 +26,6 @@ import org.springframework.core.io.ClassPathResource;
 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
@@ -68,13 +65,8 @@ import eu.etaxonomy.cdm.database.DataSourceNotFoundException;
 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
index f6a58a344418d33902e56bbd10ba0bc219a5bfce..ab750f3da2dfad496d4b1d6bdae31d993c61556f 100644 (file)
@@ -18,7 +18,7 @@ import org.springframework.beans.BeansException;
 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
@@ -408,7 +408,7 @@ public class CdmApplicationDefaultConfiguration implements ICdmApplicationConfig
             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
index 833e2dcf657f5ded5e6a31be8b907ec0d76aca66..ec5053845cb56198f4410e93ad910e94c1735f16 100644 (file)
@@ -84,6 +84,7 @@ public interface ITaxonService extends IIdentifiableEntityService<TaxonBase>{
      * @return The List<Taxon> of root taxa.
      * @deprecated obsolete when using classification
      */
+    @Deprecated
     public List<Taxon> getRootTaxa(Reference sec, CdmFetch cdmFetch, boolean onlyWithChildren);
 
     /**
@@ -101,6 +102,7 @@ public interface ITaxonService extends IIdentifiableEntityService<TaxonBase>{
      * @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);
 
     /**
@@ -117,6 +119,7 @@ public interface ITaxonService extends IIdentifiableEntityService<TaxonBase>{
      * @return
      * @deprecated use TermService#getVocabulary(VocabularyType) instead
      */
+    @Deprecated
     public OrderedTermVocabulary<TaxonRelationshipType> getTaxonRelationshipTypeVocabulary();
 
     /**
@@ -430,6 +433,7 @@ public interface ITaxonService extends IIdentifiableEntityService<TaxonBase>{
      * @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);
 
     /**
@@ -521,21 +525,54 @@ public interface ITaxonService extends IIdentifiableEntityService<TaxonBase>{
      * @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);
 
index 72afcf728d7cba0ba4dd7e8446d8f57ed9d96446..69619f100b24647c36ee4f2431e1757aff9b6000 100644 (file)
@@ -242,11 +242,10 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
                        }
                        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());
@@ -258,6 +257,11 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
                monitor.done();
        }
 
+       /**
+        * @param cacheStrategy
+        * @param entitiesToUpdate
+        * @param entity
+        */
        /**
         * @param cacheStrategy
         * @param entitiesToUpdate
@@ -266,15 +270,19 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
        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();
@@ -284,34 +292,48 @@ public abstract class IdentifiableServiceBase<T extends IdentifiableEntity,DAO e
                        }
                }
                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);
                        }
                }
index 0c6f0181668dedaa1a681f04e9a2f857c2e170fa..8cf63b6a4eed7c1f3f0178b14d088d8964d6296a 100644 (file)
@@ -310,6 +310,7 @@ public class NameServiceImpl extends IdentifiableServiceBase<TaxonNameBase,ITaxo
 \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
@@ -612,7 +613,7 @@ public class NameServiceImpl extends IdentifiableServiceBase<TaxonNameBase,ITaxo
     @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
index 41f1defae9bac22cbc87d5a26d58eeafae652e39..ba51482187991f4d9febdb40882c772814b0c1f2 100644 (file)
@@ -17,7 +17,6 @@ import java.util.List;
 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
@@ -27,22 +26,17 @@ import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 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
@@ -50,10 +44,8 @@ import eu.etaxonomy.cdm.model.occurrence.FieldObservation;
 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
@@ -108,6 +100,7 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
      * 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
@@ -117,6 +110,7 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
      * 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
@@ -126,11 +120,13 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
         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
@@ -142,6 +138,7 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
         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
@@ -153,6 +150,7 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
         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
@@ -167,6 +165,7 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
     /* (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
@@ -258,26 +257,25 @@ public class OccurrenceServiceImpl extends IdentifiableServiceBase<SpecimenOrObs
         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
index 5b6a455cc405959309d426e92fddf87def8fe930..53cb34df1ca48671768fd2708d722d0f829b017f 100644 (file)
@@ -142,7 +142,11 @@ public class TaxonNodeServiceImpl extends AnnotatableServiceBase<TaxonNode, ITax
                        // 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()) 
@@ -153,8 +157,7 @@ public class TaxonNodeServiceImpl extends AnnotatableServiceBase<TaxonNode, ITax
                        newAcceptedTaxon.addDescription(description);
                }
                                
-               oldTaxonNode.delete();
-               
+               oldTaxonNode.delete();          
                return synonmyRelationship.getSynonym();
        }
 }
index 2220ac4d3cb76a8678b59eb59d152a3c87a82054..189b505d8bb23c78b5cba1c3f1d5273d7bf16c59 100644 (file)
@@ -19,7 +19,6 @@ import java.util.Map;
 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
@@ -27,8 +26,6 @@ import org.apache.lucene.search.BooleanClause.Occur;
 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
@@ -64,20 +61,26 @@ import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;
 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
@@ -92,6 +95,7 @@ import eu.etaxonomy.cdm.persistence.dao.AbstractBeanInitializer;
 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
@@ -132,6 +136,9 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     @Autowired\r
     private IOrderedTermVocabularyDao orderedVocabularyDao;\r
 \r
+    @Autowired\r
+    private IOccurrenceDao occurrenceDao;\r
+\r
     @Autowired\r
     private AbstractBeanInitializer beanInitializer;\r
 \r
@@ -146,6 +153,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
      * 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
@@ -156,6 +164,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
      *  (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
@@ -166,6 +175,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
      *  (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
@@ -176,6 +186,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
      *  (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
@@ -187,6 +198,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -194,6 +206,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -202,6 +215,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
      * 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
@@ -218,6 +232,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
      * (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
@@ -284,6 +299,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     }\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
@@ -382,6 +398,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         super.updateTitleCacheImpl(clazz, stepSize, cacheStrategy, monitor);\r
     }\r
 \r
+    @Override\r
     @Autowired\r
     protected void setDao(ITaxonDao dao) {\r
         this.dao = dao;\r
@@ -390,6 +407,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -404,6 +422,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -418,6 +437,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -431,6 +451,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -444,6 +465,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -457,6 +479,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -476,6 +499,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
      * @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
@@ -545,6 +569,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -559,6 +584,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -573,6 +599,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -581,6 +608,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -591,6 +619,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         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
@@ -615,6 +644,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -707,6 +737,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -728,50 +759,118 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -779,6 +878,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -786,6 +886,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -796,6 +897,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -936,7 +1038,9 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
                 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
@@ -946,6 +1050,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -954,6 +1059,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -961,6 +1067,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -968,6 +1075,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
 /* (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
@@ -976,6 +1084,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     /* (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
@@ -1266,7 +1375,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         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
@@ -1319,6 +1428,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
     }\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
@@ -1365,7 +1475,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         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
@@ -1455,6 +1565,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         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
@@ -1462,8 +1573,8 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         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
@@ -1484,9 +1595,9 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
 \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
@@ -1517,8 +1628,8 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
 \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
@@ -1918,7 +2029,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
             TaxonNameBase parentName, TaxonBase syn) {\r
 \r
         Synonym inferredEpithet;\r
-        TaxonNameBase synName;\r
+        TaxonNameBase<?,?> synName;\r
         ZoologicalName inferredSynName;\r
         HibernateProxyHelper.deproxy(syn);\r
 \r
@@ -1926,7 +2037,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         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
@@ -1989,8 +2100,8 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         }*/\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
@@ -2071,6 +2182,7 @@ public class TaxonServiceImpl extends IdentifiableServiceBase<TaxonBase,ITaxonDa
         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
index ccbd669b04f46b547170db4753007af1372d1490..fcea967edc7d057b778dcedd455f5d0a6b7542c7 100644 (file)
@@ -30,6 +30,8 @@ import eu.etaxonomy.cdm.api.service.ITermService;
 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;
@@ -120,7 +122,7 @@ public class TransmissionEngineOccurrence {
 
     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>>();
 
 
     /**
@@ -465,7 +467,7 @@ public class TransmissionEngineOccurrence {
     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);
     }
 
     /**
@@ -473,7 +475,8 @@ public class TransmissionEngineOccurrence {
      * 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) {
@@ -482,14 +485,17 @@ public class TransmissionEngineOccurrence {
 
         // 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;
             }
@@ -499,7 +505,7 @@ public class TransmissionEngineOccurrence {
         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;
     }
 
index f26eb5a12d30aa825cbb0bb5e2884a0ebe0a31d4..fe57af096e8cf7b510b84c0a11095e76952cc547 100644 (file)
@@ -13,6 +13,7 @@ package eu.etaxonomy.cdm.api.service.lsid.impl;
 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;
@@ -30,7 +31,8 @@ import eu.etaxonomy.cdm.persistence.dao.common.IIdentifiableDao;
 @Service("lsidDataService")
 @Transactional
 public class LsidDataServiceImpl implements LSIDDataService {
-       
+       private static final Logger logger = Logger.getLogger(LsidDataServiceImpl.class);
+
        private LSIDRegistry lsidRegistry;
        
        @Autowired
@@ -39,7 +41,7 @@ public class LsidDataServiceImpl implements LSIDDataService {
        }
 
        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");
                }
@@ -62,7 +64,7 @@ public class LsidDataServiceImpl implements LSIDDataService {
 
        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");
                }
@@ -85,8 +87,8 @@ public class LsidDataServiceImpl implements LSIDDataService {
        }
 
        public void initService(LSIDServiceConfig arg0) throws LSIDServerException {
-               // TODO Auto-generated method stub
-
+               //TODO
+               logger.warn("initService(LSIDServiceConfig) not yet implemented");
        }
 
 }
index 2fe4b085970b7576546b1f679a5a3170ab6e1cdb..736525397f909c12330213553d69b331c48d9fc5 100644 (file)
@@ -19,7 +19,7 @@ import org.hibernate.Transaction;
 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;
index 5a5e84c6f3612821a73c5c3692390653a8c88560..a386f3435de3a365f428a5757babcce7836b3ba9 100644 (file)
@@ -19,15 +19,12 @@ import org.apache.log4j.Logger;
 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;
 
@@ -71,18 +68,22 @@ public class LuceneMultiSearch extends LuceneSearch {
      * @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);
index 46df8b76310a7a48307fcf1f9e1012d39f6498cd..fbbbf4d0a6c90a7bc2ca0ff561909bd9b9fd7fa8 100644 (file)
@@ -12,8 +12,6 @@ package eu.etaxonomy.cdm.api.service.search;
 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;
@@ -25,22 +23,20 @@ import org.apache.lucene.search.BooleanQuery;
 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;
@@ -48,6 +44,7 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 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;
 
 /**
  *
@@ -162,7 +159,7 @@ public class LuceneSearch {
     /**
      * @return
      */
-    public Searcher getSearcher() {
+    public IndexSearcher getSearcher() {
         if(searcher == null){
             searcher = new IndexSearcher(getIndexReader());
             searcher.setDefaultFieldSortScoring(true, true);
@@ -176,11 +173,14 @@ public class LuceneSearch {
     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;
     }
 
@@ -189,7 +189,8 @@ public class LuceneSearch {
      */
     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;
     }
 
@@ -271,9 +272,9 @@ public class LuceneSearch {
 
         // 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;
@@ -282,11 +283,11 @@ public class LuceneSearch {
         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;
@@ -304,7 +305,7 @@ public class LuceneSearch {
             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);
@@ -358,18 +359,18 @@ public class LuceneSearch {
      *
      */
     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,
@@ -378,7 +379,7 @@ public class LuceneSearch {
             } else {
                 newTopGroups = topGroups;
             }
-            this.topGroups = new TopGroups(newTopGroups, totalGroupCount);
+            this.topGroups = new TopGroups<String>(newTopGroups, totalGroupCount);
         }
 
     }
index 520072c2ebda3623e522c30ae47f8aa3e4e62f38..df1301e177ce5207cdfb2fc9c956114c600e8f0c 100644 (file)
@@ -14,7 +14,7 @@ import java.util.HashMap;
 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;
 
@@ -88,7 +88,7 @@ public class SearchResult<T extends 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);
     }
 
index b62a6009b139dea55d66bf7c85c109da573ea8bd..05b328aac761171da9097c64dfadc3be96693914 100644 (file)
@@ -11,8 +11,6 @@ package eu.etaxonomy.cdm.api.service.search;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -27,8 +25,7 @@ import org.apache.lucene.search.ScoreDoc;
 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;
@@ -174,7 +171,7 @@ public class SearchResultBuilder implements ISearchResultBuilder {
      */
     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()){
index 0997760604eb5bd490953594f4f1809e5c1b084c..fd09dc0b04a2bc440646a08ad2f2330d10cc14aa 100644 (file)
@@ -16,7 +16,8 @@
           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
index d9e049f8dbaf6608fd19fdf49a6fef3ba155ef9e..16803e3a4242cd358a91a98b3c17071cf8714cdd 100644 (file)
@@ -9,16 +9,14 @@
 */\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
@@ -79,7 +77,7 @@ public class DerivedUnitFacadeCacheStrategyTest extends CdmIntegrationTest {
        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
index 627cc5c698b88a5f6f8e4a38a8f2fdaab845f6fa..9482aab46d2c2f21073b085793899c260f11da0f 100644 (file)
@@ -9,15 +9,13 @@
 */\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
@@ -79,7 +77,7 @@ public class DerivedUnitFacadeFieldObservationCacheStrategyTest extends CdmInteg
        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
index afc1acf37cd91dcd37c8d8973eaa31c9c3687909..6c8f2340b9895b808fa7979f1cdea30ddd8cf835 100644 (file)
@@ -16,7 +16,7 @@ import java.util.Comparator;
 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;
index 40c90c9012f75f8a908b2d002767635a328076e5..e9902c79a034ecaeeff987f3b0f2ef2a11323fbd 100644 (file)
@@ -14,7 +14,7 @@ import static org.junit.Assert.assertEquals;
 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
@@ -40,6 +40,7 @@ import eu.etaxonomy.cdm.test.integration.CdmIntegrationTest;
  *\r
  */\r
 public class CommonServiceImplTest extends CdmIntegrationTest {\r
+       @SuppressWarnings("unused")\r
        private static final Logger logger = Logger.getLogger(CommonServiceImplTest.class);\r
 \r
        @SpringBeanByType\r
@@ -50,12 +51,12 @@ public class CommonServiceImplTest extends CdmIntegrationTest {
 \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
@@ -77,10 +78,9 @@ public class CommonServiceImplTest extends CdmIntegrationTest {
        @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
@@ -138,7 +138,7 @@ public class CommonServiceImplTest extends CdmIntegrationTest {
 //             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
@@ -152,19 +152,12 @@ public class CommonServiceImplTest extends CdmIntegrationTest {
        }\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
index a66461422cc1266ba05be085f63b80655a68aed5..f91dbdf36d38d4f93e96fef0647e21edf3e33b48 100644 (file)
@@ -16,7 +16,7 @@ import java.util.Map.Entry;
 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
@@ -60,9 +60,9 @@ public class DescriptionServiceImplTest extends CdmIntegrationTest {
     @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
@@ -85,7 +85,7 @@ public class DescriptionServiceImplTest extends CdmIntegrationTest {
         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
index 069405b0d880a0c6b87c91f466ca09790b3816e9..52fd9ad25d146a1af8aa4d0629b9e7f014e322b2 100644 (file)
@@ -11,6 +11,7 @@ package eu.etaxonomy.cdm.api.service;
 \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
@@ -20,6 +21,7 @@ import org.unitils.dbunit.annotation.DataSet;
 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
@@ -29,6 +31,7 @@ import eu.etaxonomy.cdm.test.integration.CdmTransactionalIntegrationTest;
  */\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
@@ -51,22 +54,9 @@ public class IdentifiableServiceBaseTest extends CdmTransactionalIntegrationTest
                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
similarity index 87%
rename from cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentificationKeyGeneratorTest.java
rename to cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/IdentificationKeyGeneratorTTT.java
index 660c95709b9235c3b248603b4786e0797ebc7728..b04fe03be9e554e63336e8eb1dec697841e95e03 100644 (file)
@@ -13,7 +13,7 @@ import org.junit.Test;
  */\r
 \r
 @Ignore\r
-public class IdentificationKeyGeneratorTest {\r
+public class IdentificationKeyGeneratorTTT {\r
 \r
 //*************************** TESTS *********************** /\r
 \r
diff --git a/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/MediaServiceImplTest.java b/cdmlib-services/src/test/java/eu/etaxonomy/cdm/api/service/MediaServiceImplTest.java
deleted file mode 100644 (file)
index 9cad11e..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-
-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{
-       
-}
index 2f410ac1eebbf14b0ab16c9a0a8e22938e87e7e6..e14fb5ddc96f6cdf8e1be3454deb295a394ff9fd 100644 (file)
@@ -39,6 +39,7 @@ import eu.etaxonomy.cdm.api.service.NaturalLanguageGenerator;
 @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
index 3bf6b3f2665f4b565aa1e20f38d5a5dad4285682..9cb72fed00c931adfea08788912868724a06aede 100644 (file)
@@ -24,7 +24,6 @@ import org.unitils.spring.annotation.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
index 12fb5eba73f84d3478bd3792033bf5e6aae733b8..229a313c1360d82db83049befa66ad060edfe839 100644 (file)
 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;
@@ -244,7 +239,7 @@ public class TaxonServiceImplBusinessTest extends CdmIntegrationTest {
                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);
index 5091ed15fe77ffdc74db40e23f5d3214caf01066..89b441034811f7170751e3340d1c345a4140be9d 100644 (file)
@@ -113,33 +113,13 @@ public class TaxonServiceImplTest extends CdmTransactionalIntegrationTest {
      */\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
@@ -160,7 +140,8 @@ public class TaxonServiceImplTest extends CdmTransactionalIntegrationTest {
         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
@@ -333,19 +314,19 @@ public class TaxonServiceImplTest extends CdmTransactionalIntegrationTest {
             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
@@ -781,26 +762,28 @@ public class TaxonServiceImplTest extends CdmTransactionalIntegrationTest {
 \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
index 88b952ffce2c3981a84ae53c673abb3c8bdd98de..e70cd87aebf09a541390e62e3f8fa7582c188ff4 100644 (file)
@@ -124,7 +124,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
     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
@@ -141,7 +141,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
                 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
@@ -202,17 +202,17 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
 \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
@@ -242,7 +242,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
 \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
@@ -485,15 +485,15 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
         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
@@ -552,7 +552,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
         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
@@ -564,26 +564,26 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
         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
@@ -616,7 +616,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
         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
@@ -626,7 +626,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
                 "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
@@ -870,7 +870,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
         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
@@ -905,7 +905,7 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
 \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
@@ -980,19 +980,19 @@ public class TaxonServiceSearchTest extends CdmTransactionalIntegrationTest {
 \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
index a2d1644fcb5a56d27de6e4738b92d9dbbba0331f..0649e9cfbd552e7bc110895cbcfef4ecdee1eda1 100644 (file)
@@ -39,7 +39,7 @@ import eu.etaxonomy.cdm.persistence.query.MatchMode;
 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
index 54d3ca72c0148c37188f4feaf920489f1fae18df..47b6f4204d8925d573adc2b5144cf0845c7d88b7 100644 (file)
@@ -12,18 +12,23 @@ package eu.etaxonomy.cdm.api.service.lsid;
 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
@@ -31,10 +36,14 @@ public class LSIDMetadataServiceTest extends CdmIntegrationTest {
        @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
index 71bf9544c131258d8928263437579848215d7556..c7fa2169b8920201aa85f369ba086a9477a8d55f 100644 (file)
@@ -43,8 +43,7 @@ import eu.etaxonomy.cdm.model.media.Media;
  * @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;
index 673bc17eabc022409a556e1ec85f80f77f70bdbe..29c21d842d0821f5ad3727c38e9fd2568c888778 100644 (file)
@@ -24,6 +24,7 @@ import org.springframework.transaction.TransactionStatus;
 \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
@@ -53,12 +54,15 @@ public class Datasource {
        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
@@ -333,7 +337,7 @@ public class Datasource {
        \r
        private void test(){\r
                System.out.println("Start Datasource");\r
-               //testNewConfigControler();\r
+               testNewConfigControler();\r
        //testDatabaseChange();\r
                \r
                //testSqlServer();\r
@@ -343,7 +347,7 @@ public class Datasource {
                //testLocalHsql();\r
                //testLocalH2();\r
                //testWritableResourceDirectory();\r
-               testH2();\r
+//             testH2();\r
                System.out.println("\nEnd Datasource");\r
        }\r
        \r
index 0af9eb38d4965f4a6c7b2f69f77dd35f5873ef9c..29f94929f3fb037c855f342d56ca2ed60df2f08d 100644 (file)
@@ -37,8 +37,7 @@ import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
  */
 @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;
 
index 45ff7b896ce3fd98adf2d2d2be92d93dffd85627..cd8eb841b96ea1f92286155c226ed0a260590f31 100644 (file)
@@ -17,7 +17,7 @@ import java.util.List;
 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
@@ -64,8 +64,9 @@ import eu.etaxonomy.cdm.model.taxon.Taxon;
  */\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
@@ -105,7 +106,7 @@ public class TestDatabase {
                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
@@ -149,7 +150,7 @@ public class TestDatabase {
                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
@@ -222,7 +223,7 @@ public class TestDatabase {
                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
@@ -249,7 +250,7 @@ public class TestDatabase {
                //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
@@ -349,7 +350,7 @@ public class TestDatabase {
                // 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
index 459d672babf1710b058614395735df9184f18754..72b35dc03fd420e08e7efdc23656db6c45ae533e 100644 (file)
@@ -23,7 +23,7 @@ import javax.validation.Validator;
 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
index 5c38e41172c3d67772d7de4a1d7712c76d8e55f9..149dba57520b30e2bf5507a92a6f05e27fb3ba2c 100644 (file)
@@ -11,7 +11,7 @@
 \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
index dded90849ed87a82b8d34ec13944204c05f52b65..f2bfe8aaa783f78b04b488ef18db7e3f389293ac 100644 (file)
@@ -8,11 +8,11 @@
   <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
index e837308a11ec0bc208379e5789f044035188fec0..3420e230b36124c5942ff227b8b2e7cd8d929f57 100644 (file)
     <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"/>
index 6ac0f20a075aeed66b73bf7a807b630a7d4d5939..7e58f9116690c669af9ba114e0918a24ec97e1cc 100644 (file)
   <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
index 690dbce332c81ad7acad7f97d52979fafce1ed01..cfae2562be4a63499822bc223bb7e2fe3d210984 100644 (file)
@@ -8,7 +8,7 @@
   <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
index cb67e78127676f759cc01d9ceca0dce60904bc9c..90c617cccc721c77c151cdd72b52493d47865cf1 100644 (file)
   <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
index 5af8ee643244a73a09d5123e2910717b4513ebc7..ff8d4d2f792aec9804f4b6516b6666aa962f58ab 100644 (file)
         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
index 300806459c48f3e7ab6d3084758e40337847b22a..b732339a824782f37381a67a5f9cb3306c22e61b 100644 (file)
        <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
index 22fadc3c9ae98707c4da364b3ad355df1c7c34c4..dfedc8e300cc1f201f6eb27a80118d99f1abca62 100644 (file)
@@ -96,8 +96,8 @@ log4j.logger.org.hibernate.jdbc=info
 
 ### 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 ###
diff --git a/pom.xml b/pom.xml
index 8fb18f4b865e603ad8de46408c4f7a21225880ca..162ead6d56e74ef95190bbfd31ff1dd0b1adba9f 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
                <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>