corrected merge to latest snapshot version
[taxeditor.git] / eu.etaxonomy.taxeditor.test / src / test / java / eu / etaxonomy / taxeditor / httpinvoker / BaseRemotingTest.java
index 7f566766a2780b02ebe5acf370e59c4009d01331..420dcb5f52c252e808e23b6106437d8368dee861 100644 (file)
@@ -8,9 +8,12 @@
  */
 package eu.etaxonomy.taxeditor.httpinvoker;
 
+import java.io.InputStream;
 import java.lang.reflect.Field;
 import java.util.Map;
+import java.util.Properties;
 
+import org.apache.log4j.Logger;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -48,21 +51,27 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionManager;
  */
 @Transactional(TransactionMode.DISABLED)
 @SpringApplicationContext("file:./target/classes/eu/etaxonomy/cdm/testRemotingApplicationContext.xml")
-public abstract class BaseRemotingTest extends UnitilsJUnit4 {
-    //private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
+public class BaseRemotingTest extends UnitilsJUnit4 {
+    private static final Logger logger = Logger.getLogger(BaseRemotingTest.class);
 
-    private static final Resource TEST_REMOTE_APPLICATION_CONTEXT_RESOURCE =
-            new ClassPathResource("/eu/etaxonomy/cdm/testRemotingApplicationContext.xml");
+
+    public static final Resource SERVER_PROPERTIES_FILE =
+            new ClassPathResource("server.properties");
 
     private static CdmApplicationRemoteController remoteApplicationController;
     private static ICdmRemoteSource cdmRemoteSource;
     private static CdmPersistentRemoteSource remotePersistentSource;
 
-    public static boolean useManagedServer = false;
+    public static boolean useManagedServer = true;
 
 
     protected static ICdmEntitySessionManager cdmEntitySessionManager;
 
+    private final static String DEFAULT_USER = "admin";
+    private final static String DEFAULT_PASSWORD = "00000";
+
+    private static String user = DEFAULT_USER;
+    private static String password = DEFAULT_PASSWORD;
 
     @BeforeClass
     public static void initializeBaseRemotingTest() {
@@ -74,7 +83,35 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 {
         useManagedServer = (System.getProperty("use.managed.server") == null) ? useManagedServer : Boolean.valueOf(System.getProperty("use.managed.server"));
         if(useManagedServer) {
             try {
-                CDMServer.getInstance().start();
+                CDMServer cdmServer = CDMServer.getInstance();
+                Properties prop = new Properties();
+                InputStream inputStream = SERVER_PROPERTIES_FILE.getInputStream();
+
+                if (inputStream != null) {
+                    prop.load(inputStream);
+                }
+
+                if(prop.getProperty("httpPort") != null) {
+                    cdmServer.setHttpPort(Integer.valueOf(prop.getProperty("httpPort")));
+                }
+
+                if(prop.getProperty("stopPort") != null) {
+                    cdmServer.setStopPort(Integer.valueOf(prop.getProperty("stopPort")));
+                }
+
+                if(prop.getProperty("stopKey") != null) {
+                    cdmServer.setStopKey(prop.getProperty("stopKey"));
+                }
+
+                if(prop.getProperty("user") != null) {
+                   user = prop.getProperty("user");
+                }
+
+                if(prop.getProperty("password") != null) {
+                    password = prop.getProperty("password");
+                 }
+
+                cdmServer.start();
             } catch (Exception e) {
                 e.printStackTrace();
                 Assert.fail("Server failed to start. Reason : " + e.getMessage());
@@ -85,8 +122,8 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 {
                 CDMServer.getInstance().getPort(),
                 CDMServer.getInstance().getContextPath(),
                 NomenclaturalCode.ICNAFP,
-                "admin",
-                "00000");
+                user,
+                password);
         }
 
 
@@ -100,8 +137,12 @@ public abstract class BaseRemotingTest extends UnitilsJUnit4 {
        DatabaseUnitils.disableConstraints();
     }
 
+
     public static void initializeController(String sourceName, String host, int port, String contextPath, NomenclaturalCode ncode, String username, String password) {
 
+        if(remoteApplicationController != null) {
+            return;
+        }
         cdmRemoteSource = CdmRemoteSource.NewInstance(sourceName, host, port, contextPath, ncode);
         remoteApplicationController =
                 CdmApplicationRemoteController.NewInstance(cdmRemoteSource,