4 package eu
.etaxonomy
.cdm
.database
.update
;
6 import org
.apache
.log4j
.Logger
;
8 import eu
.etaxonomy
.cdm
.api
.application
.CdmApplicationController
;
9 import eu
.etaxonomy
.cdm
.common
.AccountStore
;
10 import eu
.etaxonomy
.cdm
.common
.monitor
.DefaultProgressMonitor
;
11 import eu
.etaxonomy
.cdm
.database
.CdmDataSource
;
12 import eu
.etaxonomy
.cdm
.database
.DbSchemaValidation
;
13 import eu
.etaxonomy
.cdm
.database
.ICdmDataSource
;
14 import eu
.etaxonomy
.cdm
.io
.api
.application
.CdmIoApplicationController
;
15 import eu
.etaxonomy
.cdm
.model
.taxon
.Classification
;
21 public class BgbmInstancesUpdater
{
22 private static final Logger logger
= Logger
.getLogger(BgbmInstancesUpdater
.class);
24 private static String integrationServer
= "160.45.63.201";
25 private static String productionServer
= "160.45.63.171";
26 // private static String testServer = "160.45.63.175";
27 private static String testServer
= "edit-test.bgbm.fu-berlin.de"; //preliminary
29 private static String
[] integrationDatabases
= new String
[]{/**/"cdm_integration_cichorieae",
30 "cdm_integration_cyprus", "cdm_integration_diptera", "cdm_integration_flora_malesiana",
31 "cdm_integration_palmae"};
33 private static String
[] testDatabases
= new String
[]{"cdm_bgbm_edit_usergroup","cdm_campanulaceae",
34 "cdm_campanulaceae_082014","cdm_caryo", "cdm_col","cdm_corvidae","cdm_cyprus","cdm_demo1","cdm_demo2",
35 "cdm_demo3", "cdm_edit_algaterra","cdm_edit_cichorieae","cdm_edit_ildis","cdm_edit_flora_central_africa",
36 "cdm_flora_guianas","cdm_flore_gabon","cdm_edit_flora_malesiana","cdm_edit_globis","cdm_edit_palmae",
37 "cdm_ipni_Caryophyllaceae","cdm_mt_moose","cdm_mt_standardliste",
38 "cdm_pesi_euromed", "cdm_pesi_erms","cdm_pesi_fauna_europaea",
39 "cdm_proibiosphere_chenopodium_pilot","cdm_rl_mammalia","cdm_rl_animals","cdm_test_eckhard","cdm_test_euromed","cdm_test_gabi",
40 "cdm_test_norbert","cdm_test_sabine","cdm_vibrant_index"};
43 private static String
[] testDatabasesOthers
= new String
[]{"cdm_caryo_amaranthaceae",
44 "cdm_caryo_caryophyllales","cdm_flora_malesiana_prospective","cdm_pesi_all","cdm_salvador",
47 private static String
[] productionDatabases
= new String
[]{
48 "cdm_col", "cdm_production_acantholimon","cdm_production_algaterra",
49 "cdm_production_amaranthaceae","cdm_production_cactaceae",
50 "cdm_production_campanulaceae","cdm_production_caryophyllales",
51 "cdm_production_chenopodiaceae","cdm_production_cichorieae",
52 "cdm_production_corvidae","cdm_production_cyprus",
53 "cdm_production_dianthus","cdm_production_diptera",
54 "cdm_production_flora_central_africa","cdm_production_flora_guianas",
55 "cdm_production_flora_malesiana","cdm_production_flora_malesiana_prospective",
56 "cdm_production_flore_gabon",
57 "cdm_production_globis","cdm_production_nyctaginaceae",
58 "cdm_production_palmae","cdm_production_piB_campylopus_pilot",
59 "cdm_production_piB_eupolybothrus_pilot","cdm_production_piB_lactarius_pilot",
60 "cdm_production_piB_loranthaceae","cdm_production_piB_nephrolepis_pilot",
61 "cdm_production_piB_spiders_pilot","cdm_production_polygonaceae",
62 "cdm_production_proibiosphere_ants_pilot","cdm_production_proibiosphere_chenopodium_pilot",
63 "cdm_production_rl_armeria_demo","cdm_production_rl_lumbricidae",
64 "cdm_production_rl_odonata_demo","cdm_production_rl_standardliste",
65 "cdm_production_tamaricaceae","cdm_production_vibrant_index"};
67 static BgbmServer bgbmServer
= BgbmServer
.TEST
;
71 static String username
= "edit";
78 public static void main(String
[] args
) {
79 DbSchemaValidation schema
= DbSchemaValidation
.VALIDATE
;
80 String server
= bgbmServer
.server
;
81 for (String database
: bgbmServer
.databases
){
82 boolean result
= true;
83 logger
.warn("Update: " + database
+ " ... ");
84 ICdmDataSource dataSource
= CdmDataSource
.NewMySqlInstance(server
, database
, username
, AccountStore
.readOrStorePassword(server
, database
, username
, null));
86 CdmUpdater updater
= new CdmUpdater();
87 result
= updater
.updateToCurrentVersion(dataSource
, DefaultProgressMonitor
.NewInstance());
88 CdmApplicationController appCtr
= CdmIoApplicationController
.NewInstance(dataSource
,schema
);
89 System
.out
.println(appCtr
.getClassificationService().count(Classification
.class));
90 } catch (Exception e
) {
95 logger
.warn("Problem");
99 logger
.warn("Update: " + database
+ " ... DONE ");
105 private enum BgbmServer
{
106 INTEGRATION (integrationServer
, integrationDatabases
),
107 TEST(testServer
,testDatabases
),
108 PRODUCTION(productionServer
,productionDatabases
);
109 private String server
;
110 private String
[] databases
;
111 private BgbmServer(String server
, String
[] databases
){
112 this.server
= server
;
113 this.databases
= databases
;