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
.io
.FileNotFoundException
;
14 import java
.io
.FileOutputStream
;
15 import java
.io
.OutputStreamWriter
;
16 import java
.io
.PrintWriter
;
17 import java
.io
.UnsupportedEncodingException
;
20 import org
.apache
.log4j
.Logger
;
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
;
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
= Logger
.getLogger(JaxbImportActivator
.class);
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
);
60 jaxbExportConfigurator
= JaxbExportConfigurator
.NewInstance(cdmSource
, URI
.create(exportFileName
));
64 CdmDefaultExport
<JaxbExportConfigurator
> jaxbExport
=
65 new CdmDefaultExport
<JaxbExportConfigurator
>();
69 logger
.debug("Invoking Jaxb export");
70 jaxbExport
.invoke(jaxbExportConfigurator
);
73 public static String
chooseFile(String
[] args
) {
76 for (String dest
: args
){
77 if (dest
.endsWith(".xml")){
87 private CdmApplicationController
initDb(ICdmDataSource db
) {
90 CdmApplicationController appCtrInit
= TestDatabase
.initDb(db
, DbSchemaValidation
.VALIDATE
, false);
96 // Load test data to DB
97 private void loadTestData(CdmApplicationController appCtrInit
) {
98 TestDatabase
.loadTestData("", appCtrInit
);
105 public static void main(String
[] args
) {
107 JaxbExportActivator sc
= new JaxbExportActivator();
108 ICdmDataSource source
= CdmDestinations
.chooseDestination(args
) != null ? CdmDestinations
.chooseDestination(args
) : cdmSource
;
109 String file
= chooseFile(args
);
111 file
= exportFileName
;
113 URI uri
= URI
.create(file
);
115 File myFile
= new File(uri
);
116 PrintWriter writer
= new PrintWriter(new OutputStreamWriter(new FileOutputStream(myFile
), "UTF8"), true);
119 sc
.invokeExport(source
, uri
);
120 } catch (UnsupportedEncodingException e
) {
121 // TODO Auto-generated catch block
123 } catch (FileNotFoundException e
) {
124 // TODO Auto-generated catch block