You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ie...@apache.org on 2013/02/10 13:27:48 UTC

svn commit: r1444534 - in /james/server/trunk: dns-service/dnsservice-dnsjava/ fetchmail/ fetchmail/src/main/java/org/apache/james/fetchmail/ fetchmail/src/main/resources/META-INF/spring/ karaf/features/ karaf/features/src/main/resources/ karaf/integra...

Author: ieugen
Date: Sun Feb 10 12:27:47 2013
New Revision: 1444534

URL: http://svn.apache.org/r1444534
Log:
Karaf improvements, Fetchmail works

* introduced base class for LiveTests, but no plugin configuration yet
* moved feature tests to it's own class
* james-server-fetchmail feature installs and works as expected

Added:
    james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/
    james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/CommonsConfigurationLiveTest.java
    james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/DnsServiceLiveTest.java
    james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/FetchMailLiveTest.java
    james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/KarafLiveTestSupport.java
      - copied, changed from r1444410, james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/karaf/KarafFeatureInstallTest.java
    james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/Mime4jLiveTest.java
Removed:
    james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/karaf/KarafFeatureInstallTest.java
    james/server/trunk/src/main/resources/META-INF/MANIFEST.MF
Modified:
    james/server/trunk/dns-service/dnsservice-dnsjava/pom.xml
    james/server/trunk/fetchmail/pom.xml
    james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
    james/server/trunk/fetchmail/src/main/resources/META-INF/spring/fetchmail-osgi.xml
    james/server/trunk/karaf/features/pom.xml
    james/server/trunk/karaf/features/src/main/resources/features.xml
    james/server/trunk/karaf/integration/pom.xml

Modified: james/server/trunk/dns-service/dnsservice-dnsjava/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/dns-service/dnsservice-dnsjava/pom.xml?rev=1444534&r1=1444533&r2=1444534&view=diff
==============================================================================
--- james/server/trunk/dns-service/dnsservice-dnsjava/pom.xml (original)
+++ james/server/trunk/dns-service/dnsservice-dnsjava/pom.xml Sun Feb 10 12:27:47 2013
@@ -72,6 +72,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
             </plugin>
         </plugins>
     </build>

Modified: james/server/trunk/fetchmail/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/fetchmail/pom.xml?rev=1444534&r1=1444533&r2=1444534&view=diff
==============================================================================
--- james/server/trunk/fetchmail/pom.xml (original)
+++ james/server/trunk/fetchmail/pom.xml Sun Feb 10 12:27:47 2013
@@ -90,6 +90,7 @@
             <plugin>
                 <groupId>org.apache.felix</groupId>
                 <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
             </plugin>
         </plugins>
     </build>

