Revision 5a20c932
Added by Andreas Müller almost 4 years ago
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java | ||
---|---|---|
41 | 41 |
import eu.etaxonomy.cdm.api.application.CdmApplicationState; |
42 | 42 |
import eu.etaxonomy.cdm.config.CdmSourceException; |
43 | 43 |
import eu.etaxonomy.cdm.config.ConfigFileUtil; |
44 |
import eu.etaxonomy.cdm.config.ICdmSource; |
|
44 | 45 |
import eu.etaxonomy.cdm.database.CdmPersistentDataSource; |
45 | 46 |
import eu.etaxonomy.cdm.database.ICdmDataSource; |
46 | 47 |
import eu.etaxonomy.cdm.model.metadata.CdmMetaData; |
... | ... | |
96 | 97 |
this.port = parameterObject.getPort(); |
97 | 98 |
this.prefix = parameterObject.getPrefix(); |
98 | 99 |
this.ignoreCdmLibVersion = parameterObject.isIgnoreCdmLibVersion(); |
99 |
instances = new ArrayList<>(); |
|
100 |
this.instances = new ArrayList<>(); |
|
101 |
} |
|
102 |
|
|
103 |
public CdmInstanceInfo addInstance(String name, ICdmDataSource dataSource) { |
|
104 |
CdmInstanceInfo cii = new CdmInstanceInfo(name, dataSource); |
|
105 |
instances.add(cii); |
|
106 |
return cii; |
|
100 | 107 |
} |
101 | 108 |
|
102 | 109 |
public CdmInstanceInfo addInstance(String name, String basePath) { |
103 |
String _basePath = basePath; |
|
104 |
if(isLocalhostMgd()) { |
|
105 |
_basePath = ""; |
|
106 |
} |
|
107 |
CdmInstanceInfo cii = new CdmInstanceInfo(name, _basePath); |
|
110 |
CdmInstanceInfo cii = new CdmInstanceInfo(name, basePath); |
|
108 | 111 |
instances.add(cii); |
109 | 112 |
return cii; |
110 | 113 |
} |
... | ... | |
134 | 137 |
} |
135 | 138 |
Collections.sort(instances, new Comparator<CdmInstanceInfo>() { |
136 | 139 |
@Override |
137 |
public int compare(CdmInstanceInfo cii1, CdmInstanceInfo cii2) |
|
138 |
{ |
|
140 |
public int compare(CdmInstanceInfo cii1, CdmInstanceInfo cii2){ |
|
139 | 141 |
return cii1.getName().toString().compareTo(cii2.getName().toString()); |
140 | 142 |
} |
141 | 143 |
}); |
... | ... | |
237 | 239 |
for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){ |
238 | 240 |
String datasourceNCName = CdmServerUtils.xmlNCNamefrom(dataSource.getName()); |
239 | 241 |
logger.info("Adding local instance " + dataSource.getName() + " as " + datasourceNCName); |
240 |
addInstance(datasourceNCName, datasourceNCName);
|
|
242 |
addInstance(datasourceNCName, dataSource);
|
|
241 | 243 |
} |
242 | 244 |
} |
243 | 245 |
|
... | ... | |
258 | 260 |
return null; |
259 | 261 |
} |
260 | 262 |
|
261 |
public CdmRemoteSource getCdmRemoteSource(CdmInstanceInfo instance, int port) { |
|
263 |
public ICdmRemoteSource getCdmRemoteSource(CdmInstanceInfo instance, int port) {
|
|
262 | 264 |
if(instance != null) { |
263 |
return CdmRemoteSource.NewInstance(name, |
|
264 |
server, |
|
265 |
port, |
|
266 |
instance.getBasePath() |
|
267 |
); |
|
265 |
if (instance.getDataSource()!=null){ |
|
266 |
return CdmRemoteLocalhostSource.NewInstance(name, |
|
267 |
server, |
|
268 |
port, |
|
269 |
instance.name |
|
270 |
); |
|
271 |
}else{ |
|
272 |
return CdmRemoteSource.NewInstance(name, |
|
273 |
server, |
|
274 |
port, |
|
275 |
instance.getBasePath() |
|
276 |
); |
|
277 |
} |
|
268 | 278 |
} |
269 | 279 |
return null; |
270 | 280 |
} |
... | ... | |
282 | 292 |
} |
283 | 293 |
|
284 | 294 |
public boolean pingInstance(CdmInstanceInfo instance, int port) throws CdmServerException { |
285 |
ICdmRemoteSource cdmRemoteSource = getCdmRemoteSource(instance, port);
|
|
295 |
ICdmSource cdmRemoteSource = getCdmRemoteSource(instance, port); |
|
286 | 296 |
try { |
287 | 297 |
if(cdmRemoteSource != null && cdmRemoteSource.checkConnection()) { |
288 | 298 |
logger.info("[CDM-Server] Running @ " + server + ":" + port + " for instance " + instance); |
... | ... | |
298 | 308 |
|
299 | 309 |
public int compareDbSchemaVersion(CdmInstanceInfo instance, int port) throws CdmServerException { |
300 | 310 |
|
301 |
ICdmRemoteSource crs = getCdmRemoteSource(instance, port);
|
|
302 |
String dbSchemaVersion;
|
|
311 |
ICdmSource remoteSource = getCdmRemoteSource(instance, port);
|
|
312 |
String remoteDbSchemaVersion;
|
|
303 | 313 |
try { |
304 |
dbSchemaVersion = crs.getDbSchemaVersion();
|
|
314 |
remoteDbSchemaVersion = remoteSource.getDbSchemaVersion();
|
|
305 | 315 |
} catch (CdmSourceException e) { |
306 | 316 |
throw new CdmServerException(e); |
307 | 317 |
} |
308 | 318 |
|
309 |
|
|
310 |
if(dbSchemaVersion != null) { |
|
311 |
return CdmMetaData.compareVersion(dbSchemaVersion, CdmMetaData.getDbSchemaVersion(), 3, null); |
|
319 |
if(remoteDbSchemaVersion != null) { |
|
320 |
return CdmMetaData.compareVersion(remoteDbSchemaVersion, CdmMetaData.getDbSchemaVersion(), 3, null); |
|
312 | 321 |
} else { |
313 |
throw new CdmServerException("Cannot determine editor db. schema version");
|
|
322 |
throw new CdmServerException("Cannot determine editor db schema version"); |
|
314 | 323 |
} |
315 | 324 |
} |
316 | 325 |
|
... | ... | |
413 | 422 |
} |
414 | 423 |
|
415 | 424 |
return serverList; |
416 |
|
|
417 |
|
|
418 | 425 |
} |
419 | 426 |
|
420 | 427 |
private static List<CdmServerInfoConfig> createDefaultServerConfigList() { |
... | ... | |
449 | 456 |
return instances; |
450 | 457 |
} |
451 | 458 |
|
452 |
public static CdmRemoteSource getDevServerRemoteSource() {
|
|
459 |
public static ICdmSource getDevServerRemoteSource() {
|
|
453 | 460 |
String value = System.getProperty("cdm.server.dev.port"); |
454 | 461 |
boolean available = false; |
455 | 462 |
CdmInstanceInfo devInstance = null; |
... | ... | |
486 | 493 |
*/ |
487 | 494 |
private final String basePath; |
488 | 495 |
|
496 |
private final ICdmDataSource dataSource; |
|
497 |
|
|
489 | 498 |
public CdmInstanceInfo(String name, String basePath) { |
490 | 499 |
this.name = name; |
491 | 500 |
this.basePath = basePath; |
501 |
this.dataSource = null; |
|
502 |
} |
|
503 |
|
|
504 |
public CdmInstanceInfo(String name, ICdmDataSource dataSource) { |
|
505 |
this.name = name; |
|
506 |
this.basePath = ""; |
|
507 |
this.dataSource = dataSource; |
|
492 | 508 |
} |
493 | 509 |
|
494 | 510 |
public String getName() { |
... | ... | |
498 | 514 |
public String getBasePath() { |
499 | 515 |
return basePath; |
500 | 516 |
} |
517 |
|
|
518 |
public ICdmDataSource getDataSource() { |
|
519 |
return dataSource; |
|
520 |
} |
|
501 | 521 |
} |
502 | 522 |
} |
Also available in: Unified diff
ref #9025 improve localhost mgd. handling for schema create and update and some general minor improvements and refactorings