You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by li...@apache.org on 2010/06/07 22:16:21 UTC

svn commit: r952409 - in /incubator/aries/trunk/application: application-itests/src/test/java/org/apache/aries/application/runtime/itests/ application-utils/src/main/java/org/apache/aries/application/impl/

Author: linsun
Date: Mon Jun  7 20:16:21 2010
New Revision: 952409

URL: http://svn.apache.org/viewvc?rev=952409&view=rev
Log:
ARIES-327 From time to time OBRResolverTest causes Aries build to fail - patch from Bartosz Kowalewski

Modified:
    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/OBRAppManagerTest.java
    incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverTest.java
    incubator/aries/trunk/application/application-utils/src/main/java/org/apache/aries/application/impl/ContentImpl.java

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=952409&r1=952408&r2=952409&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 Jun  7 20:16:21 2010
@@ -16,6 +16,7 @@
  */
 package org.apache.aries.application.runtime.itests;
 
+import static org.junit.Assert.assertNotNull;
 import static org.ops4j.pax.exam.CoreOptions.options;
 import static org.ops4j.pax.exam.CoreOptions.wrappedBundle;
 import static org.ops4j.pax.exam.OptionUtils.combine;
@@ -23,6 +24,8 @@ import static org.ops4j.pax.exam.OptionU
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.aries.application.management.AriesApplicationResolver;
+import org.apache.aries.blueprint.BlueprintConstants;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.runner.RunWith;
@@ -33,6 +36,7 @@ import org.ops4j.pax.exam.junit.JUnit4Te
 import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleException;
 import org.osgi.framework.Constants;
 import org.osgi.framework.Filter;
 import org.osgi.framework.FrameworkUtil;
@@ -149,5 +153,26 @@ public class AbstractIntegrationTest {
       throw new RuntimeException(e);
     }
   }
+  
+  /**
+   * Checks if the OBR Resolver is available. If this test succeeds, it starts 
+   * the 'org.apache.aries.application.runtime' bundle. Of course this method 
+   * can only work properly if org.apache.aries.application.runtime was added
+   * to Pax Exam configuration with 'noStart()'. 
+   * @throws BundleException 
+   */
+  protected void startApplicationRuntimeBundle() throws BundleException{
+    // Need to make sure that the OBR resolver was made available. This 
+    // resolver is registered by the org.apache.aries.application.resolver.obr
+    // bundle with osgi.service.blueprint.compname=obr-resolver.
+    getOsgiService(AriesApplicationResolver.class, "(" + 
+        BlueprintConstants.COMPONENT_NAME_PROPERTY + "=obr-resolver)", 
+        DEFAULT_TIMEOUT);
+    // If we reached this point, initialization of the OBR resolver has been
+    // finished. Let's start the org.apache.aries.application.runtime bundle.
+    Bundle appRuntimeBundle = getBundle("org.apache.aries.application.runtime");
+    assertNotNull(appRuntimeBundle);
+    appRuntimeBundle.start();
+  }
 
 }
\ No newline at end of file

Modified: incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRAppManagerTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRAppManagerTest.java?rev=952409&r1=952408&r2=952409&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRAppManagerTest.java (original)
+++ incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRAppManagerTest.java Mon Jun  7 20:16:21 2010
@@ -107,6 +107,8 @@ public class OBRAppManagerTest extends A
 
   @Test
   public void testAppWithApplicationManifest() throws Exception {
+    startApplicationRuntimeBundle();
+
     RepositoryAdmin repositoryAdmin = getOsgiService(RepositoryAdmin.class);
     
     repositoryAdmin.addRepository(new File("repository.xml").toURI().toURL());
@@ -160,7 +162,7 @@ public class OBRAppManagerTest extends A
         mavenBundle("org.apache.aries.application", "org.apache.aries.application.api"),
         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").noStart(),
         mavenBundle("org.apache.aries.application", "org.apache.aries.application.resolver.obr"),
         mavenBundle("org.apache.felix", "org.apache.felix.bundlerepository"),
         mavenBundle("org.apache.aries.application", "org.apache.aries.application.runtime.itest.interfaces"),

Modified: incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverTest.java?rev=952409&r1=952408&r2=952409&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverTest.java (original)
+++ incubator/aries/trunk/application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/OBRResolverTest.java Mon Jun  7 20:16:21 2010
@@ -67,8 +67,8 @@ public class OBRResolverTest extends Abs
 {
   public static final String CORE_BUNDLE_BY_VALUE = "core.bundle.by.value";
   public static final String CORE_BUNDLE_BY_REFERENCE = "core.bundle.by.reference";
-  public static final String TRANSITIVE_BUNDLE_BY_VALUE = "transitive.bundle.by.reference";
-  public static final String TRANSITIVE_BUNDLE_BY_REFERENCE = "transitive.bundle.by.value";
+  public static final String TRANSITIVE_BUNDLE_BY_VALUE = "transitive.bundle.by.value";
+  public static final String TRANSITIVE_BUNDLE_BY_REFERENCE = "transitive.bundle.by.reference";
   
   
   /* Use @Before not @BeforeClass so as to ensure that these resources
@@ -142,6 +142,8 @@ public class OBRResolverTest extends Abs
   @Test(expected=ResolverException.class)
   public void testBlogAppResolveFail() throws ResolverException, Exception
   {
+    startApplicationRuntimeBundle();
+
     generateOBRRepoXML(TRANSITIVE_BUNDLE_BY_REFERENCE + ".jar", CORE_BUNDLE_BY_REFERENCE + "_0.0.0.jar");
     
     RepositoryAdmin repositoryAdmin = getOsgiService(RepositoryAdmin.class);
@@ -163,6 +165,8 @@ public class OBRResolverTest extends Abs
   @Test
   public void testBlogApp() throws Exception 
   {
+    startApplicationRuntimeBundle();
+
     generateOBRRepoXML(TRANSITIVE_BUNDLE_BY_REFERENCE + ".jar", CORE_BUNDLE_BY_REFERENCE + ".jar");
     
     RepositoryAdmin repositoryAdmin = getOsgiService(RepositoryAdmin.class);
@@ -257,7 +261,7 @@ public class OBRResolverTest extends Abs
         mavenBundle("org.apache.aries.application", "org.apache.aries.application.api"),
         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").noStart(),
         mavenBundle("org.apache.aries.application", "org.apache.aries.application.resolver.obr"),
         mavenBundle("org.apache.felix", "org.apache.felix.bundlerepository"),
         mavenBundle("org.apache.aries.application", "org.apache.aries.application.runtime.itest.interfaces"),

Modified: incubator/aries/trunk/application/application-utils/src/main/java/org/apache/aries/application/impl/ContentImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-utils/src/main/java/org/apache/aries/application/impl/ContentImpl.java?rev=952409&r1=952408&r2=952409&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-utils/src/main/java/org/apache/aries/application/impl/ContentImpl.java (original)
+++ incubator/aries/trunk/application/application-utils/src/main/java/org/apache/aries/application/impl/ContentImpl.java Mon Jun  7 20:16:21 2010
@@ -32,7 +32,7 @@ import org.osgi.framework.Version;
 
 
 /**
- * Implementation of Content 
+ * Implementation of Content
  *
  */
 public final class ContentImpl implements Content