Project

General

Profile

Download (5.59 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2009 EDIT
4
* European Distributed Institute of Taxonomy 
5
* http://www.e-taxonomy.eu
6
* 
7
* The contents of this file are subject to the Mozilla Public License Version 1.1
8
* See LICENSE.TXT at the top of this package for the full license terms.
9
*/
10
package eu.etaxonomy.cdm.print;
11

    
12
import java.io.File;
13
import java.sql.SQLException;
14
import java.util.UUID;
15

    
16
import org.junit.Assert;
17

    
18
import org.apache.log4j.Logger;
19
import org.jdom.Element;
20
import org.springframework.core.io.ClassPathResource;
21
import org.springframework.core.io.Resource;
22

    
23
import eu.etaxonomy.cdm.api.application.CdmApplicationDefaultController;
24
import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
25
import eu.etaxonomy.cdm.common.AccountStore;
26
import eu.etaxonomy.cdm.common.CdmUtils;
27
import eu.etaxonomy.cdm.common.monitor.DefaultProgressMonitor;
28
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
29
import eu.etaxonomy.cdm.database.CdmDataSource;
30
import eu.etaxonomy.cdm.database.DbSchemaValidation;
31
import eu.etaxonomy.cdm.database.ICdmDataSource;
32
import eu.etaxonomy.cdm.io.api.application.CdmIoApplicationController;
33
import eu.etaxonomy.cdm.io.common.CdmDefaultIOBase;
34
import eu.etaxonomy.cdm.model.name.NomenclaturalCode;
35
import eu.etaxonomy.cdm.print.out.pdf.PdfOutputModule;
36
import eu.etaxonomy.cdm.print.out.xml.XMLOutputModule;
37

    
38
/**
39
 * @author l.morris
40
 * @date Mar 7, 2013
41
 *
42
 */
43
public class PubTest {
44
	
45
	private static final Logger logger = Logger.getLogger(PubTest.class);
46

    
47
	private static PublishConfigurator configurator; 
48
	
49
	private static Publisher publisher;
50
	
51
	public static final String DEFAULT_PRINT_APPLICATION_CONTEXT_RESOURCE = "/eu/etaxonomy/cdm/defaultPrintApplicationContext.xml";
52
	
53
	
54
	/**
55
	 * @throws java.lang.Exception
56
	 */
57
	public static void setUpBeforeClass() throws Exception {
58
		
59
		ICdmDataSource dataSource = customDataSource();
60
		
61
		//Resource applicationContextResource, ICdmDataSource dataSource, DbSchemaValidation dbSchemaValidation, boolean omitTermLoading, IProgressMonitor progressMonitor)
62
		IProgressMonitor progressMonitor = DefaultProgressMonitor.NewInstance();
63
		
64
		//Connecting to a CDMDataSource
65
		///Resource resource =  new ClassPathResource(CdmDefaultIOBase.DEFAULT_IO_APPLICATION_CONTEXT_RESOURCE);
66
		Resource resource =  new ClassPathResource(DEFAULT_PRINT_APPLICATION_CONTEXT_RESOURCE);
67
		ICdmApplicationConfiguration app = CdmIoApplicationController.NewInstance(resource, dataSource, DbSchemaValidation.VALIDATE, false, progressMonitor);
68
		//ICdmApplicationConfiguration app = CdmApplicationController.NewInstance(resource, dataSource, DbSchemaValidation.VALIDATE, false, progressMonitor);
69
		//configurator = PublishConfigurator.NewLocalInstance(CdmStore.getCurrentApplicationConfiguration());//from taxeditor GeneratePdfHandler
70
		configurator = PublishConfigurator.NewLocalInstance(app);
71
				
72
		IXMLEntityFactory factory = configurator.getFactory();
73
		
74
		UUID taxonNodeUuid = UUID.fromString("a605e87e-113e-4ebd-ad97-f086b734b4da");//5168a18b-c0b1-44cc-80aa-7a5572fefe04
75
		Element taxonNodeElement = factory.getTaxonNode(taxonNodeUuid);
76
		configurator.addSelectedTaxonNodeElements(taxonNodeElement);
77
		
78
		configurator.setDoPublishEntireBranches(false);
79
		
80
		configurator.addOutputModule(new PdfOutputModule());
81
		configurator.addOutputModule(new XMLOutputModule());
82
		
83
		
84
		//configurator.setWebserviceUrl("http://localhost:8080/");
85
		
86
//		Element selectedTaxonNodeElement = new Element("TaxonNode");
87
//		
88
//		configurator.addSelectedTaxonNodeElements(selectedTaxonNodeElement);
89
		
90
		configurator.setExportFolder(new File("/Users/nho/tmp/"));
91
				
92
	}
93
	
94
    private static ICdmDataSource customDataSource() {
95

    
96
    	
97
//    	pwd = AccountStore.readOrStorePassword(cdmServer, cdmDB, cdmUserName,pwd);
98
       String dataSourceName = CdmUtils.readInputLine("Database name: ");
99
       String username = CdmUtils.readInputLine("Username: ");
100
       String password = CdmUtils.readInputLine("Password: ");
101
       
102
       dataSourceName = (dataSourceName.equals("")) ? "cdm_test4" : dataSourceName;
103
       username = (username.equals("")) ? "ljm" : username;
104
       
105
       ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("160.45.63.201", "cdm_edit_flora_central_africa", 3306, "edit", password, NomenclaturalCode.ICNAFP);
106
       //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", dataSourceName, 3306, username, password, NomenclaturalCode.ICBN);
107
       //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("127.0.0.1", "cdm_edit_cichorieae", 3306, "ljm", password, NomenclaturalCode.ICBN);
108
       //ICdmDataSource dataSource = CdmDataSource.NewMySqlInstance("160.45.63.201", "cdm_edit_cichorieae", 3306, "edit", password, NomenclaturalCode.ICBN);
109
       boolean connectionAvailable;
110
       try {
111
           connectionAvailable = dataSource.testConnection();
112
           logger.debug("LORNA connection available " + connectionAvailable);
113
           Assert.assertTrue("Testdatabase is not available", connectionAvailable);
114

    
115
       } catch (ClassNotFoundException e1) {
116
           // TODO Auto-generated catch block
117
           e1.printStackTrace();
118
       } catch (SQLException e1) {
119
           // TODO Auto-generated catch block
120
           e1.printStackTrace();
121
       }
122
       return dataSource;
123
    }
124

    
125

    
126
	/**
127
	 * @param args
128
	 */
129
	public static void main(String[] args) {
130
		
131
		PubTest pubTest = new PubTest();
132
		try {
133
			pubTest.setUpBeforeClass();
134
		} catch (Exception e) {
135
			// TODO Auto-generated catch block
136
			e.printStackTrace();
137
		}
138
		// TODO Auto-generated method stub
139

    
140
	}
141

    
142
}
(1-1/3)