You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by mn...@apache.org on 2010/01/18 17:29:27 UTC
svn commit: r900450 - in /incubator/aries/trunk/application: ./
application-itests/ application-itests/src/main/java/
application-itests/src/test/java/org/apache/aries/application/runtime/itests/
application-itests/src/test/java/org/apache/aries/sample...
Author: mnuttall
Date: Mon Jan 18 16:29:26 2010
New Revision: 900450
URL: http://svn.apache.org/viewvc?rev=900450&view=rev
Log:
Aries-89: Flesh out application itests
Added:
incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/sample/
incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/sample/impl/
incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/sample/impl/HelloWorldImpl.java
incubator/aries/trunk/application/application-itests/src/test/resources/
incubator/aries/trunk/application/application-itests/src/test/resources/APPLICATION.MF
incubator/aries/trunk/application/application-itests/src/test/resources/sample-blueprint.xml
Removed:
incubator/aries/trunk/application/application-itests/src/main/java/
Modified:
incubator/aries/trunk/application/application-itests/pom.xml
incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java
incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/BasicAppManagerTest.java
incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java
incubator/aries/trunk/application/application-runtime/src/main/java/org/apache/aries/application/runtime/impl/ApplicationContextImpl.java
incubator/aries/trunk/application/pom.xml
Modified: incubator/aries/trunk/application/application-itests/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/pom.xml?rev=900450&r1=900449&r2=900450&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-itests/pom.xml (original)
+++ incubator/aries/trunk/application/application-itests/pom.xml Mon Jan 18 16:29:26 2010
@@ -60,6 +60,16 @@
<scope>provided</scope>
</dependency>
<dependency>
+ <groupId>org.apache.aries.application</groupId>
+ <artifactId>org.apache.aries.application.runtime.itest.interfaces</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.aries.testsupport</groupId>
+ <artifactId>org.apache.aries.testsupport.unit</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
<scope>provided</scope>
Modified: incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java?rev=900450&r1=900449&r2=900450&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java (original)
+++ incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/AbstractIntegrationTest.java Mon Jan 18 16:29:26 2010
@@ -126,7 +126,8 @@
tracker.open();
// Note that the tracker is not closed to keep the reference
// This is buggy, has the service reference may change i think
- Object svc = type.cast(tracker.waitForService(timeout));
+ Object x = tracker.waitForService(timeout);
+ Object svc = type.cast(x);
if (svc == null) {
throw new RuntimeException("Gave up waiting for service " + flt);
}
Modified: incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/BasicAppManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/BasicAppManagerTest.java?rev=900450&r1=900449&r2=900450&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/BasicAppManagerTest.java (original)
+++ incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/BasicAppManagerTest.java Mon Jan 18 16:29:26 2010
@@ -18,15 +18,22 @@
*/
package org.apache.aries.application.runtime.itests;
+import static org.junit.Assert.assertEquals;
import static org.ops4j.pax.exam.CoreOptions.equinox;
import static org.ops4j.pax.exam.CoreOptions.options;
import static org.ops4j.pax.exam.CoreOptions.systemProperty;
import java.io.File;
+import java.io.FileOutputStream;
-import org.apache.aries.application.filesystem.IDirectory;
+import org.apache.aries.application.management.ApplicationContext;
+import org.apache.aries.application.management.AriesApplication;
import org.apache.aries.application.management.AriesApplicationManager;
import org.apache.aries.application.utils.filesystem.FileSystem;
+import org.apache.aries.sample.HelloWorld;
+import org.apache.aries.unittest.fixture.ArchiveFixture;
+import org.apache.aries.unittest.fixture.ArchiveFixture.ZipFixture;
+import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.ops4j.pax.exam.Option;
@@ -34,27 +41,64 @@
@RunWith(JUnit4TestRunner.class)
public class BasicAppManagerTest extends AbstractIntegrationTest {
+
+ @BeforeClass
+ public static void createApplications() throws Exception {
+ ZipFixture testEba = ArchiveFixture.newZip()
+ .jar("sample.jar")
+ .manifest().symbolicName("org.apache.aries.sample")
+ .attribute("Bundle-Version", "1.0.0")
+ .attribute("Import-Package", "org.apache.aries.sample")
+ .end()
+ .binary("org/apache/aries/sample/impl/HelloWorldImpl.class",
+ BasicAppManagerTest.class.getClassLoader().getResourceAsStream("org/apache/aries/sample/impl/HelloWorldImpl.class"))
+ .binary("OSGI-INF/blueprint/sample-blueprint.xml",
+ BasicAppManagerTest.class.getClassLoader().getResourceAsStream("sample-blueprint.xml"))
+ .end();
+
+ FileOutputStream fout = new FileOutputStream("test.eba");
+ testEba.writeOut(fout);
+ fout.close();
+
+ ZipFixture testEba2 = testEba.binary("META-INF/APPLICATION.MF",
+ BasicAppManagerTest.class.getClassLoader().getResourceAsStream("APPLICATION.MF"))
+ .end();
+ fout = new FileOutputStream("test2.eba");
+ testEba2.writeOut(fout);
+ fout.close();
+ }
+
+ @Test
+ public void testAppWithoutApplicationManifest() throws Exception {
+ AriesApplicationManager manager = getOsgiService(AriesApplicationManager.class);
+ AriesApplication app = manager.createApplication(FileSystem.getFSRoot(new File("test.eba")));
+ ApplicationContext ctx = manager.install(app);
+ ctx.start();
+
+ HelloWorld hw = getOsgiService(HelloWorld.class);
+ String result = hw.getMessage();
+ assertEquals (result, "hello world");
+
+ ctx.stop();
+ manager.uninstall(ctx);
+ }
@Test
- public void getStarted() throws Exception {
+ public void testAppWithApplicationManifest() throws Exception {
AriesApplicationManager manager = getOsgiService(AriesApplicationManager.class);
+ AriesApplication app = manager.createApplication(FileSystem.getFSRoot(new File("test2.eba")));
+ ApplicationContext ctx = manager.install(app);
+ ctx.start();
- /**
- * Now write some java code to generate an .eba that we can execute
-
- File hack = new File(
-
- "c:/svn/trunk/application/application-management/target/ariesApplicationManagerImplTest/stored.eba");
- IDirectory ihack = FileSystem.getFSRoot(hack);
+ HelloWorld hw = getOsgiService(HelloWorld.class);
+ String result = hw.getMessage();
+ assertEquals (result, "hello world");
- if (ihack == null) {
- System.out.println ("** ihack is null");
- } else {
- System.out.println ("** ihack is valid");
- }
- manager.createApplication(ihack); */
+ ctx.stop();
+ manager.uninstall(ctx);
}
+
@org.ops4j.pax.exam.junit.Configuration
public static Option[] configuration() {
Option[] options = options(
@@ -75,9 +119,20 @@
mavenBundle("org.apache.aries.application", "org.apache.aries.application.utils"),
mavenBundle("org.apache.aries.application", "org.apache.aries.application.management"),
mavenBundle("org.apache.aries.application", "org.apache.aries.application.runtime"),
+ mavenBundle("org.apache.aries.application", "org.apache.aries.application.runtime.itest.interfaces"),
mavenBundle("org.apache.aries", "org.apache.aries.util"),
mavenBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint"),
mavenBundle("org.osgi", "org.osgi.compendium"),
+ mavenBundle("org.apache.aries.testsupport", "org.apache.aries.testsupport.unit"),
+
+ /* For debugging, uncomment the next two lines
+ vmOption ("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"),
+ waitForFrameworkStartup(),
+
+ and add these imports:
+ import static org.ops4j.pax.exam.CoreOptions.waitForFrameworkStartup;
+ import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.vmOption;
+ */
equinox().version("3.5.0"));
options = updateOptions(options);
Added: incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/sample/impl/HelloWorldImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/sample/impl/HelloWorldImpl.java?rev=900450&view=auto
==============================================================================
--- incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/sample/impl/HelloWorldImpl.java (added)
+++ incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/sample/impl/HelloWorldImpl.java Mon Jan 18 16:29:26 2010
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.aries.sample.impl;
+
+import org.apache.aries.sample.HelloWorld;
+
+public class HelloWorldImpl implements HelloWorld {
+
+ public String getMessage() {
+ return "hello world";
+ }
+
+}
Added: incubator/aries/trunk/application/application-itests/src/test/resources/APPLICATION.MF
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/src/test/resources/APPLICATION.MF?rev=900450&view=auto
==============================================================================
--- incubator/aries/trunk/application/application-itests/src/test/resources/APPLICATION.MF (added)
+++ incubator/aries/trunk/application/application-itests/src/test/resources/APPLICATION.MF Mon Jan 18 16:29:26 2010
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Application-ManifestVersion: 1.0
+Application-Name: test application 2
+Application-SymbolicName: org.apache.aries.sample2
+Application-Version: 1.0
+Application-Content: org.apache.aries.sample; version=1.0.0
+
Added: incubator/aries/trunk/application/application-itests/src/test/resources/sample-blueprint.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/src/test/resources/sample-blueprint.xml?rev=900450&view=auto
==============================================================================
--- incubator/aries/trunk/application/application-itests/src/test/resources/sample-blueprint.xml (added)
+++ incubator/aries/trunk/application/application-itests/src/test/resources/sample-blueprint.xml Mon Jan 18 16:29:26 2010
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You 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.
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0">
+
+ <bean id="hello" class="org.apache.aries.sample.impl.HelloWorldImpl"/>
+ <service interface="org.apache.aries.sample.HelloWorld" ref="hello" />
+
+</blueprint>
Modified: incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java?rev=900450&r1=900449&r2=900450&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java (original)
+++ incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java Mon Jan 18 16:29:26 2010
@@ -254,7 +254,7 @@
* @throws IOException
*/
private Manifest parseApplicationManifest (IDirectory source) throws IOException {
- Manifest result = null;
+ Manifest result = new Manifest();
IFile f = source.getFile(AppConstants.APPLICATION_MF);
if (f != null) {
InputStream is = null;
Modified: incubator/aries/trunk/application/application-runtime/src/main/java/org/apache/aries/application/runtime/impl/ApplicationContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-runtime/src/main/java/org/apache/aries/application/runtime/impl/ApplicationContextImpl.java?rev=900450&r1=900449&r2=900450&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-runtime/src/main/java/org/apache/aries/application/runtime/impl/ApplicationContextImpl.java (original)
+++ incubator/aries/trunk/application/application-runtime/src/main/java/org/apache/aries/application/runtime/impl/ApplicationContextImpl.java Mon Jan 18 16:29:26 2010
@@ -39,6 +39,7 @@
private BundleContext _bundleContext;
public ApplicationContextImpl (BundleContext b, AriesApplication app) {
+ _bundleContext = b;
_application = app;
_bundles = new HashMap<BundleInfo, Bundle>();
_state = ApplicationState.INSTALLED;
Modified: incubator/aries/trunk/application/pom.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/pom.xml?rev=900450&r1=900449&r2=900450&view=diff
==============================================================================
--- incubator/aries/trunk/application/pom.xml (original)
+++ incubator/aries/trunk/application/pom.xml Mon Jan 18 16:29:26 2010
@@ -93,6 +93,11 @@
<version>${version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.aries.application</groupId>
+ <artifactId>org.apache.aries.application.runtime.itest.interfaces</artifactId>
+ <version>${version}</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.aries.testsupport</groupId>
<artifactId>org.apache.aries.testsupport.unit</artifactId>
<version>${version}</version>
@@ -181,6 +186,7 @@
<module>application-management</module>
<module>application-converters</module>
<module>application-runtime</module>
+ <module>application-itest-interface</module>
<module>application-itests</module>
</modules>