From 15a62a2492739a4b64cc5f13316eaf224009f982 Mon Sep 17 00:00:00 2001 From: Cherian Mathew Date: Mon, 24 Aug 2015 11:13:33 +0200 Subject: [PATCH] #4073 Initial implementation of local cdm-server --- .../remoting/source/CdmServerInfo.java | 51 +++++++++--- .../taxeditor/editor/TaxonEditorInput.java | 39 +++++++-- .../ui/dialog/RemotingLoginDialog.java | 27 +++---- .../META-INF/MANIFEST.MF | 3 +- .../httpinvoker/BaseRemotingTest.java | 48 +++-------- .../taxeditor/httpinvoker/CDMServer.java | 79 +++++++++++++++++-- .../httpinvoker/CdmRemoteSourceTest.java | 15 ++-- .../taxeditor/httpinvoker/CdmServerTest.java | 9 +-- .../ui/dialogs/CdmServerInfoTest.java | 14 ++++ 9 files changed, 195 insertions(+), 90 deletions(-) diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java index 134d4f687..e599f2a0e 100644 --- a/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java +++ b/eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/remoting/source/CdmServerInfo.java @@ -28,6 +28,8 @@ import org.json.JSONException; import org.json.JSONObject; import eu.etaxonomy.cdm.config.CdmSourceException; +import eu.etaxonomy.cdm.database.CdmPersistentDataSource; +import eu.etaxonomy.cdm.database.ICdmDataSource; import eu.etaxonomy.taxeditor.remoting.server.CDMServerException; /** @@ -48,9 +50,9 @@ public class CdmServerInfo { private final static String NAME_TEST = "edit-test"; private final static String SERVER_TEST = "test.e-taxonomy.eu"; - private final static String SERVER_LOCALHOST = "localhost"; + public final static String SERVER_LOCALHOST = "localhost"; private final static String NAME_LOCALHOST = "localhost"; - private final static String NAME_LOCALHOST_MGD = "localhost mgd."; + public final static String NAME_LOCALHOST_MGD = "localhost mgd."; private final static String NAME_LOCALHOST_DEV = "localhost-dev"; private final static String NAME_INSTANCE_LOCALHOST_DEV = "local-dev"; @@ -63,6 +65,7 @@ public class CdmServerInfo { private final int port; private final List instances; + private static List cdmServerInfoList; public CdmServerInfo(String name, String server, int port) { this.name = name; @@ -80,10 +83,24 @@ public class CdmServerInfo { } public boolean isLocalhost() { - return name.startsWith(SERVER_LOCALHOST_DEV); + return name.startsWith(SERVER_LOCALHOST); } + + public boolean isLocalhostMgd() { + return NAME_LOCALHOST_MGD.equals(name); + } + public void refreshInstances() throws CDMServerException { instances.clear(); + if(isLocalhostMgd()) { + addInstancesFromDataSourcesConfig(); + } else { + addInstancesViaHttp(); + } + + } + + public void addInstancesViaHttp() throws CDMServerException { String url = "http://" + server + ":" + String.valueOf(port) + "/" + CDMSERVER_PREFIX + "/instances.jsp"; HttpClient client = new DefaultHttpClient(); @@ -138,6 +155,14 @@ public class CdmServerInfo { throw new CDMServerException(e); } } + } + + public void addInstancesFromDataSourcesConfig() { + + for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()){ + logger.warn("Adding local instance " + dataSource.getName()); + addInstance(dataSource.getName(), dataSource.getName()); + } } @@ -196,12 +221,14 @@ public class CdmServerInfo { } public static List getCdmServers() { - List cdmServerInfoList = new ArrayList(); - cdmServerInfoList.add(new CdmServerInfo(NAME_PRODUCTION, SERVER_PRODUCTION, 80)); - cdmServerInfoList.add(new CdmServerInfo(NAME_INTEGRATION, SERVER_INTEGRATION, 80)); - cdmServerInfoList.add(new CdmServerInfo(NAME_TEST, SERVER_TEST, 80)); - cdmServerInfoList.add(new CdmServerInfo(NAME_LOCALHOST, SERVER_LOCALHOST, 8080)); - cdmServerInfoList.add(new CdmServerInfo(NAME_LOCALHOST_MGD, SERVER_LOCALHOST,8080)); + if(cdmServerInfoList == null) { + cdmServerInfoList = new ArrayList(); + cdmServerInfoList.add(new CdmServerInfo(NAME_PRODUCTION, SERVER_PRODUCTION, 80)); + cdmServerInfoList.add(new CdmServerInfo(NAME_INTEGRATION, SERVER_INTEGRATION, 80)); + cdmServerInfoList.add(new CdmServerInfo(NAME_TEST, SERVER_TEST, 80)); + cdmServerInfoList.add(new CdmServerInfo(NAME_LOCALHOST, SERVER_LOCALHOST, 8080)); + cdmServerInfoList.add(new CdmServerInfo(NAME_LOCALHOST_MGD, SERVER_LOCALHOST,8080)); + } return cdmServerInfoList; } @@ -248,6 +275,12 @@ public class CdmServerInfo { public class CdmInstanceInfo { private final String name; + + /** + * The full path of the instance including the the prefix (if any). + * E.g. for an EDIT instance this would be something like "cdmserver/remoting" + * For a managed local server this would simply be "remoting" + */ private final String basePath; diff --git a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java index 8540c7d34..cbfe3cb7c 100644 --- a/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java +++ b/eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java @@ -10,6 +10,7 @@ package eu.etaxonomy.taxeditor.editor; import java.util.Arrays; +import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; @@ -27,6 +28,7 @@ import eu.etaxonomy.cdm.api.service.IClassificationService; import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.common.CdmBase; +import eu.etaxonomy.cdm.model.name.HomotypicalGroup; import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; import eu.etaxonomy.cdm.model.taxon.Synonym; @@ -102,7 +104,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI "taxon.rights", "taxon.sources", "taxon.descriptions", - "taxon.synonymRelations", + "taxon.synonymRelations.relatedFrom.name.homotypicalGroup.typifiedNames", "taxon.relationsToThisTaxon", "taxon.relationsFromThisTaxon", "taxon.taxonNodes", @@ -126,7 +128,29 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI private void initForTaxonBase(UUID taxonBaseUuid) { - TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(taxonBaseUuid); + + List taxonBasePropertyPaths = Arrays.asList(new String[] { + "annotations", + "markers", + "credits", + "extensions", + "rights", + "sources", + "descriptions", + "relationsToThisTaxon", + "relationsFromThisTaxon", + "taxonNodes", + "name.status", + "name.nomenclaturalReference", + "synonymRelations.relatedFrom.name.status.type", + "synonymRelations.relatedFrom.name.nomenclaturalReference.inReference", + "name.taxonBases", + "name.descriptions.descriptionElements", + "name.descriptions.markers" + + + }); + TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(taxonBaseUuid, taxonBasePropertyPaths); if (taxonBase != null){ if(taxonBase.isInstanceOf(Taxon.class)){ Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class); @@ -476,7 +500,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI @Override public Map> getPropertyPathsMap() { -// Map> propertyPathsMap = new HashMap>(); + Map> propertyPathsMap = new HashMap>(); // List taxonNameBasePropertyPaths = Arrays.asList(new String[] { // "status", // "taxonBases.taxonNodes", @@ -497,8 +521,13 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorI // "taxon.descriptions" // }); // propertyPathsMap.put(TaxonNode.class, taxonBasePropertyPaths); -// return propertyPathsMap; - return null; + List homotypicalGroupPropertyPaths = Arrays.asList(new String[] { + "typifiedNames.taxonBases.synonymRelations.relatedFrom.name", + "typifiedNames.taxonBases.synonymRelations.relatedFrom.name.status" + }); + propertyPathsMap.put(HomotypicalGroup.class, homotypicalGroupPropertyPaths); + return propertyPathsMap; +// return null; } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java index ef35781c7..ee7107e08 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/dialog/RemotingLoginDialog.java @@ -169,12 +169,6 @@ public class RemotingLoginDialog extends Dialog { xpndblcmpstAdvanced.setExpanded(false); - CdmRemoteSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource(); - if(devRemoteSource != null) { - CdmStore.connect(devRemoteSource, this); - isDevRemoteSource = true; - } - Display display = getParent().getDisplay(); while (!shlConnect.isDisposed()) { @@ -462,6 +456,16 @@ public class RemotingLoginDialog extends Dialog { } refreshCdmServer(); updatePort(); + CdmRemoteSource devRemoteSource = CdmServerInfo.getDevServerRemoteSource(); + if(devRemoteSource != null) { + String username = System.getProperty("cdm.server.dev.username"); + String password = System.getProperty("cdm.server.dev.password"); + if(username != null && !username.isEmpty() && password != null && !password.isEmpty()) { + txtLogin.setText(username); + txtPassword.setText(password); + CdmStore.connect(devRemoteSource, RemotingLoginDialog.this); + } + } } }); return Status.OK_STATUS; @@ -683,15 +687,6 @@ public class RemotingLoginDialog extends Dialog { private void readPrefCredentials() { String username, password; - if(isDevRemoteSource) { - username = System.getProperty("cdm.server.dev.username"); - password = System.getProperty("cdm.server.dev.password"); - if(username != null && !username.isEmpty() && password != null && !password.isEmpty()) { - txtLogin.setText(username); - txtPassword.setText(password); - return; - } - } IEclipsePreferences preferences = ConfigurationScope.INSTANCE.getNode(STORE_PREFERENCES_NODE); Preferences credentialsPrefs = preferences.node(LOGIN_NODE); username = credentialsPrefs.get(getUsernamePrefKey(), ""); @@ -713,7 +708,7 @@ public class RemotingLoginDialog extends Dialog { private void emptyCredentials() { txtLogin.setText(""); - txtLogin.setText(""); + txtPassword.setText(""); } private String getUsernamePrefKey() { diff --git a/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF b/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF index efb306994..c59f7b08e 100644 --- a/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF +++ b/eu.etaxonomy.taxeditor.test/META-INF/MANIFEST.MF @@ -30,5 +30,4 @@ Bundle-ClassPath: ., lib/unitils-dbmaintainer-3.4.2.jar, lib/unitils-dbunit-3.4.2.jar, lib/unitils-spring-3.4.2.jar, - lib/dbunit-2.4.9.jar -Export-Package: org.hamcrest + lib/dbunit-2.4.9.jar \ No newline at end of file diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java index 59a9ad11c..b8559b1eb 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/BaseRemotingTest.java @@ -21,7 +21,6 @@ import net.sf.ehcache.CacheManager; import org.apache.log4j.Logger; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.Platform; -import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.osgi.framework.Bundle; @@ -68,10 +67,6 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { public static final Resource SERVER_PROPERTIES_FILE = new ClassPathResource("server.properties"); -// public static final Resource EDITOR_DATASOURCES_FILE = -// new ClassPathResource(".cdmLibrary/writableResources/cdm.datasources.xml"); - - //private static CdmApplicationRemoteController remoteApplicationController; private static ICdmRemoteSource cdmRemoteSource; private static CdmPersistentRemoteSource remotePersistentSource; @@ -88,6 +83,8 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { private static String user = DEFAULT_USER; private static String password = DEFAULT_PASSWORD; + protected static CDMServer cdmServer; + @BeforeClass public static void initializeBaseRemotingTest() { @@ -101,36 +98,21 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { File userHomeDir = new File(FileLocator.resolve(userHomeDirURL).toURI()); userHomeDirPath = userHomeDir.getAbsolutePath(); - - - logger.info("Setting user.home to " + userHomeDirPath); - System.setProperty(userHomeKey, userHomeDirPath); - - CDMServer cdmServer = CDMServer.getInstance(); - - - Properties prop = new Properties(); - URL serverPropertiesURL = bundle.getEntry("src/test/resources/server.properties"); File serverPropertiesFile = new File(FileLocator.resolve(serverPropertiesURL).toURI()); InputStream inputStream = new FileInputStream(serverPropertiesFile); + Properties prop = new Properties(); if (inputStream != null) { prop.load(inputStream); inputStream.close(); } - if(prop.getProperty("httpPort") != null) { - cdmServer.setHttpPort(Integer.valueOf(prop.getProperty("httpPort"))); - } + logger.info("Setting user.home to " + userHomeDirPath); + System.setProperty(userHomeKey, userHomeDirPath); - if(prop.getProperty("stopPort") != null) { - cdmServer.setStopPort(Integer.valueOf(prop.getProperty("stopPort"))); - } + cdmServer = new CDMServer("cdmTest"); - if(prop.getProperty("stopKey") != null) { - cdmServer.setStopKey(prop.getProperty("stopKey")); - } if(prop.getProperty("user") != null) { user = prop.getProperty("user"); @@ -140,11 +122,10 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { password = prop.getProperty("password"); } - cdmServer.start(); - initializeController(CDMServer.getInstance().getName(), - CDMServer.getInstance().getHost(), - CDMServer.getInstance().getPort(), - CDMServer.getInstance().getContextPath(), + initializeController(cdmServer.getName(), + cdmServer.getHost(), + cdmServer.getPort(), + cdmServer.getContextPath(), NomenclaturalCode.ICNAFP, user, password); @@ -234,15 +215,6 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 { return (CdmTransientEntityCacher) getFieldValueViaReflection(getSession(sessionOwner), "cdmTransientEntityCacher"); } - @AfterClass - public static void cleanup() { - try { - CDMServer.getInstance().stop(); - } catch (Exception e) { - Assert.fail("Server could not be stopped. Reason : " + e.getMessage()); - } - } - protected static Object getFieldValueViaReflection(Object object, String fieldName) { Class clazz = object.getClass(); diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java index 4fad3b373..be4bd1e82 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CDMServer.java @@ -10,8 +10,15 @@ package eu.etaxonomy.taxeditor.httpinvoker; import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.IOException; +import java.io.InputStream; import java.io.InputStreamReader; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Properties; import javax.management.InstanceNotFoundException; import javax.management.MBeanException; @@ -25,10 +32,15 @@ import javax.management.remote.JMXServiceURL; import javax.sql.DataSource; import org.apache.log4j.Logger; +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Platform; +import org.osgi.framework.Bundle; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.unitils.database.annotations.TestDataSource; +import eu.etaxonomy.cdm.database.CdmPersistentDataSource; +import eu.etaxonomy.cdm.database.ICdmDataSource; import eu.etaxonomy.taxeditor.remoting.server.CDMServerException; import eu.etaxonomy.taxeditor.remoting.source.CdmRemoteSourceBase; @@ -77,15 +89,50 @@ public class CDMServer { private boolean serverAlreadyRunning = false; - private void CDMServer() {} + private File dataSourcesFile; + private final String dataSourceName; - public static CDMServer getInstance() { - if(cdmServer == null) { - cdmServer = new CDMServer(); + public CDMServer(String dataSourceName) throws CDMServerException { + this.dataSourceName = dataSourceName; + Properties prop = new Properties(); + + Bundle bundle = Platform.getBundle("eu.etaxonomy.taxeditor.cdmlib"); + URL serverPropertiesURL = bundle.getEntry("src/test/resources/server.properties"); + + try { + File serverPropertiesFile = new File(FileLocator.resolve(serverPropertiesURL).toURI()); + InputStream inputStream = new FileInputStream(serverPropertiesFile); + + if (inputStream != null) { + prop.load(inputStream); + inputStream.close(); + } + } catch (FileNotFoundException e) { + throw new CDMServerException(e); + } catch (URISyntaxException e) { + throw new CDMServerException(e); + } catch (IOException e) { + throw new CDMServerException(e); } - return cdmServer; + + + + if(prop.getProperty("httpPort") != null) { + setHttpPort(Integer.valueOf(prop.getProperty("httpPort"))); + } + + if(prop.getProperty("stopPort") != null) { + setStopPort(Integer.valueOf(prop.getProperty("stopPort"))); + } + + if(prop.getProperty("stopKey") != null) { + setStopKey(prop.getProperty("stopKey")); + } + } + + public String getName() { return name; } @@ -265,7 +312,7 @@ public class CDMServer { public void stop(boolean force) throws Exception { if(!force) { - if(!getInstance().isStarted(1)) { + if(!cdmServer.isStarted(1)) { logger.info("[CDM-Server] Server already stopped @ " + host + ":" + httpPort ); return; } @@ -335,8 +382,26 @@ public class CDMServer { } catch (MalformedObjectNameException e) { throw new CDMServerException(e); } + } + public void convertEditorToServerConfig() { + String xmlString = " " + System.lineSeparator() + + "" + System.lineSeparator() + + "" + System.lineSeparator() + + " " + System.lineSeparator() + + " " + System.lineSeparator() + + " " + System.lineSeparator() + + ""; + + for(ICdmDataSource dataSource : CdmPersistentDataSource.getAllDataSources()) { - + } } } diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java index 7656a9c0c..bf4557555 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmRemoteSourceTest.java @@ -24,11 +24,12 @@ public class CdmRemoteSourceTest extends BaseRemotingTest { @Test public void whenConnectingToInactiveServerThenFailToConnect() { + // check if non-active server throws the right exception - CdmRemoteSource inactiveCrs = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(), - CDMServer.getInstance().getHost(), + CdmRemoteSource inactiveCrs = CdmRemoteSource.NewInstance(cdmServer.getName(), + cdmServer.getHost(), 808080, - CDMServer.getInstance().getContextPath(), + cdmServer.getContextPath(), NomenclaturalCode.ICNAFP); try { inactiveCrs.getDbSchemaVersion(); @@ -67,10 +68,10 @@ public class CdmRemoteSourceTest extends BaseRemotingTest { @Test public void whenConnectingToAnActiveServerThenConnectSuccessfully() { // check if active server throws the right exception - CdmRemoteSource activeCrs = CdmRemoteSource.NewInstance(CDMServer.getInstance().getName(), - CDMServer.getInstance().getHost(), - CDMServer.getInstance().getPort(), - CDMServer.getInstance().getContextPath(), + CdmRemoteSource activeCrs = CdmRemoteSource.NewInstance(cdmServer.getName(), + cdmServer.getHost(), + cdmServer.getPort(), + cdmServer.getContextPath(), NomenclaturalCode.ICNAFP); String dbSchemaVersion = ""; try { diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java index bca8d3530..ca7e11c8a 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/CdmServerTest.java @@ -27,13 +27,10 @@ public class CdmServerTest extends UnitilsJUnit4 { @Test public void startCdmServer() throws CDMServerException { - CDMServer.getInstance().start(); - } - - @Test - public void stopCdmServer() { + CDMServer cdmServer = new CDMServer("cdmTest"); + cdmServer .start(); try { - CDMServer.getInstance().stop(true); + cdmServer.stop(true); } catch (Exception e) { e.printStackTrace(); Assert.fail("Server could not be stopped. Reason : " + e.getMessage()); diff --git a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java index ece6f8556..273e492e1 100644 --- a/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java +++ b/eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/ui/dialogs/CdmServerInfoTest.java @@ -64,4 +64,18 @@ public class CdmServerInfoTest extends UnitilsJUnit4 { } } + + @Test + public void refreshInstancesTest() throws CDMServerException { + CdmServerInfo cdmServerInfo = new CdmServerInfo(CdmServerInfo.NAME_LOCALHOST_MGD, CdmServerInfo.SERVER_LOCALHOST,8080); + cdmServerInfo.refreshInstances(); + List instances = cdmServerInfo.getInstances(); + Assert.assertTrue(instances != null && !instances.isEmpty()); + } + + @Test + public void convertToServerConfigTest() { + + + } } -- 2.34.1