3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.remoting
.server
;
13 import java
.io
.IOException
;
15 import org
.apache
.commons
.io
.FileUtils
;
16 import org
.apache
.commons
.lang
.StringEscapeUtils
;
18 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationUtils
;
19 import eu
.etaxonomy
.cdm
.config
.CdmPersistentXMLSource
.CdmSourceProperties
;
20 import eu
.etaxonomy
.cdm
.database
.CdmPersistentDataSource
;
27 public class CDMServerUtils
{
30 public static String
convertEditorToServerConfig() {
31 StringBuilder configStringBuilder
= new StringBuilder();
32 configStringBuilder
.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?> " + System
.lineSeparator());
33 configStringBuilder
.append("<!-- DO NOT EDIT THIS FILE MANUALLY. -->");
34 configStringBuilder
.append("<!-- It is created by the Taxonomic Editor for launching a managed CDM Server. -->");
35 configStringBuilder
.append("<beans xmlns=\"http://www.springframework.org/schema/beans\"" + System
.lineSeparator());
36 configStringBuilder
.append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" + System
.lineSeparator());
37 configStringBuilder
.append(" xmlns:tx=\"http://www.springframework.org/schema/tx\"" + System
.lineSeparator());
38 configStringBuilder
.append(" xmlns:context=\"http://www.springframework.org/schema/context\"" + System
.lineSeparator());
39 configStringBuilder
.append(" xsi:schemaLocation=\"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" + System
.lineSeparator());
40 configStringBuilder
.append(" http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd" + System
.lineSeparator());
41 configStringBuilder
.append(" http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" + System
.lineSeparator());
42 configStringBuilder
.append("\">" + System
.lineSeparator());
43 configStringBuilder
.append(" <bean id=\"dataSourceProperties\" class=\"eu.etaxonomy.cdm.remote.config.DataSourceProperties\">" + System
.lineSeparator());
44 configStringBuilder
.append(" <property name=\"propsMap\">" + System
.lineSeparator());
45 configStringBuilder
.append(" <map/>" + System
.lineSeparator());
46 configStringBuilder
.append(" </property>" + System
.lineSeparator());
47 configStringBuilder
.append(" </bean>" + System
.lineSeparator());
49 for(CdmPersistentDataSource dataSource
: CdmPersistentDataSource
.getAllDataSources()) {
50 String beanId
= dataSource
.getName();
51 String user
= dataSource
.getUsername();
52 String password
= dataSource
.getPassword();
53 String driverClass
= dataSource
.getCdmSourceProperty(CdmSourceProperties
.DRIVER_CLASS
);
54 String jdbcUrl
= StringEscapeUtils
.escapeXml(dataSource
.getCdmSourceProperty(CdmSourceProperties
.URL
));
55 configStringBuilder
.append(" <bean id=\"" + beanId
+ "\" lazy-init=\"true\" class=\"com.mchange.v2.c3p0.ComboPooledDataSource\">" + System
.lineSeparator());
56 configStringBuilder
.append(" <property name=\"driverClass\" value=\"" + driverClass
+ "\"/>" + System
.lineSeparator());
57 configStringBuilder
.append(" <property name=\"user\" value=\"" + user
+ "\"/>" + System
.lineSeparator());
58 configStringBuilder
.append(" <property name=\"password\" value=\"" + password
+ "\"/>" + System
.lineSeparator());
59 configStringBuilder
.append(" <property name=\"jdbcUrl\" value=\"" + jdbcUrl
+ "\"/>" + System
.lineSeparator());
60 configStringBuilder
.append(" </bean>" + System
.lineSeparator());
63 configStringBuilder
.append("</beans>" + System
.lineSeparator());
65 return configStringBuilder
.toString();
68 public static File
writeManagedServerConfig(String config
, String fileName
) throws IOException
{
69 File managedConfigFile
= new File(CdmApplicationUtils
.getWritableResourceDir(), fileName
);
70 if(managedConfigFile
.exists()) {
71 managedConfigFile
.delete();
73 if(managedConfigFile
.createNewFile()) {
74 FileUtils
.writeStringToFile(managedConfigFile
, config
);
76 return managedConfigFile
;