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>-->
- <!--<!– validate the feature –>-->
- <!--<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>-->
+ <!--<!– validate the feature –>-->
+ <!--<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