1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.deployment.service;
35
36 import java.util.ArrayList;
37 import java.util.HashMap;
38 import java.util.List;
39 import java.util.Locale;
40 import java.util.Map.Entry;
41
42 import net.sf.json.JSONObject;
43
44 import fr.paris.lutece.plugins.deployment.business.ServerApplicationInstance;
45 import fr.paris.lutece.plugins.deployment.util.ConstanteUtils;
46 import fr.paris.lutece.plugins.deployment.util.DeploymentUtils;
47 import fr.paris.lutece.portal.service.util.AppLogService;
48 import fr.paris.lutece.portal.service.util.AppPropertiesService;
49
50
51
52
53
54
55 public class DatabaseService implements IDatabaseService
56 {
57
58
59
60
61
62
63
64 @Override
65 public List<String> getDatabases( String strCodeApplication, ServerApplicationInstance serverApplicationInstance, Locale locale )
66 {
67
68 String strPlateformEnvironmentBaseUrl = AppPropertiesService.getProperty( ConstanteUtils.PROPERTY_ENVIRONMENT_PLATEFORM_BASE_URL );
69 List<String> listStrDatabases = new ArrayList<String>( );
70
71 String strWebserviceDatabasesJsonObjectName = AppPropertiesService.getProperty( ConstanteUtils.PROPERTY_WEBSERVICE_DATABASES_JSON_OBJECT_NAME );
72 String strWebserviceDatabasesJsonDictionaryName = AppPropertiesService.getProperty( ConstanteUtils.PROPERTY_WEBSERVICE_DATABASES_JSON_DICTIONARY_NAME );
73 String strJSONServerDatabases = null;
74
75 try
76 {
77 strJSONServerDatabases = DeploymentUtils.callPlateformEnvironmentWs( strPlateformEnvironmentBaseUrl + ConstanteUtils.CONSTANTE_SEPARATOR_SLASH
78 + DeploymentUtils.getPlateformUrlDatabases( strCodeApplication, serverApplicationInstance ) );
79 }
80 catch( Exception e )
81 {
82 AppLogService.error( e );
83 }
84
85 if ( strJSONServerDatabases != null )
86 {
87
88 boolean bExecute = false;
89 JSONObject jo = DeploymentUtils.getJSONOBject( strJSONServerDatabases );
90 String strWebserviceActionJsonPropery = AppPropertiesService.getProperty( ConstanteUtils.PROPERTY_WEBSERVICE_ACTION_RESULT_JSON_PROPERTY_RESULT );
91 if ( jo != null )
92 {
93 bExecute = jo.getBoolean( strWebserviceActionJsonPropery );
94 }
95
96 if ( bExecute )
97 {
98 listStrDatabases = DeploymentUtils.getJSONDictionary( strWebserviceDatabasesJsonObjectName, strWebserviceDatabasesJsonDictionaryName,
99 strJSONServerDatabases );
100 }
101
102 }
103
104 return listStrDatabases;
105
106 }
107
108
109
110
111
112
113 @Override
114 public HashMap<String, List<String>> getHashDatabases( String strCodeApplication,
115 HashMap<String, List<ServerApplicationInstance>> hashServerApplicationInstanceMysql, Locale locale )
116 {
117
118 HashMap<String, List<String>> hashDatabases = new HashMap<String, List<String>>( );
119 StringBuffer strKey;
120 List<String> lsDatabases;
121 for ( Entry<String, List<ServerApplicationInstance>> entry : hashServerApplicationInstanceMysql.entrySet( ) )
122 {
123
124 for ( ServerApplicationInstance serverApplicationInstance : entry.getValue( ) )
125 {
126
127 strKey = new StringBuffer( );
128 lsDatabases = getDatabases( strCodeApplication, serverApplicationInstance, locale );
129 strKey.append( serverApplicationInstance.getCodeEnvironment( ) );
130 strKey.append( "." );
131 strKey.append( serverApplicationInstance.getCode( ) );
132 strKey.append( "_" + serverApplicationInstance.getType( ) );
133
134 hashDatabases.put( strKey.toString( ), lsDatabases );
135 }
136
137 }
138 return hashDatabases;
139 }
140
141 }