Modified: james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java?rev=1444534&r1=1444533&r2=1444534&view=diff
==============================================================================
--- james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java (original)
+++ james/server/trunk/fetchmail/src/main/java/org/apache/james/fetchmail/FetchScheduler.java Sun Feb 10 12:27:47 2013
@@ -162,7 +162,7 @@ public class FetchScheduler implements F
 
     /**
      * Describes whether this service is enabled by configuration.
-     * 
+     *
      * @return is the service enabled.
      */
     public final boolean isEnabled() {

Modified: james/server/trunk/fetchmail/src/main/resources/META-INF/spring/fetchmail-osgi.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/fetchmail/src/main/resources/META-INF/spring/fetchmail-osgi.xml?rev=1444534&r1=1444533&r2=1444534&view=diff
==============================================================================
--- james/server/trunk/fetchmail/src/main/resources/META-INF/spring/fetchmail-osgi.xml (original)
+++ james/server/trunk/fetchmail/src/main/resources/META-INF/spring/fetchmail-osgi.xml Sun Feb 10 12:27:47 2013
@@ -29,6 +29,7 @@
 
     <osgi:service ref="fetchmail">
         <osgi:interfaces>
+            <beans:value>org.apache.james.fetchmail.FetchScheduler</beans:value>
             <beans:value>org.apache.james.fetchmail.FetchSchedulerMBean</beans:value>
         </osgi:interfaces>
     </osgi:service>

Modified: james/server/trunk/karaf/features/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/features/pom.xml?rev=1444534&r1=1444533&r2=1444534&view=diff
==============================================================================
--- james/server/trunk/karaf/features/pom.xml (original)
+++ james/server/trunk/karaf/features/pom.xml Sun Feb 10 12:27:47 2013
@@ -21,6 +21,7 @@
         <jutf7.version>1.0.0</jutf7.version>
         <commons-dbcp-bundle.version>1.4_3</commons-dbcp-bundle.version>
         <commons-configuration-osgi.version>1.9_1</commons-configuration-osgi.version>
+        <javax-inject-osgi.version>1_2</javax-inject-osgi.version>
     </properties>
 
     <build>
@@ -50,22 +51,22 @@
 
             <!-- TODO: enable after we make sure all components are OSGi ready -->
             <!--<plugin>-->
-                <!--&lt;!&ndash; validate the feature &ndash;&gt;-->
-                <!--<groupId>org.apache.karaf.tooling</groupId>-->
-                <!--<artifactId>features-maven-plugin</artifactId>-->
-                <!--<version>2.2.9</version>-->
-                <!--<executions>-->
-                    <!--<execution>-->
-                        <!--<id>validate</id>-->
-                        <!--<phase>process-resources</phase>-->
-                        <!--<goals>-->
-                            <!--<goal>validate</goal>-->
-                        <!--</goals>-->
-                        <!--<configuration>-->
-                            <!--<file>${project.build.directory}/features.xml</file>-->
-                        <!--</configuration>-->
-                    <!--</execution>-->
-                <!--</executions>-->
+            <!--&lt;!&ndash; validate the feature &ndash;&gt;-->
+            <!--<groupId>org.apache.karaf.tooling</groupId>-->
+            <!--<artifactId>features-maven-plugin</artifactId>-->
+            <!--<version>2.2.9</version>-->
+            <!--<executions>-->
+            <!--<execution>-->
+            <!--<id>validate</id>-->
+            <!--<phase>process-resources</phase>-->
+            <!--<goals>-->
+            <!--<goal>validate</goal>-->
+            <!--</goals>-->
+            <!--<configuration>-->
+            <!--<file>${project.build.directory}/features.xml</file>-->
+            <!--</configuration>-->
+            <!--</execution>-->
+            <!--</executions>-->
             <!--</plugin>-->
 
             <plugin>

Modified: james/server/trunk/karaf/features/src/main/resources/features.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/features/src/main/resources/features.xml?rev=1444534&r1=1444533&r2=1444534&view=diff
==============================================================================
--- james/server/trunk/karaf/features/src/main/resources/features.xml (original)
+++ james/server/trunk/karaf/features/src/main/resources/features.xml Sun Feb 10 12:27:47 2013
@@ -109,17 +109,23 @@
     </feature>
 
     <feature name="james-server-fetchmail" version="${project.version}">
-        <bundle>mvn:org.apache.james/james-server-fetchmail/${project.version}</bundle>
+        <bundle dependency="true">mvn:org.apache.james/james-server-fetchmail/${project.version}</bundle>
         <feature version="${project.version}">james-server-queue-api</feature>
         <feature version="${project.version}">james-server-lifecycle-api</feature>
         <feature version="${project.version}">james-server-util</feature>
         <feature version="${project.version}">james-server-data-api</feature>
         <feature version="${project.version}">james-server-core</feature>
-        <feature version="${project.version}">james-server-dnsservice-apo</feature>
-        <bundle>mvn:org.apache.james/apache-mailet-api/${mailet.version}</bundle>
         <feature version="${commons-configuration-osgi.version}">commons-configuration</feature>
-        <bundle>mvn:org.apache.geronimo.javamail/geronimo-javamail_1.4_mail/${geronimo-javamail.version}</bundle>
-        <bundle>mvn:org.apache.geronimo.specs/geronimo-annotation_1.1_spec/${geronimo-annotation-spec.version}
+        <bundle dependency="true">mvn:org.apache.james/apache-mailet-api/${mailet.version}</bundle>
+        <bundle dependency="true">
+            mvn:org.apache.geronimo.javamail/geronimo-javamail_1.4_mail/${geronimo-javamail.version}
+        </bundle>
+        <bundle dependency="true">
+            mvn:org.apache.geronimo.specs/geronimo-annotation_1.1_spec/${geronimo-annotation-spec.version}
+        </bundle>
+        <bundle dependency="true">mvn:org.apache.james/james-server-dnsservice-api/${project.version}</bundle>
+        <bundle dependency="true">
+            mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.javax-inject/${javax-inject-osgi.version}
         </bundle>
     </feature>
 
@@ -127,7 +133,6 @@
         <bundle>mvn:org.apache.james/james-server-data-library/${project.version}</bundle>
         <feature version="${project.version}">james-server-lifecycle-api</feature>
         <feature version="${project.version}">james-server-data-api</feature>
-        <feature version="${project.version}">james-server-dnsservice-api</feature>
         <feature version="${project.version}">james-server-filesystem-api</feature>
         <bundle>mvn:org.apache.james/apache-mailet-api/${mailet.version}</bundle>
         <feature version="${commons-configuration-osgi.version}">commons-configuration</feature>
@@ -137,7 +142,6 @@
     <feature name="james-server-data-jpa" version="${project.version}">
         <bundle>mvn:org.apache.james/james-server-data-jpa/${project.version}</bundle>
         <feature version="${project.version}">james-server-lifecycle-api</feature>
-        <feature version="${project.version}">james-server-dnsservice-api</feature>
         <feature version="${project.version}">james-server-data-api</feature>
         <feature version="${project.version}">james-server-data-library</feature>
         <feature version="${commons-configuration-osgi.version}">commons-configuration</feature>
@@ -181,7 +185,6 @@
         <feature version="${project.version}">james-server-data-api</feature>
         <feature version="${project.version}">james-server-data-library</feature>
         <feature version="${project.version}">james-server-core</feature>
-        <feature version="${project.version}">james-server-dnsservice-api</feature>
         <feature version="${commons-configuration-osgi.version}">commons-configuration</feature>
         <bundle>mvn:org.apache.james/apache-mailet-api/${mailet.version}</bundle>
         <bundle>mvn:org.apache.geronimo.javamail/geronimo-javamail_1.4_mail/${geronimo-javamail.version}</bundle>
@@ -214,7 +217,6 @@
         <feature version="${project.version}">james-server-mailetcontainer-api</feature>
         <feature version="${project.version}">james-server-queue-api</feature>
         <feature version="${project.version}">james-server-util</feature>
-        <feature version="${project.version}">james-server-dnsservice-api</feature>
         <feature version="${project.version}">james-server-dnsservice-library</feature>
         <feature version="${project.version}">james-server-lifecycle-api</feature>
         <feature version="${project.version}">james-server-data-api</feature>
@@ -235,7 +237,6 @@
         <feature version="${project.version}">james-server-lifecycle-api</feature>
         <feature version="${project.version}">james-server-filesystem-api</feature>
         <feature version="${project.version}">james-server-queue-api</feature>
-        <feature version="${project.version}">james-server-dnsservice-api</feature>
         <feature version="${project.version}">james-server-data-api</feature>
         <feature version="${project.version}">james-server-data-library</feature>
         <feature version="${project.version}">james-server-core</feature>
@@ -281,7 +282,6 @@
         <feature version="${project.version}">james-server-filesystem-api</feature>
         <feature version="${project.version}">james-server-data-api</feature>
         <feature version="${project.version}">james-server-lifecycle-api</feature>
-        <feature version="${project.version}">james-server-dnsservice-api</feature>
         <feature version="${project.version}">james-server-core</feature>
         <feature version="${project.version}">james-server-protocols-library</feature>
         <bundle>mvn:org.apache.james/apache-mailet-api/${mailet.version}</bundle>

Modified: james/server/trunk/karaf/integration/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/integration/pom.xml?rev=1444534&r1=1444533&r2=1444534&view=diff
==============================================================================
--- james/server/trunk/karaf/integration/pom.xml (original)
+++ james/server/trunk/karaf/integration/pom.xml Sun Feb 10 12:27:47 2013
@@ -21,6 +21,11 @@
             <artifactId>james-server-dnsservice-dnsjava</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.james</groupId>
+            <artifactId>james-server-fetchmail</artifactId>
+            <scope>test</scope>
+        </dependency>
 
         <dependency>
             <groupId>com.google.guava</groupId>

Added: james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/CommonsConfigurationLiveTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/CommonsConfigurationLiveTest.java?rev=1444534&view=auto
==============================================================================
--- james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/CommonsConfigurationLiveTest.java (added)
+++ james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/CommonsConfigurationLiveTest.java Sun Feb 10 12:27:47 2013
@@ -0,0 +1,14 @@
+package org.apache.james.karaf.features;
+
+import org.junit.Test;
+
+public class CommonsConfigurationLiveTest extends KarafLiveTestSupport {
+
+    @Test
+    public void testInstallCommonsConfigurationFeature() throws Exception {
+        addJamesFeaturesRepository();
+        features.installFeature("commons-configuration");
+        assertInstalled("commons-configuration");
+        assertBundlesAreActive();
+    }
+}

Added: james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/DnsServiceLiveTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/DnsServiceLiveTest.java?rev=1444534&view=auto
==============================================================================
--- james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/DnsServiceLiveTest.java (added)
+++ james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/DnsServiceLiveTest.java Sun Feb 10 12:27:47 2013
@@ -0,0 +1,16 @@
+package org.apache.james.karaf.features;
+
+import org.apache.james.dnsservice.api.DNSService;
+import org.junit.Test;
+
+public class DnsServiceLiveTest extends KarafLiveTestSupport {
+
+    @Test
+    public void testInstallJamesDnsServiceDnsJava() throws Exception {
+        addJamesFeaturesRepository();
+        features.installFeature("james-server-dnsservice-dnsjava");
+        assertInstalled("james-server-dnsservice-dnsjava");
+        assertBundlesAreActive();
+        assertOSGiServiceStartsIn(DNSService.class, WAIT_30_SECONDS);
+    }
+}

Added: james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/FetchMailLiveTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/FetchMailLiveTest.java?rev=1444534&view=auto
==============================================================================
--- james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/FetchMailLiveTest.java (added)
+++ james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/FetchMailLiveTest.java Sun Feb 10 12:27:47 2013
@@ -0,0 +1,15 @@
+package org.apache.james.karaf.features;
+
+import org.apache.james.fetchmail.FetchScheduler;
+import org.junit.Test;
+
+public class FetchMailLiveTest extends KarafLiveTestSupport {
+    @Test
+    public void testInstallJamesFetchMailFeature() throws Exception {
+        addJamesFeaturesRepository();
+        features.installFeature("james-server-fetchmail");
+        assertInstalled("james-server-fetchmail");
+        assertBundlesAreActive();
+        assertOSGiServiceStartsIn(FetchScheduler.class, WAIT_30_SECONDS);
+    }
+}

Copied: james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/KarafLiveTestSupport.java (from r1444410, james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/karaf/KarafFeatureInstallTest.java)
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/KarafLiveTestSupport.java?p2=james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/KarafLiveTestSupport.java&p1=james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/karaf/KarafFeatureInstallTest.java&r1=1444410&r2=1444534&rev=1444534&view=diff
==============================================================================
--- james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/karaf/KarafFeatureInstallTest.java (original)
+++ james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/KarafLiveTestSupport.java Sun Feb 10 12:27:47 2013
@@ -1,7 +1,6 @@
-package org.apache.james.karaf.karaf;
+package org.apache.james.karaf.features;
 
 import com.google.common.base.Stopwatch;
-import org.apache.james.dnsservice.api.DNSService;
 import org.apache.karaf.features.Feature;
 import org.apache.karaf.features.FeaturesService;
 import org.apache.karaf.tooling.exam.options.KarafDistributionConfigurationFilePutOption;
@@ -13,7 +12,6 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import org.junit.Before;
-import org.junit.Test;
 import org.junit.runner.RunWith;
 import static org.ops4j.pax.exam.CoreOptions.maven;
 import static org.ops4j.pax.exam.CoreOptions.systemProperty;
@@ -37,20 +35,22 @@ import java.net.URI;
 import java.util.concurrent.TimeUnit;
 
 /**
- * Apache James Karaf deployment test.
+ * Base class for integration testing with Karaf.
  */
 @RunWith(JUnit4TestRunner.class)
 @ExamReactorStrategy(AllConfinedStagedReactorFactory.class)
-public class KarafFeatureInstallTest {
+public class KarafLiveTestSupport {
+
+    private static final Logger LOG = LoggerFactory.getLogger(KarafLiveTestSupport.class);
+    public static final int WAIT_30_SECONDS = 30000;
 
-    private static final Logger LOG = LoggerFactory.getLogger(KarafFeatureInstallTest.class);
     @Inject
-    private FeaturesService features;
+    FeaturesService features;
 
     @Inject
     BundleContext bundleContext;
 
-    private String featuresVersion;
+    String featuresVersion;
 
     @Configuration
     public static Option[] configuration() throws Exception {
@@ -80,37 +80,12 @@ public class KarafFeatureInstallTest {
         featuresVersion = System.getProperty("james-karaf-features");
     }
 
-    @Test
-    public void testInstallCommonsConfigurationFeature() throws Exception {
-        addJamesFeaturesRepository();
-        features.installFeature("commons-configuration");
-        assertInstalled("commons-configuration");
-        assertBundlesAreActive();
-    }
-
-    @Test
-    public void testInstallApacheMime4jFeature() throws Exception {
-        addJamesFeaturesRepository();
-        features.installFeature("apache-james-mime4j");
-        assertInstalled("apache-james-mime4j");
-        assertBundlesAreActive();
-    }
-
-    @Test
-    public void testInstallJamesDnsServiceDnsJava() throws Exception {
-        addJamesFeaturesRepository();
-        features.installFeature("james-server-dnsservice-dnsjava");
-        assertInstalled("james-server-dnsservice-dnsjava");
-        assertBundlesAreActive();
-        assertOSGiServiceStartsIn(DNSService.class, 30000);
-    }
-
-    private void assertInstalled(String featureName) throws Exception {
+    void assertInstalled(String featureName) throws Exception {
         Feature feature = features.getFeature(featureName);
         assertTrue("Feature " + featureName + " should be installed", features.isInstalled(feature));
     }
 
-    private void assertBundlesAreActive() {
+    void assertBundlesAreActive() {
         for (Bundle bundle : bundleContext.getBundles()) {
             LOG.info("***** bundle {} is {}", bundle.getSymbolicName(), bundle.getState());
             assertEquals("Bundle " + bundle.getSymbolicName() + " is not active",
@@ -118,7 +93,7 @@ public class KarafFeatureInstallTest {
         }
     }
 
-    private void addJamesFeaturesRepository() throws Exception {
+    void addJamesFeaturesRepository() throws Exception {
         String url = maven("org.apache.james.karaf", "james-karaf-features")
                 .version(featuresVersion)
                 .classifier("features")
@@ -130,7 +105,7 @@ public class KarafFeatureInstallTest {
         features.installFeature("war");
     }
 
-    private void assertOSGiServiceStartsIn(Class clazz, int timeoutInMilliseconds) throws InterruptedException {
+    void assertOSGiServiceStartsIn(Class clazz, int timeoutInMilliseconds) throws InterruptedException {
         final ServiceTracker tracker = new ServiceTracker(bundleContext, clazz, null);
         tracker.open(true);
         try {

Added: james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/Mime4jLiveTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/Mime4jLiveTest.java?rev=1444534&view=auto
==============================================================================
--- james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/Mime4jLiveTest.java (added)
+++ james/server/trunk/karaf/integration/src/test/java/org/apache/james/karaf/features/Mime4jLiveTest.java Sun Feb 10 12:27:47 2013
@@ -0,0 +1,14 @@
+package org.apache.james.karaf.features;
+
+import org.junit.Test;
+
+public class Mime4jLiveTest extends KarafLiveTestSupport{
+
+    @Test
+    public void testInstallApacheMime4jFeature() throws Exception {
+        addJamesFeaturesRepository();
+        features.installFeature("apache-james-mime4j");
+        assertInstalled("apache-james-mime4j");
+        assertBundlesAreActive();
+    }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org