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.
9 package eu
.etaxonomy
.cdm
.app
.jaxb
;
12 import java
.io
.FileNotFoundException
;
13 import java
.io
.FileOutputStream
;
14 import java
.io
.OutputStreamWriter
;
15 import java
.io
.PrintWriter
;
16 import java
.io
.UnsupportedEncodingException
;
18 import org
.apache
.logging
.log4j
.LogManager
;
19 import org
.apache
.logging
.log4j
.Logger
;
21 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
22 import eu
.etaxonomy
.cdm
.app
.common
.CdmDestinations
;
23 import eu
.etaxonomy
.cdm
.app
.common
.tasks
.TestDatabase
;
24 import eu
.etaxonomy
.cdm
.common
.URI
;
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
;
31 * @author a.babadshanjan
34 public class JaxbExportActivator
{
36 /* SerializeFrom DB **/
37 // private static final ICdmDataSource cdmSource = CdmDestinations.localH2();
38 private static final ICdmDataSource cdmSource
= CdmDestinations
.cdm_production_flora_deutschland();
41 private static String exportFileName
= "file:/F:/data/redlist/standardliste/standardliste_jaxb.xml";
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;
49 private static final Logger logger
= LogManager
.getLogger();
51 private void invokeExport(ICdmDataSource sourceParam
, File file
) {
52 // String server = "localhost";
53 // String database = "EDITimport";
54 // String username = "edit";
55 // sourceParam = CdmDataSource.NewMySqlInstance(server, database, username, AccountStore.readOrStorePassword(server, database, username, null));
57 JaxbExportConfigurator jaxbExportConfigurator
;
58 if (file
!=null && sourceParam
!= null){
59 jaxbExportConfigurator
= JaxbExportConfigurator
.NewInstance(sourceParam
, file
);
60 }else if (sourceParam
!= null){
61 jaxbExportConfigurator
= JaxbExportConfigurator
.NewInstance(sourceParam
, new File(exportFileName
));
62 } else if (file
!=null ){
63 jaxbExportConfigurator
= JaxbExportConfigurator
.NewInstance(cdmSource
, file
);
65 jaxbExportConfigurator
= JaxbExportConfigurator
.NewInstance(cdmSource
, new File(exportFileName
));
68 CdmDefaultExport
<JaxbExportConfigurator
> jaxbExport
=
69 new CdmDefaultExport
<JaxbExportConfigurator
>();
72 logger
.debug("Invoking Jaxb export");
73 jaxbExport
.invoke(jaxbExportConfigurator
);
76 public static String
chooseFile(String
[] args
) {
80 for (String dest
: args
){
81 if (dest
.endsWith(".xml")){
88 private CdmApplicationController
initDb(ICdmDataSource db
) {
90 CdmApplicationController appCtrInit
= TestDatabase
.initDb(db
, DbSchemaValidation
.VALIDATE
, false);
94 // Load test data to DB
95 private void loadTestData(CdmApplicationController appCtrInit
) {
96 TestDatabase
.loadTestData("", appCtrInit
);
99 public static void main(String
[] args
) {
101 JaxbExportActivator sc
= new JaxbExportActivator();
102 ICdmDataSource source
= CdmDestinations
.chooseDestination(args
) != null ? CdmDestinations
.chooseDestination(args
) : cdmSource
;
103 String file
= chooseFile(args
);
105 file
= exportFileName
;
107 URI uri
= URI
.create(file
);
109 File myFile
= new File(uri
.getJavaUri());
110 PrintWriter writer
= new PrintWriter(new OutputStreamWriter(new FileOutputStream(myFile
), "UTF8"), true);
111 sc
.initDb(source
); //does this make sense here (it starts the appControler even if it is not needed later
113 sc
.invokeExport(source
, new File(file
));
114 } catch (UnsupportedEncodingException e
) {
115 // TODO Auto-generated catch block
117 } catch (FileNotFoundException e
) {
118 // TODO Auto-generated catch block