update JaxbImportActivator
[cdmlib-apps.git] / app-import / src / main / java / eu / etaxonomy / cdm / app / jaxb / JaxbExportActivator.java
1 /**
2 * Copyright (C) 2008 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9
10 package eu.etaxonomy.cdm.app.jaxb;
11
12 import java.io.File;
13 import java.io.FileNotFoundException;
14 import java.io.FileOutputStream;
15 import java.io.OutputStreamWriter;
16 import java.io.PrintWriter;
17 import java.io.UnsupportedEncodingException;
18 import java.net.URI;
19
20 import org.apache.log4j.Logger;
21
22 import eu.etaxonomy.cdm.api.application.CdmApplicationController;
23 import eu.etaxonomy.cdm.app.common.CdmDestinations;
24 import eu.etaxonomy.cdm.app.util.TestDatabase;
25 import eu.etaxonomy.cdm.database.DbSchemaValidation;
26 import eu.etaxonomy.cdm.database.ICdmDataSource;
27 import eu.etaxonomy.cdm.io.common.CdmDefaultExport;
28 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
29
30 /**
31 * @author a.babadshanjan
32 * @created 25.09.2008
33 */
34 public class JaxbExportActivator {
35
36 /* SerializeFrom DB **/
37 // private static final ICdmDataSource cdmSource = CdmDestinations.localH2();
38 private static final ICdmDataSource cdmSource = CdmDestinations.cdm_production_flora_deutschland();
39
40 // Export:
41 private static String exportFileName = "file:/F:/data/redlist/standardliste/standardliste_jaxb.xml";
42
43 /** NUMBER_ROWS_TO_RETRIEVE = 0 is the default case to retrieve all rows.
44 * For testing purposes: If NUMBER_ROWS_TO_RETRIEVE >0 then retrieve
45 * as many rows as specified for agents, references, etc.
46 * Only root taxa and no synonyms and relationships are retrieved. */
47 private static final int NUMBER_ROWS_TO_RETRIEVE = 0;
48
49 private static final Logger logger = Logger.getLogger(JaxbImportActivator.class);
50
51 private void invokeExport(ICdmDataSource sourceParam, URI uri) {
52 JaxbExportConfigurator jaxbExportConfigurator;
53 if (uri !=null && sourceParam != null){
54 jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(sourceParam, uri);
55 }else if (sourceParam != null){
56 jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(sourceParam, URI.create(exportFileName));
57 } else if (uri !=null ){
58 jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(cdmSource, uri);
59 } else{
60 jaxbExportConfigurator = JaxbExportConfigurator.NewInstance(cdmSource, URI.create(exportFileName));
61 }
62
63
64 CdmDefaultExport<JaxbExportConfigurator> jaxbExport =
65 new CdmDefaultExport<JaxbExportConfigurator>();
66
67
68 // invoke export
69 logger.debug("Invoking Jaxb export");
70 jaxbExport.invoke(jaxbExportConfigurator);
71
72 }
73 public static String chooseFile(String[] args) {
74 if(args == null)
75 return null;
76 for (String dest: args){
77 if (dest.endsWith(".xml")){
78 return args[0];
79 }
80 }
81 return null;
82 }
83
84
85
86
87 private CdmApplicationController initDb(ICdmDataSource db) {
88
89 // Init source DB
90 CdmApplicationController appCtrInit = TestDatabase.initDb(db, DbSchemaValidation.VALIDATE, false);
91
92 return appCtrInit;
93 }
94
95
96 // Load test data to DB
97 private void loadTestData(CdmApplicationController appCtrInit) {
98 TestDatabase.loadTestData("", appCtrInit);
99 }
100
101
102 /**
103 * @param args
104 */
105 public static void main(String[] args) {
106
107 JaxbExportActivator sc = new JaxbExportActivator();
108 ICdmDataSource source = CdmDestinations.chooseDestination(args) != null ? CdmDestinations.chooseDestination(args) : cdmSource;
109 String file = chooseFile(args);
110 if (file == null){
111 file = exportFileName;
112 }
113 URI uri = URI.create(file);
114 try {
115 File myFile = new File(uri);
116 PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(myFile), "UTF8"), true);
117 sc.initDb(source);
118
119 sc.invokeExport(source, uri);
120 } catch (UnsupportedEncodingException e) {
121 // TODO Auto-generated catch block
122 e.printStackTrace();
123 } catch (FileNotFoundException e) {
124 // TODO Auto-generated catch block
125 e.printStackTrace();
126 }
127
128 }
129
130 }