You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2009/08/19 18:38:00 UTC
svn commit: r805872 - in /sling/trunk/installer/osgi:
installer/src/test/java/org/apache/sling/osgi/installer/impl/BundleTaskCreatorTest.java
it/pom.xml
it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java
Author: bdelacretaz
Date: Wed Aug 19 16:38:00 2009
New Revision: 805872
URL: http://svn.apache.org/viewvc?rev=805872&view=rev
Log:
SLING-1078 - BundleSnapshotUpdateTest added
Added:
sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java (with props)
Modified:
sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/BundleTaskCreatorTest.java
sling/trunk/installer/osgi/it/pom.xml
Modified: sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/BundleTaskCreatorTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/BundleTaskCreatorTest.java?rev=805872&r1=805871&r2=805872&view=diff
==============================================================================
--- sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/BundleTaskCreatorTest.java (original)
+++ sling/trunk/installer/osgi/installer/src/test/java/org/apache/sling/osgi/installer/impl/BundleTaskCreatorTest.java Wed Aug 19 16:38:00 2009
@@ -125,7 +125,9 @@
@Test
public void testBundleUpgradeSnapshot() {
- final String v = "2.0.7.-SNAPSHOT";
+ // Need to use OSGi-compliant version number, in bundles
+ // bnd and other tools generate correct numbers.
+ final String v = "2.0.7.SNAPSHOT";
final RegisteredResource [] r = {
new MockBundleResource(SN, v)
};
Modified: sling/trunk/installer/osgi/it/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/pom.xml?rev=805872&r1=805871&r2=805872&view=diff
==============================================================================
--- sling/trunk/installer/osgi/it/pom.xml (original)
+++ sling/trunk/installer/osgi/it/pom.xml Wed Aug 19 16:38:00 2009
@@ -235,6 +235,32 @@
</archive>
</configuration>
</execution>
+ <execution>
+ <id>snapshot-1.0</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>snap</classifier>
+ <includes>
+ <include>**/b/**</include>
+ <include>META-INF/**</include>
+ </includes>
+ <archive>
+ <manifestEntries>
+ <Manifest-Version>2</Manifest-Version>
+ <Bundle-Name>OSGi controller test bundle</Bundle-Name>
+ <Bundle-SymbolicName>osgi-installer-snapshot-test</Bundle-SymbolicName>
+ <!--
+ Need to use OSGi-compliant version, so .SNAPSHOT not -SNAPSHOT.
+ In real bundles, bnd and similar tools to the conversion.
+ -->
+ <Bundle-Version>1.0.0.SNAPSHOT</Bundle-Version>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </execution>
</executions>
</plugin>
</plugins>
Added: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java?rev=805872&view=auto
==============================================================================
--- sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java (added)
+++ sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java Wed Aug 19 16:38:00 2009
@@ -0,0 +1,96 @@
+/*
+ * 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.sling.osgi.installer.it;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertEquals;
+
+import java.io.IOException;
+
+import org.apache.sling.osgi.installer.OsgiInstaller;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.JUnit4TestRunner;
+import org.osgi.framework.Bundle;
+
+/** Verify that snapshot bundles are updated even if
+ * their version number does not change.
+ * TODO: digests should be taken into account, i.e. no action
+ * if digest does not change
+ */
+@RunWith(JUnit4TestRunner.class)
+public class BundleSnapshotUpdateTest extends OsgiInstallerTestBase {
+
+ @org.ops4j.pax.exam.junit.Configuration
+ public static Option[] configuration() {
+ return defaultConfiguration();
+ }
+
+ @Before
+ public void setUp() {
+ setupInstaller();
+ }
+
+ @After
+ public void tearDown() {
+ super.tearDown();
+ }
+
+ @Test
+ public void testNonSnapshot() throws IOException {
+ final String symbolicName = "osgi-installer-testbundle";
+ assertNull("Test bundle must be absent before installing", findBundle(symbolicName));
+ resetCounters();
+ installer.addResource(getInstallableResource(
+ getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar")));
+ // wait for two tasks: install and start
+ waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2);
+ final Bundle b = findBundle(symbolicName);
+ assertNotNull("Test bundle 1.1 must be found after waitForInstallerAction", b);
+
+ final long nOps = installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER];
+ installer.addResource(getInstallableResource(
+ getTestBundle(BUNDLE_BASE_NAME + "-testbundle-1.1.jar")));
+ waitForInstallerAction(OsgiInstaller.INSTALLER_CYCLES_COUNTER, 1);
+ assertEquals("Updating non-snapshot bundle must not generate any OSGi tasks",
+ nOps, installer.getCounters()[OsgiInstaller.OSGI_TASKS_COUNTER]);
+ }
+
+ @Test
+ public void testSnapshot() throws IOException {
+ final String symbolicName = "osgi-installer-snapshot-test";
+ assertNull("Snapshot test bundle must be absent before installing", findBundle(symbolicName));
+ resetCounters();
+ installer.addResource(getInstallableResource(
+ getTestBundle(BUNDLE_BASE_NAME + "-snap.jar")));
+ // wait for two tasks: install and start
+ waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 2);
+ final Bundle b = findBundle(symbolicName);
+ assertNotNull("Snapshot bundle must be found after waitForInstallerAction", b);
+
+ resetCounters();
+ installer.addResource(getInstallableResource(
+ getTestBundle(BUNDLE_BASE_NAME + "-snap.jar")));
+ waitForInstallerAction(OsgiInstaller.INSTALLER_CYCLES_COUNTER, 1);
+ // If this fails it means bundle has not been updated
+ waitForInstallerAction(OsgiInstaller.OSGI_TASKS_COUNTER, 1);
+ }
+}
Propchange: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: sling/trunk/installer/osgi/it/src/test/java/org/apache/sling/osgi/installer/it/BundleSnapshotUpdateTest.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision Rev URL