2 * Copyright (C) 2008 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.
10 package eu
.etaxonomy
.cdm
.app
.jaxb
;
13 import java
.net
.URISyntaxException
;
15 import org
.apache
.log4j
.Logger
;
17 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
18 import eu
.etaxonomy
.cdm
.app
.common
.CdmDestinations
;
19 import eu
.etaxonomy
.cdm
.app
.util
.TestDatabase
;
20 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
21 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
22 import eu
.etaxonomy
.cdm
.io
.common
.CdmDefaultImport
;
23 import eu
.etaxonomy
.cdm
.io
.jaxb
.JaxbImportConfigurator
;
26 * @author a.babadshanjan
30 public class JaxbImportActivator
{
32 /* SerializeFrom DB **/
33 //private static final ICdmDataSource cdmSource = CdmDestinations.localH2Diptera();
34 private static final ICdmDataSource cdmDestination
= CdmDestinations
.cdm_test_local_mysql_test();
38 private static String importFileNameString
=
39 //"C:\\workspace\\cdmlib_2.2\\cdmlib-io\\src\\test\\resources\\eu\\etaxonomy\\cdm\\io\\jaxb\\export_test_app_import.xml";
40 // "file:/C:/export_test_app_import.xml";
41 "file:/C:/localCopy/Data/krähen/201206141338-jaxb_export-cdm.xml";
44 /** NUMBER_ROWS_TO_RETRIEVE = 0 is the default case to retrieve all rows.
45 * For testing purposes: If NUMBER_ROWS_TO_RETRIEVE >0 then retrieve
46 * as many rows as specified for agents, references, etc.
47 * Only root taxa and no synonyms and relationships are retrieved. */
48 private static final int NUMBER_ROWS_TO_RETRIEVE
= 0;
50 private static final Logger logger
= Logger
.getLogger(JaxbImportActivator
.class);
53 public static String
chooseFile(String
[] args
) {
56 for (String dest
: args
){
57 if (dest
.endsWith(".xml")){
64 private void invokeImport(String importFileParamString
, ICdmDataSource destination
) {
66 JaxbImportConfigurator jaxbImportConfigurator
;
67 if (importFileParamString
!=null && destination
!= null){
69 importFileParam
= new URI(importFileParamString
);
70 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileParam
, destination
);
71 }else if (destination
!= null){
72 URI importFileName
= new URI(importFileNameString
);
73 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileName
, destination
);
74 } else if (importFileParamString
!=null ){
75 URI importFileParam
= new URI(importFileParamString
);
76 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileParam
, cdmDestination
);
78 URI importFileName
= new URI(importFileNameString
);
79 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileName
, cdmDestination
);
82 CdmDefaultImport
<JaxbImportConfigurator
> jaxbImport
=
83 new CdmDefaultImport
<JaxbImportConfigurator
>();
87 logger
.debug("Invoking Jaxb import");
89 jaxbImport
.invoke(jaxbImportConfigurator
, destination
, true);
90 } catch (URISyntaxException e
) {
98 private CdmApplicationController
initDb(ICdmDataSource db
) {
101 CdmApplicationController appCtrInit
= null;
103 appCtrInit
= TestDatabase
.initDb(db
, DbSchemaValidation
.CREATE
, false);
109 // Load test data to DB
110 private void loadTestData(CdmApplicationController appCtrInit
) {
112 TestDatabase
.loadTestData("", appCtrInit
);
119 public static void main(String
[] args
) {
121 JaxbImportActivator jia
= new JaxbImportActivator();
122 ICdmDataSource destination
= CdmDestinations
.chooseDestination(args
) != null ? CdmDestinations
.chooseDestination(args
) : cdmDestination
;
123 String file
= chooseFile(args
)!= null ?
chooseFile(args
) : importFileNameString
;
124 CdmApplicationController appCtr
= null;
125 // appCtr = jia.initDb(destination);
127 jia
.invokeImport(file
, destination
);