Hi Andreas,

I also answered inline.

Christian

Am 06.10.2012 06:09, schrieb Andreas Pieber:
Hey,

Questions inline

On Thu, Oct 4, 2012 at 5:00 PM,  <[email protected]> wrote:
Author: cschneider
Date: Thu Oct  4 15:00:02 2012
New Revision: 1394106

URL: http://svn.apache.org/viewvc?rev=1394106&view=rev
Log:
KARAF-1897 Use different ports for itests. Switch off ssh for tests where it is 
not used

Modified:
     
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/BootFeaturesTest.java
     karaf/trunk/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java
     
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java

Modified: 
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/BootFeaturesTest.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/itests/src/test/java/org/apache/karaf/itests/BootFeaturesTest.java?rev=1394106&r1=1394105&r2=1394106&view=diff
==============================================================================
--- 
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/BootFeaturesTest.java 
(original)
+++ 
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/BootFeaturesTest.java 
Thu Oct  4 15:00:02 2012
@@ -12,6 +12,6 @@ public class BootFeaturesTest extends Ka

      @Test
      public void testBootFeatures() throws Exception {
-        assertFeaturesInstalled("standard", "config", "region", "package", "kar", "ssh", 
"management");
+        assertFeaturesInstalled("standard", "config", "region", "package", "kar", 
"management");
      }
  }

Modified: 
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java?rev=1394106&r1=1394105&r2=1394106&view=diff
==============================================================================
--- karaf/trunk/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java 
(original)
+++ karaf/trunk/itests/src/test/java/org/apache/karaf/itests/FeatureTest.java 
Thu Oct  4 15:00:02 2012
@@ -36,12 +36,6 @@ public class FeatureTest extends KarafTe
          String featureListOutput = executeCommand("feature:list -i");
          System.out.println(featureListOutput);
          assertTrue(featureListOutput.contains("standard"));
-        assertTrue(featureListOutput.contains("config"));
-        assertTrue(featureListOutput.contains("region"));
-        assertTrue(featureListOutput.contains("package"));
-        assertTrue(featureListOutput.contains("kar"));
-        assertTrue(featureListOutput.contains("ssh"));
-        assertTrue(featureListOutput.contains("management"));
I don't understand that change. Why remove that validation?

I created a separate BootFeaturesTest. So testing for all details would be redundant and we need to change it whenever we change boo features. If you prefer I can revert this part.

      }

      @Test

Modified: 
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java
URL: 
http://svn.apache.org/viewvc/karaf/trunk/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java?rev=1394106&r1=1394105&r2=1394106&view=diff
==============================================================================
--- 
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java 
(original)
+++ 
karaf/trunk/itests/src/test/java/org/apache/karaf/itests/KarafTestSupport.java 
Thu Oct  4 15:00:02 2012
@@ -13,6 +13,7 @@
   */
  package org.apache.karaf.itests;

+import static 
org.apache.karaf.tooling.exam.options.KarafDistributionOption.editConfigurationFilePut;
  import static 
org.apache.karaf.tooling.exam.options.KarafDistributionOption.karafDistributionConfiguration;
  import static 
org.apache.karaf.tooling.exam.options.KarafDistributionOption.keepRuntimeFolder;
  import static 
org.apache.karaf.tooling.exam.options.KarafDistributionOption.logLevel;
@@ -51,6 +52,7 @@ import org.ops4j.pax.exam.Option;
  import org.ops4j.pax.exam.TestProbeBuilder;
  import org.ops4j.pax.exam.junit.Configuration;
  import org.ops4j.pax.exam.junit.ProbeBuilder;
+import org.ops4j.pax.exam.options.MavenArtifactUrlReference;
  import org.osgi.framework.BundleContext;
  import org.osgi.framework.Constants;
  import org.osgi.framework.Filter;
@@ -61,6 +63,8 @@ import org.osgi.util.tracker.ServiceTrac

  public class KarafTestSupport {

+    private static final String RMI_PORT = "1100";
+
      static final Long COMMAND_TIMEOUT = 10000L;
      static final Long SERVICE_TIMEOUT = 30000L;

@@ -86,11 +90,16 @@ public class KarafTestSupport {

      @Configuration
      public Option[] config() {
+        MavenArtifactUrlReference karafUrl = 
maven().groupId("org.apache.karaf").artifactId("apache-karaf").versionAsInProject().type("tar.gz");
          return new Option[]{
-            
karafDistributionConfiguration().frameworkUrl(maven().groupId("org.apache.karaf").artifactId("apache-karaf").versionAsInProject().type("tar.gz"))
-                    .name("Apache Karaf").unpackDirectory(new 
File("target/exam")),
-                keepRuntimeFolder(),
-                logLevel(LogLevelOption.LogLevel.INFO) };
+            karafDistributionConfiguration().frameworkUrl(karafUrl).name("Apache 
Karaf").unpackDirectory(new File("target/exam")),
+            keepRuntimeFolder(),
+            logLevel(LogLevelOption.LogLevel.INFO),
+            editConfigurationFilePut("etc/org.apache.karaf.features.cfg", 
"featuresBoot", "config,standard,region,package,kar,management"),
+            editConfigurationFilePut("etc/org.ops4j.pax.web.cfg", 
"org.osgi.service.http.port", "9080"),
+            editConfigurationFilePut("etc/org.apache.karaf.management.cfg", 
"rmiRegistryPort", RMI_PORT),
+            editConfigurationFilePut("etc/org.apache.karaf.management.cfg", 
"rmiServerPort", "44445")
+        };
Wouldn't it be better to retrieve the ports using the
build-helper-maven-plugin:reserve-network-port-mojo to generate those
ports and simply load them here?
Absolutely. The idea was to change the ports in statically in the first step to allow a build to run parallel to a running karaf. Using real dynamic ports is the next logic step. I just had no idea how to do it.
      }

      /**
@@ -223,7 +232,7 @@ public class KarafTestSupport {
      }

      public JMXConnector getJMXConnector() throws Exception {
-        JMXServiceURL url = new 
JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root");
+        JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:" 
+ RMI_PORT+ "/karaf-root");
          Hashtable<String, Object> env = new Hashtable<String, Object>();
          String[] credentials = new String[]{ "karaf", "karaf" };
          env.put("jmx.remote.credentials", credentials);




--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
Talend Application Integration Division http://www.talend.com

Reply via email to