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
;
14 import java
.net
.URISyntaxException
;
16 import org
.apache
.log4j
.Logger
;
18 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
19 import eu
.etaxonomy
.cdm
.app
.common
.CdmDestinations
;
20 import eu
.etaxonomy
.cdm
.app
.util
.TestDatabase
;
21 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
22 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
23 import eu
.etaxonomy
.cdm
.io
.common
.CdmDefaultImport
;
24 import eu
.etaxonomy
.cdm
.io
.jaxb
.JaxbImportConfigurator
;
27 * @author a.babadshanjan
30 * NOTE: the result may go into
31 * cdmlib-persistence\target\test-classes\eu\etaxonomy\cdm\h2\LocalH2
33 public class JaxbImportActivator
{
35 /* SerializeFrom DB **/
36 // private static final ICdmDataSource cdmDestination = CdmDestinations.cdm_test_local_mysql_test();
37 //if you run from IDE it may run into {cdmlib-folder}\cdmlib-persistence\target\test-classes\eu\etaxonomy\cdm\h2\LocalH2\
38 private static final ICdmDataSource cdmDestination
= CdmDestinations
.localH2Armeria();
42 private static String importFileNameString
=
43 //"C:\\workspace\\cdmlib_2.2\\cdmlib-io\\src\\test\\resources\\eu\\etaxonomy\\cdm\\io\\jaxb\\export_test_app_import.xml";
44 // "file:/C:/export_test_app_import.xml";
45 // "file:/C:/opt/data/rl/201406041541-jaxb_export-Regenwuermer.xml";
46 // "file:/C:/opt/data/rl/201406241132-jaxb_export-Armeria.xml";
47 // "file:/F:/data/redlist/standardliste/standardliste_jaxb.xml";
48 // "//PESIIMPORT3/redlist/standardliste/standardliste_jaxb.xml";
49 "//PESIIMPORT3/redlist/201411261506-jaxb_export-armeria_demo_local.xml";
56 /** NUMBER_ROWS_TO_RETRIEVE = 0 is the default case to retrieve all rows.
57 * For testing purposes: If NUMBER_ROWS_TO_RETRIEVE >0 then retrieve
58 * as many rows as specified for agents, references, etc.
59 * Only root taxa and no synonyms and relationships are retrieved. */
60 private static final int NUMBER_ROWS_TO_RETRIEVE
= 0;
62 private static final Logger logger
= Logger
.getLogger(JaxbImportActivator
.class);
64 private void invokeImport(String importFileParamString
, ICdmDataSource destination
) {
66 JaxbImportConfigurator jaxbImportConfigurator
;
67 if (importFileParamString
!=null && destination
!= null){
68 URI importFileParam
= new URI(importFileParamString
);
69 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileParam
, destination
);
70 }else if (destination
!= null){
71 URI importFileName
= new URI(importFileNameString
);
72 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileName
, destination
);
73 } else if (importFileParamString
!=null ){
74 URI importFileParam
= new URI(importFileParamString
);
75 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileParam
, cdmDestination
);
77 URI importFileName
= new URI(importFileNameString
);
78 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importFileName
, cdmDestination
);
81 CdmDefaultImport
<JaxbImportConfigurator
> jaxbImport
=
82 new CdmDefaultImport
<JaxbImportConfigurator
>();
86 logger
.debug("Invoking Jaxb import");
88 jaxbImport
.invoke(jaxbImportConfigurator
, destination
, true);
89 } catch (URISyntaxException e
) {
94 private void invokeImport(URI importUri
, ICdmDataSource destination
) {
95 JaxbImportConfigurator jaxbImportConfigurator
;
96 if (destination
!= null){
97 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importUri
, destination
);
99 jaxbImportConfigurator
= JaxbImportConfigurator
.NewInstance(importUri
, cdmDestination
);
102 CdmDefaultImport
<JaxbImportConfigurator
> jaxbImport
=
103 new CdmDefaultImport
<JaxbImportConfigurator
>();
107 logger
.debug("Invoking Jaxb import");
109 jaxbImport
.invoke(jaxbImportConfigurator
, destination
, true);
114 private CdmApplicationController
initDb(ICdmDataSource db
) {
117 CdmApplicationController appCtrInit
= null;
119 appCtrInit
= TestDatabase
.initDb(db
, DbSchemaValidation
.CREATE
, false);
125 // Load test data to DB
126 private void loadTestData(CdmApplicationController appCtrInit
) {
128 TestDatabase
.loadTestData("", appCtrInit
);
131 public static String
chooseFile(String
[] args
) {
134 for (String dest
: args
){
135 if (dest
.endsWith(".xml")){
145 public static void main(String
[] args
) {
147 JaxbImportActivator jia
= new JaxbImportActivator();
148 ICdmDataSource destination
= CdmDestinations
.chooseDestination(args
) != null ? CdmDestinations
.chooseDestination(args
) : cdmDestination
;
149 String fileStr
= chooseFile(args
)!= null ?
chooseFile(args
) : importFileNameString
;
150 File file
= new File(fileStr
);
152 URI uri
= file
.toURI();
153 System
.out
.println(new File(uri
).exists());
154 if (! new File(uri
).exists()){
155 System
.out
.println("File does not exist! Exit");
158 jia
.invokeImport(uri
, destination
);