<classpathentry exported="true" kind="lib" path="lib/swagger-annotations-1.3.5.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-commons-3.8.0-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-ext-3.8.0-SNAPSHOT.jar"/>
- <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.8.0-SNAPSHOT.jar"/>
+ <classpathentry exported="true" kind="lib" path="lib/cdmlib-io-3.8.0-SNAPSHOT.jar" sourcepath="/data/.m2/repository/eu/etaxonomy/cdmlib-io/3.8.0-SNAPSHOT/cdmlib-io-3.8.0-SNAPSHOT-sources.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-model-3.8.0-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-persistence-3.8.0-SNAPSHOT.jar"/>
<classpathentry exported="true" kind="lib" path="lib/cdmlib-print-3.8.0-SNAPSHOT.jar"/>
eu.etaxonomy.cdm.io.sdd.ikeyplus,
eu.etaxonomy.cdm.io.sdd.in,
eu.etaxonomy.cdm.io.sdd.out,
+ eu.etaxonomy.cdm.io.service,
eu.etaxonomy.cdm.io.specimen,
eu.etaxonomy.cdm.io.specimen.abcd206.in,
eu.etaxonomy.cdm.io.specimen.excel.in,
import eu.etaxonomy.cdm.api.service.ITestService;
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
import eu.etaxonomy.cdm.common.monitor.NullProgressMonitor;
+import eu.etaxonomy.cdm.io.service.IIOService;
import eu.etaxonomy.taxeditor.remoting.cache.CdmRemoteCacheManager;
import eu.etaxonomy.taxeditor.remoting.source.ICdmRemoteSource;
import eu.etaxonomy.taxeditor.service.ICachedCommonService;
return ((CdmApplicationRemoteConfiguration)configuration).getCdmEntitySessionManager();
}
+ public IIOService getIOService(){
+ return (IIOService) getBean("ioService");
+ }
public ITestService getTestService(){
return (ITestService) getBean("testService");
import eu.etaxonomy.cdm.api.service.ICommonService;
import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.ITestService;
+import eu.etaxonomy.cdm.io.service.IIOService;
import eu.etaxonomy.taxeditor.service.ICachedCommonService;
/**
}
+ public static IIOService getIOService() {
+ ICdmApplicationConfiguration configuration = getCurrentAppConfig();
+
+ return ((CdmApplicationRemoteController)configuration).getIOService();
+
+ }
+
+
public static ITestService getTestService() {
ICdmApplicationConfiguration configuration = getCurrentAppConfig();
}
public static CdmServiceCacher getCdmServiceCacher() {
-
return cdmServiceCacher;
}
+
}
return null;
}
- public ICdmRemoteSource getCdmRemoteSource(CdmInstanceInfo instance, int port) {
+ public CdmRemoteSource getCdmRemoteSource(CdmInstanceInfo instance, int port) {
if(instance != null) {
return CdmRemoteSource.NewInstance(name,
server,
return instances;
}
- public static ICdmRemoteSource getDevServerRemoteSource() {
+ public static CdmRemoteSource getDevServerRemoteSource() {
String value=System.getProperty("cdm.server.dev.activate");
boolean available = false;
CdmInstanceInfo devInstance = null;
*/
@Override
public CdmBase find(Class<? extends CdmBase> clazz, int id) {
-// if(cacheEnabled) {
- CdmBase cdmEntity = CdmApplicationState.getCurrentAppConfig().getCommonService().find(clazz, id, getPropertyPaths(clazz));
- if(cdmEntity == null) {
- throw new NullPointerException("CDM Entity of type " + clazz.getName() + " with id " + id + " is null.");
- }
- return cdmEntity;
- //return cdmEntitySessionManager.load(cdmEntity, false);
-// } else {
-// return CdmBase.deproxy(commonService.find(clazz, id),clazz);
-// }
+ CdmBase cdmEntity = CdmApplicationState.getCurrentAppConfig().getCommonService().find(clazz, id, getPropertyPaths(clazz));
+ if(cdmEntity == null) {
+ throw new NullPointerException("CDM Entity of type " + clazz.getName() + " with id " + id + " is null.");
+ }
+ return cdmEntity;
+
}
try {
String role = getRole();
String fieldName = role.substring(role.lastIndexOf(".") + 1);
- log.info("--> Remote Lazy Initializing Collection " + getRole() + " , key : " + getKey() + " , field : " + fieldName);
+ log.info("--> Remote Lazy Initializing Collection " + getRole() + " , owner : " + getOwner().getClass() + "/" + getKey() + " , field : " + fieldName);
Object owner = getOwner();
CdmBase cdmBase;
if(owner instanceof CdmBase) {
</bean>\r
</property>\r
</bean>\r
+ \r
+ <bean id="ioService" lazy-init="true"\r
+ class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
+ <property name="serviceUrl">\r
+ <value>http://${remoteServer}:${remotePort}/${remoteContext}/remoting/io.service\r
+ </value>\r
+ </property>\r
+ <property name="serviceInterface">\r
+ <value>eu.etaxonomy.cdm.io.service.IIOService\r
+ </value>\r
+ </property>\r
+ <property name="httpInvokerRequestExecutor">\r
+ <bean class="eu.etaxonomy.taxeditor.service.CdmAuthenticatedHttpInvokerRequestExecutor">\r
+ <property name="readTimeout" value="0" />\r
+ </bean>\r
+ </property>\r
+ </bean>\r
\r
<bean id="testService" lazy-init="true"\r
class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">\r
\r
<bean id="cachedCommonService" \r
class="eu.etaxonomy.taxeditor.service.CachedCommonServiceImpl" />\r
+ \r
\r
+ <bean id="defaultExport"\r
+ class="eu.etaxonomy.cdm.io.common.CdmApplicationAwareDefaultExport" />\r
+ \r
+ <bean id="jaxbExport"\r
+ class="eu.etaxonomy.cdm.io.jaxb.JaxbExport" />\r
+ \r
<bean id="accessDecisionManager" \r
class="eu.etaxonomy.cdm.persistence.hibernate.permission.UnanimousBasedUnrevokable" >\r
\r
// $Id$
/**
* 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.
*/
package eu.etaxonomy.taxeditor.io;
+import java.io.File;
+
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.ui.progress.IProgressConstants;
* <p>
* Abstract AbstractIOHandler class.
* </p>
- *
+ *
* @author n.hoffmann
* @created Sep 11, 2009
* @version 1.0
* <p>
* Constructor for AbstractIOHandler.
* </p>
- *
+ *
* @param applicationController
* a
* {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
/**
* Starts the IO process
- *
+ *
* @param configurator
* a CONFIGURATOR object.
*/
* <p>
* createIOJob
* </p>
- *
+ *
* @param configurator
* a CONFIGURATOR object.
* @return a {@link org.eclipse.core.runtime.jobs.Job} object.
*/
protected abstract Job createIOJob(CONFIGURATOR configurator);
+
+ public abstract Job createIOServiceJob(CONFIGURATOR configurator, File ioFile);
}
package eu.etaxonomy.taxeditor.io;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.util.List;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPart;
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
+import eu.etaxonomy.cdm.io.common.ExportResult;
import eu.etaxonomy.cdm.io.common.IExportConfigurator;
import eu.etaxonomy.cdm.io.common.IIoConfigurator;
import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
+import eu.etaxonomy.cdm.io.service.IIOService;
import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.store.StoreUtil;
+import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
/**
* <p>
return job;
}
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.io.AbstractIOManager#createIOServiceJob(eu.etaxonomy.cdm.io.common.IIoConfigurator)
+ */
+ @Override
+ public Job createIOServiceJob(final IExportConfigurator configurator, final File exportFile) {
+ Assert.isNotNull(configurator, "Configuration may not be null");
+
+ final Display display = Display.getCurrent();
+
+ Job job = new Job("Export: " + configurator.getClass().getSimpleName()) {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+ monitor.beginTask("Exporting database. This will take some time.", IProgressMonitor.UNKNOWN);
+ try {
+ IIOService ioService = CdmApplicationState.getIOService();
+
+ ExportResult result = ioService.export(configurator);
+ List<byte[]> dataList = result.getExportData();
+ byte[] exportData = dataList.get(0);
+
+ FileOutputStream stream = new FileOutputStream(exportFile);
+ try {
+ stream.write(exportData);
+ } finally {
+ stream.close();
+ }
+
+ } catch (Exception e) {
+ MessagingUtils.errorDialog("Error exporting data",
+ this,
+ e.getMessage(),
+ TaxeditorStorePlugin.PLUGIN_ID,
+ e,
+ true);
+ }
+ return Status.OK_STATUS;
+ }
+ };
+ return job;
+ }
/**
* @param jaxb
* @return
return (SDDExportConfigurator) getConfigurator(TYPE.Sdd);
}
+
+
}
// $Id$
/**
* 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.
*/
package eu.etaxonomy.taxeditor.io;
+import java.io.File;
+
import org.eclipse.core.runtime.Assert;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.swt.widgets.Display;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
import eu.etaxonomy.cdm.io.common.IImportConfigurator;
* <p>
* ImportHandler class.
* </p>
- *
+ *
* @author n.hoffmann
* @created Sep 11, 2009
* @version 1.0
* <p>
* NewInstance
* </p>
- *
+ *
* @param applicationConfiguration
* a
* {@link eu.etaxonomy.cdm.api.application.CdmApplicationController}
/**
* Use when importing data into the current application context
- *
+ *
* @param configurator
* a {@link eu.etaxonomy.cdm.io.common.IImportConfigurator}
* object.
monitor.worked(5);
CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<IImportConfigurator>();
- importer.setCdmAppController((ICdmApplicationConfiguration) applicationConfiguration);
+ importer.setCdmAppController(applicationConfiguration);
monitor.worked(5);
try {
}
+
+ /* (non-Javadoc)
+ * @see eu.etaxonomy.taxeditor.io.AbstractIOManager#createIOServiceJob(eu.etaxonomy.cdm.io.common.IIoConfigurator)
+ */
+ @Override
+ public Job createIOServiceJob(IImportConfigurator configurator, File importFile) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
private IImportConfigurator getConfigurator(TYPE type) {
Assert.isNotNull(type, "Type should not be null");
* <p>
* JaxbConfigurator
* </p>
- *
+ *
* @return a {@link eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator} object.
*/
public final JaxbImportConfigurator JaxbConfigurator() {
* <p>
* TcsConfigurator
* </p>
- *
+ *
* @return a {@link eu.etaxonomy.cdm.io.tcsxml.in.TcsXmlImportConfigurator}
* object.
*/
* <p>
* EndnoteConfigurator
* </p>
- *
+ *
* @return a
* {@link eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator}
* object.
* <p>
* NormalExplicitConfigurator
* </p>
- *
+ *
* @return a
* {@link eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator}
* object.
* <p>
* SddConfigurator
* </p>
- *
+ *
* @return a {@link eu.etaxonomy.cdm.io.sdd.in.SDDImportConfigurator}
* object.
*/
* <p>
* AbcdConfigurator
* </p>
- *
+ *
* @return a
* {@link eu.etaxonomy.cdm.io.specimen.abcd206.in.Abcd206ImportConfigurator}
* object.
return (SpecimenCdmExcelImportConfigurator) getConfigurator(TYPE.SpecimenCdmExcel);
}
+
}
import java.util.List;
import java.util.UUID;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.progress.IProgressConstants;
import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;
import eu.etaxonomy.cdm.model.taxon.Classification;
configurator.setLastChange(true);
}
}
- configurator.setDestination(new File(urlString));
-
- CdmStore.getExportManager().run(configurator);
-
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ // create job
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));
+ // configure the job
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
+ // schedule job
+ job.schedule();
+ } else {
+
+ configurator.setDestination(new File(urlString));
+ CdmStore.getExportManager().run(configurator);
+ }
return true;
}
\r
import java.io.File;\r
\r
+import org.eclipse.core.runtime.jobs.Job;\r
import org.eclipse.jface.viewers.IStructuredSelection;\r
import org.eclipse.swt.widgets.Combo;\r
import org.eclipse.ui.IWorkbench;\r
+import org.eclipse.ui.progress.IProgressConstants;\r
\r
import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
*/\r
@Override\r
public boolean performFinish() {\r
- String urlString = page.getFolderText() + File.separator\r
- + page.getExportFileName();\r
-\r
- final Combo combo = page.getCombo();\r
- \r
- configurator.setDestination(new File(urlString));\r
-\r
- CdmStore.getExportManager().run(configurator);\r
-\r
+ String urlString = page.getFolderText() + File.separator\r
+ + page.getExportFileName();\r
+\r
+ final Combo combo = page.getCombo();\r
+\r
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
+ // create job\r
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
+ // configure the job\r
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
+ job.setUser(true);\r
+ // schedule job\r
+ job.schedule();\r
+ } else {\r
+ configurator.setDestination(new File(urlString));\r
+ CdmStore.getExportManager().run(configurator);\r
+ }\r
return true;\r
}\r
\r
import java.util.List;\r
import java.util.UUID;\r
\r
+import org.eclipse.core.runtime.jobs.Job;\r
import org.eclipse.jface.viewers.IStructuredSelection;\r
import org.eclipse.swt.widgets.Combo;\r
import org.eclipse.ui.IWorkbench;\r
+import org.eclipse.ui.progress.IProgressConstants;\r
\r
import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;\r
import eu.etaxonomy.cdm.model.taxon.Classification;\r
import eu.etaxonomy.taxeditor.store.CdmStore;\r
\r
public class CsvPrintExportWizard extends CsvNameExportWizard{\r
- \r
- \r
+\r
+\r
private final String description = "Export the contents of the currently selected database into Semicolon Separated Value format.";\r
@Override\r
public void init(IWorkbench workbench, IStructuredSelection selection) {\r
\r
@Override\r
public CsvNameExportConfigurator getConfigurator() {\r
- \r
+\r
return configurator;\r
}\r
\r
- \r
+\r
\r
/*\r
* (non-Javadoc)\r
set.add(c.getUuid());\r
}\r
}\r
- \r
+\r
configurator.setHasHeaderLines(true);\r
- \r
+\r
}\r
- } else{ \r
+ } else{\r
configurator.setClassificationUUID(listClassifications.get(0).getUuid());\r
}\r
- configurator.setDestination(new File(urlString));\r
-\r
- CdmStore.getExportManager().run(configurator);\r
\r
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
+ // create job\r
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, new File(urlString));\r
+ // configure the job\r
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);\r
+ job.setUser(true);\r
+ // schedule job\r
+ job.schedule();\r
+ } else {\r
+ configurator.setDestination(new File(urlString));\r
+ CdmStore.getExportManager().run(configurator);\r
+ }\r
return true;\r
}\r
\r
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import java.io.File;
import java.net.URI;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.progress.IProgressConstants;
import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
import eu.etaxonomy.taxeditor.store.CdmStore;
* @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
*/
/** {@inheritDoc} */
- public void init(IWorkbench workbench, IStructuredSelection selection) {
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
this.setWindowTitle("JAXB Export");
this.configurator = CdmStore.getExportManager().JaxbConfigurator();
}
-
+
/* (non-Javadoc)
* @see org.eclipse.jface.wizard.Wizard#performFinish()
*/
@Override
public boolean performFinish() {
boolean performFinish = false;
- URI urlString;
- File savePath = new File(page.getFolderText() + File.separator + page.getExportFileName());
- urlString = savePath.toURI();
- //orig: urlString = new URI(page.getFolderText() + File.separator + page.getExportFileName());
+
+ File exportFile = new File(page.getFolderText() + File.separator + page.getExportFileName());
+ URI urlString = exportFile.toURI();
configurator.setDestination(urlString);
- CdmStore.getExportManager().run(configurator);
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ // create job
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, exportFile);
+ // configure the job
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
+ // schedule job
+ job.schedule();
+ } else {
+ CdmStore.getExportManager().run(configurator);
+ }
performFinish = true;
return performFinish;
}
@Override
public void addPages() {
super.addPages();
-
+
page = ExportToFileDestinationWizardPage.Jaxb();
addPage(page);
}
public JaxbExportConfigurator getConfigurator() {
return configurator;
}
-
+
}
// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import java.io.File;
+import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.progress.IProgressConstants;
import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
import eu.etaxonomy.taxeditor.store.CdmStore;
public class SddExportWizard extends AbstractExportWizard<SDDExportConfigurator> {
private ExportToFileDestinationWizardPage page;
-
+
private SDDExportConfigurator configurator;
-
+
/* (non-Javadoc)
* @see eu.etaxonomy.taxeditor.io.wizard.AbstractExportWizard#getConfigurator()
*/
/** {@inheritDoc} */
@Override
public boolean performFinish() {
- File file = new File(page.getFolderText() + File.separator + page.getExportFileName());
-
- configurator.setDestination(file);
-
- CdmStore.getExportManager().run(configurator);
-
- return true;
+ File file = new File(page.getFolderText() + File.separator + page.getExportFileName());
+
+ if(CdmStore.getCurrentSessionManager().isRemoting()) {
+ // create job
+ Job job = CdmStore.getExportManager().createIOServiceJob(configurator, file);
+ // configure the job
+ job.setProperty(IProgressConstants.KEEP_PROPERTY, true);
+ job.setUser(true);
+ // schedule job
+ job.schedule();
+ } else {
+ configurator.setDestination(file);
+ CdmStore.getExportManager().run(configurator);
+ }
+ return true;
}
/*
@Override
public void addPages() {
super.addPages();
-
+
page = ExportToFileDestinationWizardPage.Sdd();
addPage(page);
}
-
+
/* (non-Javadoc)
* @see org.eclipse.ui.IWorkbenchWizard#init(org.eclipse.ui.IWorkbench, org.eclipse.jface.viewers.IStructuredSelection)
*/
/** {@inheritDoc} */
- public void init(IWorkbench workbench, IStructuredSelection selection) {
+ @Override
+ public void init(IWorkbench workbench, IStructuredSelection selection) {
this.setWindowTitle("SDD Export");
this.configurator = CdmStore.getExportManager().SddConfigurator();
}
package eu.etaxonomy.taxeditor.httpinvoker;
import java.io.File;
+import java.io.FileInputStream;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.net.URL;
public static final Resource SERVER_PROPERTIES_FILE =
new ClassPathResource("server.properties");
- public static final Resource EDITOR_DATASOURCES_FILE =
- new ClassPathResource(".cdmLibrary/writableResources/cdm.datasources.xml");
+// public static final Resource EDITOR_DATASOURCES_FILE =
+// new ClassPathResource(".cdmLibrary/writableResources/cdm.datasources.xml");
//private static CdmApplicationRemoteController remoteApplicationController;
private static ICdmRemoteSource cdmRemoteSource;
@BeforeClass
public static void initializeBaseRemotingTest() {
- //NOTE: Run this the cdmTest H2 DB whenever it needs to be
- // recreated e.g. after a model change
DatabaseUnitils.disableConstraints();
try {
String userHomeDirPath;
Bundle bundle = Platform.getBundle("eu.etaxonomy.taxeditor.test");
- // if bundle is null then we are running as junit test in eclipse
- if(bundle == null) {
- userHomeDirPath = EDITOR_DATASOURCES_FILE.getFile().getParentFile().getParentFile().getParent();
- } else {
- // ... else we are running in maven which requires loading the dir via the
- // classpath bundle
- URL userHomeDirURL = bundle.getEntry("src/test/resources");
- File userHomeDir = new File(FileLocator.resolve(userHomeDirURL).toURI());
- userHomeDirPath = userHomeDir.getAbsolutePath();
- }
+
+ URL userHomeDirURL = bundle.getEntry("src/test/resources");
+ File userHomeDir = new File(FileLocator.resolve(userHomeDirURL).toURI());
+ userHomeDirPath = userHomeDir.getAbsolutePath();
+
logger.info("Setting user.home to " + userHomeDirPath);
Properties prop = new Properties();
- InputStream inputStream = SERVER_PROPERTIES_FILE.getInputStream();
+
+ URL serverPropertiesURL = bundle.getEntry("src/test/resources/server.properties");
+ File serverPropertiesFile = new File(FileLocator.resolve(serverPropertiesURL).toURI());
+ InputStream inputStream = new FileInputStream(serverPropertiesFile);
if (inputStream != null) {
prop.load(inputStream);
--- /dev/null
+// $Id$
+/**
+* Copyright (C) 2015 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.service;
+
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.List;
+import java.util.UUID;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.unitils.dbunit.annotation.DataSet;
+
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
+import eu.etaxonomy.cdm.io.common.ExportResult;
+import eu.etaxonomy.cdm.io.csv.caryophyllales.out.CsvNameExportConfigurator;
+import eu.etaxonomy.cdm.io.csv.redlist.demo.CsvDemoExportConfigurator;
+import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
+import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
+import eu.etaxonomy.cdm.io.service.IIOService;
+import eu.etaxonomy.taxeditor.httpinvoker.BaseRemotingTest;
+
+/**
+ * @author cmathew
+ * @date 31 Jul 2015
+ *
+ */
+@DataSet
+public class IOServiceTest extends BaseRemotingTest {
+
+ private final IIOService ioService = CdmApplicationState.getIOService();
+
+ @Test
+ public void exportJaxbTest() {
+ JaxbExportConfigurator config = JaxbExportConfigurator.NewInstance(null, null);
+ ExportResult result = ioService.export(config);
+ List<byte[]> dataList = result.getExportData();
+ Assert.assertEquals(1, dataList.size());
+ byte[] exportData = dataList.get(0);
+ String savePath = "target/exportjaxb.xml";
+ FileOutputStream stream = null;
+ try {
+ stream = new FileOutputStream(savePath);
+ stream.write(exportData);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if(stream != null) {
+ stream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ @Test
+ public void exportSDDTest() {
+ SDDExportConfigurator config = SDDExportConfigurator.NewInstance(null, null, null);
+ ExportResult result = ioService.export(config);
+ List<byte[]> dataList = result.getExportData();
+ Assert.assertEquals(1, dataList.size());
+ byte[] exportData = dataList.get(0);
+ String savePath = "target/exportsdd.xml";
+ FileOutputStream stream = null;
+ try {
+ stream = new FileOutputStream(savePath);
+ stream.write(exportData);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if(stream != null) {
+ stream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Test
+ public void exportCSVTest() {
+ HashSet<UUID> set = new HashSet<UUID>();
+ set.add(UUID.fromString("0c2b5d25-7b15-4401-8b51-dd4be0ee5cab"));
+ CsvDemoExportConfigurator config = CsvDemoExportConfigurator.NewInstance(null, null);
+ config.setClassificationUuids(set);
+ config.setDoTaxa(true);
+ config.setHasHeaderLines(true);
+ config.setClassification(true);
+ config.setTaxonName(true);
+ config.setAuthor(true);
+ config.setRank(true);
+ config.setLastChange(true);
+
+ ExportResult result = ioService.export(config);
+ List<byte[]> dataList = result.getExportData();
+ Assert.assertEquals(1, dataList.size());
+ byte[] exportData = dataList.get(0);
+ String savePath = "target/exportcsv.xml";
+ saveToFile(savePath, exportData);
+ }
+
+ @Test
+ public void exportCSVNameTest() {
+ CsvNameExportConfigurator config = CsvNameExportConfigurator.NewInstance(null,null);
+ ExportResult result = ioService.export(config);
+ List<byte[]> dataList = result.getExportData();
+ Assert.assertEquals(1, dataList.size());
+ byte[] exportData = dataList.get(0);
+ String savePath = "target/exportcsvname.xml";
+ saveToFile(savePath, exportData);
+ }
+
+ @Test
+ public void exportCSVPrintTest() {
+ CsvNameExportConfigurator config = CsvNameExportConfigurator.NewInstance(null,null);
+ config.setNamesOnly(false);
+ config.setClassificationUUID(UUID.fromString("0c2b5d25-7b15-4401-8b51-dd4be0ee5cab"));
+ ExportResult result = ioService.export(config);
+ List<byte[]> dataList = result.getExportData();
+ Assert.assertEquals(1, dataList.size());
+ byte[] exportData = dataList.get(0);
+ String savePath = "target/exportcsvprint.xml";
+ saveToFile(savePath, exportData);
+ }
+
+ private static void saveToFile(String filePath, byte[] data) {
+ FileOutputStream stream = null;
+ try {
+ stream = new FileOutputStream(filePath);
+ stream.write(data);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if(stream != null) {
+ stream.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?><!--
+ generated by Jailer 4.3, Fri Jun 19 09:13:03 CEST 2015 from cmathew@cmbgbm-t530
+
+ Extraction Model: all rows from Classification (extractionmodel/by-example/SbE-Classification-09-10-20-259.csv)
+ Database URL: jdbc:mysql://127.0.0.1:3306/local-cyprus
+ Database User: root
+
+ Exported Rows: 67
+ Classification 1
+ DescriptionBase 22
+ TaxonBase 14
+ TaxonNameBase 14
+ TaxonNode 16
+
+--><dataset>
+ <TaxonNode id="46" created="2010-12-21 15:09:43.0" uuid="168a4d09-a2b0-4206-b4cc-5d13199f9306" countchildren="0" classification_id="10" parent_id="47" taxon_id="48" treeIndex="#t10#4032#49#48#47#46#" sortIndex="0"/>
+ <TaxonNode id="47" created="2010-12-21 15:09:43.0" uuid="2f05d429-632d-4230-b9cb-70299360b470" countchildren="1" classification_id="10" parent_id="48" taxon_id="51" treeIndex="#t10#4032#49#48#47#" sortIndex="0"/>
+ <TaxonNode id="48" created="2010-12-21 15:09:43.0" uuid="24773d3b-8f11-4400-99de-71658982b245" countchildren="6" classification_id="10" parent_id="49" treeIndex="#t10#4032#49#48#" sortIndex="0"/>
+ <TaxonNode id="49" created="2010-12-21 15:09:43.0" uuid="572290a9-7535-48c8-9f68-25ddbc9869ee" countchildren="10" classification_id="10" parent_id="4032" taxon_id="49" treeIndex="#t10#4032#49#" sortIndex="0"/>
+ <TaxonNode id="236" created="2010-12-21 15:09:45.0" uuid="f5d97f8b-c673-4050-af06-bbfab33baaec" countchildren="0" classification_id="10" parent_id="237" taxon_id="264" treeIndex="#t10#4032#49#48#237#236#" sortIndex="0"/>
+ <TaxonNode id="237" created="2010-12-21 15:09:45.0" uuid="4998de90-d0be-433b-a62f-0d57a1e399b0" countchildren="1" classification_id="10" parent_id="48" taxon_id="265" treeIndex="#t10#4032#49#48#237#" sortIndex="1"/>
+ <TaxonNode id="714" created="2010-12-21 15:09:48.0" uuid="b85b5b78-6760-409f-ac91-bb89e95ff2a1" countchildren="0" classification_id="10" parent_id="715" taxon_id="812" treeIndex="#t10#4032#49#48#715#714#" sortIndex="0"/>
+ <TaxonNode id="715" created="2010-12-21 15:09:48.0" uuid="91698cec-615f-4472-9002-feda1a6acded" countchildren="2" classification_id="10" parent_id="48" taxon_id="814" treeIndex="#t10#4032#49#48#715#" sortIndex="2"/>
+ <TaxonNode id="716" created="2010-12-21 15:09:48.0" uuid="6ad8e9e2-f5f6-41ad-aa30-f62a903650db" countchildren="0" classification_id="10" parent_id="715" taxon_id="815" treeIndex="#t10#4032#49#48#715#716#" sortIndex="1"/>
+ <TaxonNode id="828" created="2010-12-21 15:09:49.0" uuid="786622ba-cb2c-47f4-9eeb-65a6ebb7122b" countchildren="0" classification_id="10" parent_id="829" taxon_id="946" treeIndex="#t10#4032#49#48#829#828#" sortIndex="0"/>
+ <TaxonNode id="829" created="2010-12-21 15:09:49.0" uuid="4fe03763-b966-4361-8334-352f6f777588" countchildren="1" classification_id="10" parent_id="48" taxon_id="948" treeIndex="#t10#4032#49#48#829#" sortIndex="3"/>
+ <TaxonNode id="1915" created="2010-12-21 15:09:57.0" uuid="99f03b56-67cd-4e01-9ceb-2362d48f9d07" countchildren="0" classification_id="10" parent_id="1916" taxon_id="2203" treeIndex="#t10#4032#49#48#1916#1915#" sortIndex="0"/>
+ <TaxonNode id="1916" created="2010-12-21 15:09:57.0" uuid="d8998200-500f-4312-90f4-2b60e6fd3a78" countchildren="1" classification_id="10" parent_id="48" taxon_id="2205" treeIndex="#t10#4032#49#48#1916#" sortIndex="4"/>
+ <TaxonNode id="2354" created="2010-12-21 15:10:00.0" uuid="b8439f51-6b96-445a-b401-7a836ba1cf58" countchildren="0" classification_id="10" parent_id="2355" taxon_id="2737" treeIndex="#t10#4032#49#48#2355#2354#" sortIndex="0"/>
+ <TaxonNode id="2355" created="2010-12-21 15:10:00.0" uuid="6da4e5b6-ebc3-4c46-bdce-24161b7bd0e2" countchildren="1" classification_id="10" parent_id="48" taxon_id="2738" treeIndex="#t10#4032#49#48#2355#" sortIndex="5"/>
+ <TaxonNode id="4032" created="2014-01-16 10:24:29.0" uuid="29b3fd3f-29b4-4011-ab12-9c1ad1607dbd" countchildren="1" classification_id="10" treeIndex="#t10#4032#"/>
+
+ <TaxonNameBase DTYPE="BotanicalName" id="48" created="2010-12-21 15:09:43.0" uuid="7aceb517-2b91-46b9-a5a2-88b7e0fb3230" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L." fullTitleCache="Adiantum capillus-veneris L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum capillus-veneris" protectedauthorshipcache="false" protectednamecache="false" specificepithet="capillus-veneris" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="49" created="2010-12-21 15:09:43.0" uuid="079fff38-ff2d-426b-a49e-70b0f1db6c31" protectedtitlecache="false" titleCache="Pteridophyta" fullTitleCache="Pteridophyta" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteridophyta" hybridformula="false" monomhybrid="false" namecache="Pteridophyta" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="810"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="51" created="2010-12-21 15:09:43.0" uuid="c8af63e0-7bd4-4fad-aa2d-3777cbe1210a" protectedtitlecache="false" titleCache="Adiantum" fullTitleCache="Adiantum" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Adiantum" hybridformula="false" monomhybrid="false" namecache="Adiantum" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="264" created="2010-12-21 15:09:45.0" uuid="b976da6a-dd84-4fcd-9a1b-9847afba1da2" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link" fullTitleCache="Anogramma leptophylla (L.) Link" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Link" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma leptophylla" protectedauthorshipcache="false" protectednamecache="false" specificepithet="leptophylla" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="265" created="2010-12-21 15:09:45.0" uuid="c7f1db22-20fb-4eeb-810b-d37c5593b95d" protectedtitlecache="false" titleCache="Anogramma" fullTitleCache="Anogramma" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Anogramma" hybridformula="false" monomhybrid="false" namecache="Anogramma" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="812" created="2010-12-21 15:09:48.0" uuid="16450a2d-2085-471f-804a-defcd43c03e4" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod." fullTitleCache="Cheilanthes acrostica (Balb.) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Balb.) Tod." binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes acrostica" protectedauthorshipcache="false" protectednamecache="false" specificepithet="acrostica" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="814" created="2010-12-21 15:09:48.0" uuid="bbb1c5be-5a0c-45e2-b8af-f37a80ccf858" protectedtitlecache="false" titleCache="Cheilanthes" fullTitleCache="Cheilanthes" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="815" created="2010-12-21 15:09:48.0" uuid="f04a9283-f856-4d28-b469-4a222472862b" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe" fullTitleCache="Cheilanthes maderensis Lowe" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="Lowe" binomhybrid="false" genusoruninomial="Cheilanthes" hybridformula="false" monomhybrid="false" namecache="Cheilanthes maderensis" protectedauthorshipcache="false" protectednamecache="false" specificepithet="maderensis" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="946" created="2010-12-21 15:09:49.0" uuid="e30ef44b-52e4-41ff-a68d-9912d3c537f1" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod." fullTitleCache="Cosentinia vellea (Aiton) Tod." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(Aiton) Tod." binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia vellea" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vellea" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="948" created="2010-12-21 15:09:49.0" uuid="21fda99e-0425-4f29-b7b2-196f8a51b054" protectedtitlecache="false" titleCache="Cosentinia" fullTitleCache="Cosentinia" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Cosentinia" hybridformula="false" monomhybrid="false" namecache="Cosentinia" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="2203" created="2010-12-21 15:09:57.0" uuid="8fe0bb4b-7687-4d32-8ff2-94e690980f81" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv." fullTitleCache="Notholaena marantae (L.) Desv." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="(L.) Desv." binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena marantae" protectedauthorshipcache="false" protectednamecache="false" specificepithet="marantae" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="2205" created="2010-12-21 15:09:57.0" uuid="77b7934f-8f62-4798-b96a-f3d12bfd5ebf" protectedtitlecache="false" titleCache="Notholaena" fullTitleCache="Notholaena" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Notholaena" hybridformula="false" monomhybrid="false" namecache="Notholaena" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+ <TaxonNameBase DTYPE="BotanicalName" id="2737" created="2010-12-21 15:10:00.0" uuid="25560d66-07a3-41ce-8244-36ca98638c71" protectedtitlecache="false" titleCache="Pteris vittata L." fullTitleCache="Pteris vittata L." parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="L." binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris vittata" protectedauthorshipcache="false" protectednamecache="false" specificepithet="vittata" trinomhybrid="false" anamorphic="false" rank_id="778" />
+ <TaxonNameBase DTYPE="BotanicalName" id="2738" created="2010-12-21 15:10:00.0" uuid="a40593ce-e8cc-43bb-a391-2de988b09039" protectedtitlecache="false" titleCache="Pteris" fullTitleCache="Pteris" parsingproblem="0" problemends="-1" problemstarts="-1" protectedfulltitlecache="false" authorshipcache="" binomhybrid="false" genusoruninomial="Pteris" hybridformula="false" monomhybrid="false" namecache="Pteris" protectedauthorshipcache="false" protectednamecache="false" trinomhybrid="false" anamorphic="false" rank_id="788"/>
+
+ <Classification id="10" created="2010-12-21 15:09:43.0" uuid="0c2b5d25-7b15-4401-8b51-dd4be0ee5cab" updated="2015-06-09 07:10:42.0" protectedtitlecache="false" titleCache="Cyprus" updatedby_id="10" name_id="10" rootnode_id="4032"/>
+
+ <TaxonBase DTYPE="Taxon" id="48" created="2011-03-01 20:11:26.0" uuid="b8402dc4-5050-4882-a147-01b71e0e47d6" protectedtitlecache="false" titleCache="Adiantum capillus-veneris L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="48" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="49" created="2010-12-21 15:09:43.0" uuid="1141a510-5ee8-4a59-ae60-7b4fea44872f" protectedtitlecache="false" titleCache="Pteridophyta sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="49" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="51" created="2010-12-21 15:09:43.0" uuid="233cac41-bb05-4925-bb9e-ab0bdf330973" protectedtitlecache="false" titleCache="Adiantum sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="51" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="264" created="2011-03-01 20:11:27.0" uuid="d679c5d0-53b3-40fc-97e1-0646aad7ed23" protectedtitlecache="false" titleCache="Anogramma leptophylla (L.) Link sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="264" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="265" created="2010-12-21 15:09:45.0" uuid="1fc1d927-1155-4282-a9f5-f07202f79ace" protectedtitlecache="false" titleCache="Anogramma sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="265" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="812" created="2011-03-01 20:11:29.0" uuid="e40854d7-143f-4054-b229-6ed4cedb4bff" protectedtitlecache="false" titleCache="Cheilanthes acrostica (Balb.) Tod. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="812" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="814" created="2010-12-21 15:09:48.0" uuid="433ad11a-b931-49a4-8128-d6f4d454914a" protectedtitlecache="false" titleCache="Cheilanthes sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="814" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="815" created="2010-12-21 15:09:48.0" uuid="7ea2c74a-f2b2-41f6-acdf-1ca35f5d03f8" protectedtitlecache="false" titleCache="Cheilanthes maderensis Lowe sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="815" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="946" created="2011-03-01 20:11:30.0" uuid="ba21b018-97d2-42d7-af6c-5e8db8e495ff" protectedtitlecache="false" titleCache="Cosentinia vellea (Aiton) Tod. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="946" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="948" created="2010-12-21 15:09:49.0" uuid="a2768f6d-80f2-4e0c-a6e3-99b7a9f3bc9d" protectedtitlecache="false" titleCache="Cosentinia sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="948" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2203" created="2011-03-01 20:11:36.0" uuid="d9a0c5d5-baee-4b6b-974a-a7de5affe748" protectedtitlecache="false" titleCache="Notholaena marantae (L.) Desv. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2203" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2205" created="2010-12-21 15:09:57.0" uuid="c221d34c-76b0-4fc7-9901-e72efd4c899b" protectedtitlecache="false" titleCache="Notholaena sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2205" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2737" created="2011-03-01 20:11:39.0" uuid="6b46ac55-3e39-4c37-a1b6-b680b21599b2" protectedtitlecache="false" titleCache="Pteris vittata L. sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2737" publish="true"/>
+ <TaxonBase DTYPE="Taxon" id="2738" created="2010-12-21 15:10:00.0" uuid="8ac3dca2-6bbf-4cd4-84b7-53ddc2973ed8" protectedtitlecache="false" titleCache="Pteris sec. Cyprus" doubtful="false" usenamecache="false" excluded="false" taxonstatusunknown="false" taxonomicchildrencount="0" unplaced="false" name_id="2738" publish="true"/>
+
+ <DescriptionBase DTYPE="TaxonDescription" id="28" created="2010-12-21 15:09:43.0" uuid="f04f8f66-ad92-42d0-89bc-04ac5b36163c" updated="2011-03-01 19:20:45.0" protectedtitlecache="false" titleCache="Taxon description for Adiantum capillus-veneris L." imagegallery="false" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="149" created="2010-12-21 15:09:45.0" uuid="24df0fca-bfc4-4f0f-a269-336985ed6e5e" updated="2011-03-01 19:20:46.0" protectedtitlecache="false" titleCache="Taxon description for Anogramma leptophylla (L.) Link" imagegallery="false" taxon_id="264"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="447" created="2010-12-21 15:09:48.0" uuid="01863b86-c6ae-48b8-a8da-f693be9087da" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes acrostica (Balbis) Tod." imagegallery="false" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="448" created="2010-12-21 15:09:48.0" uuid="aac7b184-e622-409b-8eda-e14998b9021d" protectedtitlecache="false" titleCache="Taxon description for Cheilanthes maderensis Lowe" imagegallery="false" taxon_id="815"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="521" created="2010-12-21 15:09:49.0" uuid="2d672585-0f35-42f8-9923-dfd5545e6369" updated="2011-03-01 19:20:48.0" protectedtitlecache="false" titleCache="Taxon description for Cosentinia vellea (Aiton) Tod." imagegallery="false" taxon_id="946"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="1234" created="2010-12-21 15:09:57.0" uuid="a8a734c2-122b-4d5b-9c89-a852f4ab4661" updated="2011-03-01 19:20:53.0" protectedtitlecache="false" titleCache="Taxon description for Notholaena marantae (L.) Desv." imagegallery="false" taxon_id="2203"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="1524" created="2010-12-21 15:10:00.0" uuid="c4e66d46-e4fb-4da2-a432-3f1cf5353b81" updated="2011-03-01 19:20:55.0" protectedtitlecache="false" titleCache="Taxon description for Pteris vittata L." imagegallery="false" taxon_id="2737"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4567" created="2011-03-01 19:20:45.0" uuid="dd0f7395-6162-4ce4-8ece-774011b09325" updated="2011-03-01 20:11:26.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Adiantum capillus-veneris L. sec. Cyprus" imagegallery="false" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4627" created="2011-03-01 19:20:46.0" uuid="34266202-eb5d-41ec-a0b2-da56deb11cc7" updated="2011-03-01 20:11:27.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Anogramma leptophylla (L.) Link sec. Cyprus" imagegallery="false" taxon_id="264"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4798" created="2011-03-01 19:20:48.0" uuid="504b0178-39e6-4c79-8e33-ca00b0662f27" updated="2011-03-01 20:11:29.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cheilanthes acrostica (Balbis) Tod. sec. Cyprus" imagegallery="false" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="4840" created="2011-03-01 19:20:48.0" uuid="73396d11-5d35-43fb-8b15-4d472bdcdd43" updated="2011-03-01 20:11:30.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Cosentinia vellea (Aiton) Tod. sec. Cyprus" imagegallery="false" taxon_id="946"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="5409" created="2011-03-01 19:20:55.0" uuid="64a797b2-7f92-4012-a4f5-d76f8aaeb6b4" updated="2011-03-01 20:11:39.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Pteris vittata L. sec. Cyprus" imagegallery="false" taxon_id="2737"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="5974" created="2011-03-01 19:20:53.0" uuid="71872861-8229-4cab-8042-b75dfa0e3f63" updated="2011-03-01 20:11:36.0" protectedtitlecache="true" titleCache="Cyprus Distributions Excel Import for Notholaena marantae (L.) Desv. sec. Cyprus" imagegallery="false" taxon_id="2203"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="11766" created="2012-07-30 15:39:44.0" uuid="6b4be8a2-ea86-4815-bd31-b022055a90f2" protectedtitlecache="false" titleCache="Image gallery for Pteris vittata L." imagegallery="true" taxon_id="2737"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="12353" created="2012-12-03 12:21:48.0" uuid="b8d3a151-032e-48d9-9191-d7b8fb1fe1a0" protectedtitlecache="false" titleCache="Image gallery for Cheilanthes acrostica (Balbis) Tod." imagegallery="true" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="12713" created="2013-02-10 21:43:33.0" uuid="61fbdc1b-80bf-4aea-b6cb-8f4d466bd923" protectedtitlecache="false" titleCache="Image gallery for Adiantum capillus-veneris L." imagegallery="true" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="13728" created="2014-02-28 19:20:29.0" uuid="53b3125e-2a43-4433-a4dd-50dd9a4cf92c" updated="2014-02-28 19:20:29.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="48"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="13817" created="2014-02-28 19:20:34.0" uuid="7b108193-e689-417a-bcab-adaf6c49d532" updated="2014-02-28 19:20:34.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="264"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14043" created="2014-02-28 19:20:58.0" uuid="de29cc97-a160-4783-b996-b929157335d5" updated="2014-02-28 19:20:58.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="812"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14101" created="2014-02-28 19:21:07.0" uuid="815336d3-19d6-493d-9ea4-bcb320d1b922" updated="2014-02-28 19:21:08.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="946"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14658" created="2014-02-28 19:23:51.0" uuid="ce4068f8-17b0-46e2-9fbb-e8c16efb7255" updated="2014-02-28 19:23:51.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2203"/>
+ <DescriptionBase DTYPE="TaxonDescription" id="14864" created="2014-02-28 19:25:21.0" uuid="2d55f445-8e72-43d3-976a-133828e89599" updated="2014-02-28 19:25:21.0" protectedtitlecache="true" titleCache="Import from Cyprus Excel Altitude Import" imagegallery="false" taxon_id="2737"/>
+
+ <SynonymRelationship/>
+
+ <LanguageString id="10"/>
+</dataset>