2 * Copyright (C) 2009 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
9 package eu
.etaxonomy
.cdm
.app
.sdd
;
12 import java
.net
.MalformedURLException
;
13 import java
.sql
.SQLException
;
15 import org
.apache
.log4j
.Logger
;
16 import org
.springframework
.util
.Assert
;
18 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
19 import eu
.etaxonomy
.cdm
.database
.CdmDataSource
;
20 import eu
.etaxonomy
.cdm
.database
.CdmPersistentDataSource
;
21 import eu
.etaxonomy
.cdm
.database
.DataSourceNotFoundException
;
22 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
23 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
24 import eu
.etaxonomy
.cdm
.io
.common
.CdmDefaultExport
;
25 import eu
.etaxonomy
.cdm
.io
.common
.IExportConfigurator
.DO_REFERENCES
;
26 import eu
.etaxonomy
.cdm
.io
.sdd
.out
.SDDExportConfigurator
;
33 public class SDDExportActivator
{
35 /* SerializeFrom DB **/
36 private static final String sourceDbName
= "cdm";
37 //private static final String destinationFileName = "ViolaFromCDM.xml";
38 //private static final String destinationFolder = "/Developer/exports SDD";
39 //private static final String destinationFolder = "C:/tmp/viola/exports_SDD";
41 /** NUMBER_ROWS_TO_RETRIEVE = 0 is the default case to retrieve all rows.
42 * For testing purposes: If NUMBER_ROWS_TO_RETRIEVE >0 then retrieve
43 * as many rows as specified for agents, references, etc.
44 * Only root taxa and no synonyms and relationships are retrieved. */
45 private static final int NUMBER_ROWS_TO_RETRIEVE
= 0;
47 private static final String server
= "134.157.190.207";
48 private static final String username
= "sa";
50 public static ICdmDataSource
CDM_DB(String dbname
) {
52 logger
.info("Setting DB " + dbname
);
53 ICdmDataSource datasource
= CdmDataSource
.NewH2EmbeddedInstance(dbname
, username
, "");
57 private static ICdmDataSource
customDataSource() {
59 CdmPersistentDataSource loadedDataSource
= null;
60 //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("192.168.2.10", "cdm_test_niels2", 3306, "edit", password, code);
62 String dataSourceName
= CdmUtils
.readInputLine("Database name: ");
63 String username
= CdmUtils
.readInputLine("Username: ");
64 String password
= CdmUtils
.readInputLine("Password: ");
66 dataSourceName
= (dataSourceName
.equals("")) ?
"cdm_test3" : dataSourceName
;
67 username
= (username
.equals("")) ?
"ljm" : username
;
69 //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", "cdm_test3", 3306, "ljm", password, NomenclaturalCode.ICBN);
70 ICdmDataSource dataSource
= CdmDataSource
.NewMySqlInstance("127.0.0.1", dataSourceName
, 3306, username
, password
);
71 //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", "cdm_edit_cichorieae", 3306, "ljm", password, NomenclaturalCode.ICBN);
72 //ICdmDataSource dataSource =
73 CdmDataSource
.NewMySqlInstance("160.45.63.201", "cdm_edit_cichorieae", 3306, "edit", password
);
74 boolean connectionAvailable
;
76 connectionAvailable
= dataSource
.testConnection();
77 System
.out
.println("LORNA connection available " + connectionAvailable
);
78 Assert
.isTrue(connectionAvailable
, "Testdatabase is not available");
80 } catch (ClassNotFoundException e1
) {
81 // TODO Auto-generated catch block
83 } catch (SQLException e1
) {
84 // TODO Auto-generated catch block
88 CdmPersistentDataSource
.save(dataSourceName
, dataSource
);
90 loadedDataSource
= CdmPersistentDataSource
.NewInstance(dataSourceName
);
91 // CdmApplicationController.NewInstance(loadedDataSource, DbSchemaValidation.CREATE);
92 // NomenclaturalCode loadedCode = loadedDataSource.getNomenclaturalCode();
94 // Assert.assertEquals(NomenclaturalCode.ICNAFP, loadedCode);
95 } catch (DataSourceNotFoundException e
) {
98 //return loadedDataSource;
104 private static final Logger logger
= Logger
.getLogger(ViolaExportActivator
.class);
106 //private static final ICdmDataSource sourceDb = ViolaExportActivator.CDM_DB(sourceDbName);
107 private static final ICdmDataSource sourceDb
= customDataSource();
108 //private static final File destinationFile = new File(destinationFolder + File.separator + destinationFileName);
110 private static boolean doAgents
= true;
111 private static boolean doAgentData
= true;
112 private static boolean doLanguageData
= true;
113 private static boolean doFeatureData
= true;
114 private static boolean doDescriptions
= true;
115 private static boolean doMedia
= true;
116 private static boolean doOccurrences
= true;
117 //private static boolean doReferences = true;
118 private static final DO_REFERENCES doReferences
= DO_REFERENCES
.ALL
;
119 private static boolean doReferencedEntities
= true;
120 private static boolean doRelationships
= false; //causes org.hibernate.ObjectNotFoundException: No row with the given identifier exists: [eu.etaxonomy.cdm.model.taxon.Taxon#24563] in cichoriae
121 private static boolean doSynonyms
= true;
122 private static boolean doTaxonNames
= true;
123 private static boolean doTaxa
= true;
124 private static boolean doTerms
= true;
125 private static boolean doTermVocabularies
= true;
126 private static boolean doHomotypicalGroups
= true;//try export again
128 private void invokeExport() {
131 //String exporturlStr = "/sdd/SDDImportExportTest.sdd.xml";
132 String exporturlStr
= "SDDImportExportTest.sdd.xml";
133 File f
= new File(exporturlStr
);
135 exporturlStr
= f
.toURI().toURL().toString();
136 } catch (MalformedURLException e
) {
137 // TODO Auto-generated catch block
141 //lorna//SDDExportConfigurator sddExportConfigurator =
142 //SDDExportConfigurator.NewInstance(sourceDb, destinationFileName, destinationFolder);
144 SDDExportConfigurator sddExportConfigurator
=
145 SDDExportConfigurator
.NewInstance(sourceDb
, exporturlStr
);
148 CdmDefaultExport
<SDDExportConfigurator
> sddExport
=
149 new CdmDefaultExport
<SDDExportConfigurator
>();
151 sddExportConfigurator
.setSource(sourceDb
);
152 //lorna//sddExportConfigurator.setDestination(destinationFile);
153 sddExportConfigurator
.setDbSchemaValidation(DbSchemaValidation
.VALIDATE
);
155 sddExportConfigurator
.setMaxRows(NUMBER_ROWS_TO_RETRIEVE
);
157 sddExportConfigurator
.setDoAuthors(doAgents
);
158 sddExportConfigurator
.setDoAgentData(doAgentData
);
159 sddExportConfigurator
.setDoLanguageData(doLanguageData
);
160 sddExportConfigurator
.setDoFeatureData(doFeatureData
);
161 sddExportConfigurator
.setDoDescriptions(doDescriptions
);
162 sddExportConfigurator
.setDoMedia(doMedia
);
163 sddExportConfigurator
.setDoOccurrence(doOccurrences
);
164 sddExportConfigurator
.setDoReferences(doReferences
);
165 sddExportConfigurator
.setDoReferencedEntities(doReferencedEntities
);
166 sddExportConfigurator
.setDoRelTaxa(doRelationships
);
167 sddExportConfigurator
.setDoSynonyms(doSynonyms
);
168 sddExportConfigurator
.setDoTaxonNames(doTaxonNames
);
169 sddExportConfigurator
.setDoTaxa(doTaxa
);
170 sddExportConfigurator
.setDoTerms(doTerms
);
171 sddExportConfigurator
.setDoTermVocabularies(doTermVocabularies
);
172 sddExportConfigurator
.setDoHomotypicalGroups(doHomotypicalGroups
);
175 logger
.debug("Invoking SDD export");
176 sddExport
.invoke(sddExportConfigurator
);
183 public static void main(String
[] args
) {
185 SDDExportActivator sddex
= new SDDExportActivator();
187 sddex
.invokeExport();