You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by jc...@apache.org on 2006/11/18 18:20:51 UTC
svn commit: r476568 - in /directory/sandbox/jconlon/osgi-services: ./
logging-service-integration-test/ logging-service-integration-test/src/
logging-service-integration-test/src/main/
logging-service-integration-test/src/main/java/ logging-service-int...
Author: jconlon
Date: Sat Nov 18 09:20:50 2006
New Revision: 476568
URL: http://svn.apache.org/viewvc?view=rev&rev=476568
Log:
adding osgi integration tests for logging-service
Added:
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/ (with props)
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/README
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/pom.xml
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/main/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/main/java/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/main/resources/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/logging/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/logging/test/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/logging/test/LogServiceBundleTest.java
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/logging/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/logging/test/
directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/logging/test/MANIFEST.MF
Modified:
directory/sandbox/jconlon/osgi-services/pom.xml
Propchange: directory/sandbox/jconlon/osgi-services/logging-service-integration-test/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Sat Nov 18 09:20:50 2006
@@ -0,0 +1,5 @@
+target
+.settings
+.wtpmodules
+.classpath
+.project
Added: directory/sandbox/jconlon/osgi-services/logging-service-integration-test/README
URL: http://svn.apache.org/viewvc/directory/sandbox/jconlon/osgi-services/logging-service-integration-test/README?view=auto&rev=476568
==============================================================================
--- directory/sandbox/jconlon/osgi-services/logging-service-integration-test/README (added)
+++ directory/sandbox/jconlon/osgi-services/logging-service-integration-test/README Sat Nov 18 09:20:50 2006
@@ -0,0 +1,14 @@
+Note on running the logging-service-integration-test.
+====================================================
+The normal convention for configuring log4j with the
+logging-service bundle is to place a log4j.properties
+file in the conf directory. If this convention is
+followed the spring-osgi based integration tests in
+this project will encounter a classloading conflict
+and fail to load the configuration. This issue is
+only problem with the test suite and is not the case
+for production usage of the logging-service bundle.
+
+To workaround do not use a log4j.properties file and
+allow the bundle to do a basic configuration as the
+default.
Added: directory/sandbox/jconlon/osgi-services/logging-service-integration-test/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/jconlon/osgi-services/logging-service-integration-test/pom.xml?view=auto&rev=476568
==============================================================================
--- directory/sandbox/jconlon/osgi-services/logging-service-integration-test/pom.xml (added)
+++ directory/sandbox/jconlon/osgi-services/logging-service-integration-test/pom.xml Sat Nov 18 09:20:50 2006
@@ -0,0 +1,189 @@
+<?xml version="1.0"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+<!--
+ <parent>
+ <groupId>org.apache.directory.osgi.services</groupId>
+ <artifactId>build</artifactId>
+ <version>1.0.6-SNAPSHOT</version>
+ </parent>
+ -->
+ <groupId>org.apache.directory.osgi.services</groupId>
+ <version>1.0.6-SNAPSHOT</version>
+
+ <description>
+ OSGi integration tests for the logging-service.
+ </description>
+
+ <artifactId>logging-service-integration-test</artifactId>
+
+ <name>${pom.artifactId} suite</name>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>javax.servlet</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.directory.osgi.services</groupId>
+ <artifactId>logging-service</artifactId>
+ <version>1.0.6-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.directory.osgi.commons</groupId>
+ <artifactId>commons-collections-osgi</artifactId>
+ <version>3.2</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>org.springframework.osgi.test</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>2.1-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-context</artifactId>
+ <version>2.1-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-beans</artifactId>
+ <version>2.1-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+
+ </dependencies>
+
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <!-- run tests during the integration-test phase, not the normal test phase -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ <executions>
+ <execution>
+ <id>default</id>
+ <phase>test</phase>
+ <goals></goals>
+ </execution>
+ <execution>
+ <id>integration-test</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ <forkMode>pertest</forkMode>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>equinox</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.equinox</groupId>
+ <artifactId>org.eclipse.osgi</artifactId>
+ <version>3.2.0</version>
+ <type>jar</type>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <osgi.test.platform>equinox</osgi.test.platform>
+ </properties>
+ </profile>
+ <profile>
+ <id>knopflerfish</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.knopflerfish</groupId>
+ <artifactId>framework</artifactId>
+ <version>2.0.1</version>
+ <type>jar</type>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <osgi.test.platform>knopflerfish</osgi.test.platform>
+ </properties>
+ </profile>
+ <profile>
+ <id>felix</id>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.framework</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.main</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>0.8.0-SNAPSHOT</version>
+ <type>jar</type>
+ <scope>runtime</scope>
+ </dependency>
+ </dependencies>
+ <properties>
+ <osgi.test.platform>felix</osgi.test.platform>
+ <!-- <org.osgi.vendor.framework>org.apache.felix.framework</org.osgi.vendor.framework> -->
+ </properties>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
Added: directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/logging/test/LogServiceBundleTest.java
URL: http://svn.apache.org/viewvc/directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/logging/test/LogServiceBundleTest.java?view=auto&rev=476568
==============================================================================
--- directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/logging/test/LogServiceBundleTest.java (added)
+++ directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/java/org/apache/directory/osgi/services/logging/test/LogServiceBundleTest.java Sat Nov 18 09:20:50 2006
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2006 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.directory.osgi.services.logging.test;
+
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.log.LogService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.osgi.test.ConfigurableBundleCreatorTests;
+
+
+
+/**
+ * Starts up an OSGi environment (equinox, knopflerfish, or felix according to
+ * the profile selected) and installs the simple service bundle and the bundles
+ * it depends on. The test classes in this project will be turned into a virtual
+ * bundle which is also installed and the tests are then run inside the OSGi
+ * runtime.
+ *
+ * The tests have access to a BundleContext, which we use to test that the
+ * LogService was indeed published as an OSGi service.
+ *
+ *
+ */
+public class LogServiceBundleTest extends
+ ConfigurableBundleCreatorTests {
+ /** the log for this class */
+
+ LogService logService;
+
+
+ /**
+ * The manifest to use for the "virtual bundle" created out of the test
+ * classes and resources in this project
+ *
+ * This is actually the boilerplate manifest with one additional
+ * import-package added. We should provide a simpler customization point for
+ * such use cases that doesn't require duplication of the entire manifest...
+ */
+ protected String getManifestLocation() {
+ return "classpath:org/apache/directory/osgi/services/logging/test/MANIFEST.MF";
+ }
+
+ /**
+ * The location of the packaged OSGi bundles to be installed for this test.
+ * Values are Spring resource paths. The bundles we want to use are part of
+ * the same multi-project maven build as this project is. Hence we use the
+ * localMavenArtifact helper method to find the bundles produced by the
+ * package phase of the maven build (these tests will run after the
+ * packaging phase, in the integration-test phase).
+ *
+ * JUnit, commons-logging, spring-core and the spring OSGi test bundle are
+ * automatically included so do not need to be specified here.
+ */
+ protected String[] getBundleLocations() {
+ return new String[] {
+ localMavenArtifact("org.springframework.osgi", "aopalliance.osgi","1.0-SNAPSHOT"),
+ localMavenArtifact("org.springframework.osgi", "spring-context", "2.1-SNAPSHOT"),
+ localMavenArtifact("org.springframework.osgi", "spring-beans","2.1-SNAPSHOT"),
+ localMavenArtifact("org.springframework.osgi", "spring-osgi-core","1.0-SNAPSHOT"),
+ localMavenArtifact("org.springframework.osgi", "spring-aop","2.1-SNAPSHOT"),
+ localMavenArtifact("org.apache.directory.osgi.commons","jzlib-osgi", "1.0.7"),
+ localMavenArtifact("org.apache.felix", "javax.servlet", "0.8.0-SNAPSHOT"),
+ localMavenArtifact("org.apache.felix","org.osgi.compendium", "0.8.0-SNAPSHOT"),
+ localMavenArtifact("org.apache.directory.osgi.services","logging-service", "1.0.6-SNAPSHOT")
+ };
+ }
+
+ /**
+ * The superclass provides us access to the root bundle context via the
+ * 'getBundleContext' operation
+ */
+ public void testOSGiStartedOk() {
+ BundleContext bundleContext = getBundleContext();
+ assertNotNull(bundleContext);
+
+ assertEquals(17,bundleContext.getBundles().length);
+ }
+
+ /**
+ * The LogService should have been exported as an OSGi service, which we
+ * can verify using the OSGi service APIs.
+ *
+ * In a Spring bundle, using osgi:reference is a much easier way to get a
+ * reference to a published service.
+ *
+ */
+ public void testLogService() {
+ BundleContext context = getBundleContext();
+ ServiceReference ref = context.getServiceReference(LogService.class
+ .getName());
+ assertNotNull("Service Reference is null", ref);
+
+ try {
+ logService = (LogService) context.getService(ref);
+ assertNotNull("Cannot find the service", logService);
+ logService.log(LogService.LOG_WARNING,"Found LogService. ");
+ Bundle[] bundles = context.getBundles();
+ logService.log(LogService.LOG_DEBUG, "Loaded bundles:");
+ for (Bundle bundle : bundles) {
+ logService.log(LogService.LOG_DEBUG, bundle.getSymbolicName());
+ }
+ } finally {
+ context.ungetService(ref);
+ }
+ Logger log = LoggerFactory
+ .getLogger(LogServiceBundleTest.class);;
+
+ log.info("A slf4j logger works too.");
+ }
+
+
+
+
+
+
+}
Added: directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/logging/test/MANIFEST.MF
URL: http://svn.apache.org/viewvc/directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/logging/test/MANIFEST.MF?view=auto&rev=476568
==============================================================================
--- directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/logging/test/MANIFEST.MF (added)
+++ directory/sandbox/jconlon/osgi-services/logging-service-integration-test/src/test/resources/org/apache/directory/osgi/services/logging/test/MANIFEST.MF Sat Nov 18 09:20:50 2006
@@ -0,0 +1,16 @@
+Manifest-Version: 1.0
+Bundle-Name: simple-service-integration-tests
+Bundle-SymbolicName: org.springframework.osgi.samples.simpleservice.test
+Bundle-Vendor: Spring Framework
+Bundle-Activator: org.springframework.osgi.test.JUnitTestActivator
+Import-Package: junit.framework,
+ org.osgi.framework;specification-version="1.3.0",
+ org.springframework.core.io;specification-version="2.1.0",
+ org.springframework.osgi.test,
+ org.springframework.osgi.test.runner,
+ org.osgi.service.log,
+ org.slf4j,
+ org.apache.log4j
+
+
+
Modified: directory/sandbox/jconlon/osgi-services/pom.xml
URL: http://svn.apache.org/viewvc/directory/sandbox/jconlon/osgi-services/pom.xml?view=diff&rev=476568&r1=476567&r2=476568
==============================================================================
--- directory/sandbox/jconlon/osgi-services/pom.xml (original)
+++ directory/sandbox/jconlon/osgi-services/pom.xml Sat Nov 18 09:20:50 2006
@@ -18,6 +18,7 @@
<modules>
<module>logging-service</module>
+ <module>logging-service-integration-test</module>
</modules>
</project>