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/08/24 12:17:02 UTC

svn commit: r988464 - in /incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management: impl/AriesApplicationManagerImpl.java repository/ApplicationRepository.java

Author: mnuttall
Date: Tue Aug 24 10:17:02 2010
New Revision: 988464

URL: http://svn.apache.org/viewvc?rev=988464&view=rev
Log:
ARIES-384: ApplicationRepository should not use resolver to find the bundleInfo contained within itself

Modified:
    incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/impl/AriesApplicationManagerImpl.java
    incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/repository/ApplicationRepository.java

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=988464&r1=988463&r2=988464&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 Tue Aug 24 10:17:02 2010
@@ -285,7 +285,7 @@ public class AriesApplicationManagerImpl
     Dictionary dict = new Hashtable();
     dict.put(ApplicationRepository.REPOSITORY_SCOPE, app.getApplicationMetadata().getApplicationScope());
     _bundleContext.registerService(BundleRepository.class.getName(), 
-        new ApplicationRepository(_resolver), 
+        new ApplicationRepository(app), 
         dict);
     
     AriesApplicationContext result = _applicationContextManager.getApplicationContext(app);

Modified: incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/repository/ApplicationRepository.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/repository/ApplicationRepository.java?rev=988464&r1=988463&r2=988464&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/repository/ApplicationRepository.java (original)
+++ incubator/aries/trunk/application/application-management/src/main/java/org/apache/aries/application/management/repository/ApplicationRepository.java Tue Aug 24 10:17:02 2010
@@ -18,9 +18,9 @@
  */
 package org.apache.aries.application.management.repository;
 
+import java.util.Collections;
 import java.util.Set;
 
-import org.apache.aries.application.ApplicationMetadata;
 import org.apache.aries.application.Content;
 import org.apache.aries.application.DeploymentContent;
 import org.apache.aries.application.management.AriesApplication;
@@ -36,12 +36,12 @@ public class ApplicationRepository imple
 {
   private static final int REPOSITORY_COST = 0;
   public static final String REPOSITORY_SCOPE = "repositoryScope";
-  
+  private AriesApplication app;
   AriesApplicationResolver resolver;
 
-  public ApplicationRepository(AriesApplicationResolver resolver)
+  public ApplicationRepository(AriesApplication app)
   {
-    this.resolver = resolver;
+    this.app = app;
   }
   
   public int getCost()
@@ -56,13 +56,20 @@ public class ApplicationRepository imple
 
   private class BundleSuggestionImpl implements BundleSuggestion
   {
-    private BundleInfo bundleInfo;
+    private BundleInfo bundleInfo = null;
     
     BundleSuggestionImpl(DeploymentContent content)
     {
-      this.bundleInfo = resolver.getBundleInfo(content.getContentName(), content.getExactVersion());
+      if ((app.getBundleInfo() != null) && (!app.getBundleInfo().isEmpty())) {
+        for (BundleInfo bi : app.getBundleInfo()) {
+          if (bi.getSymbolicName().equals(content.getContentName()) && (bi.getVersion().equals(content.getVersion().getExactVersion()))) {
+            bundleInfo = bi;
+            break;
+          }
+        }
+      }
     }
-    
+
     public int getCost()
     {
       return REPOSITORY_COST;
@@ -70,22 +77,40 @@ public class ApplicationRepository imple
 
     public Set<Content> getExportPackage()
     {
+      if (bundleInfo != null) {
       return bundleInfo.getExportPackage();
+      } else {
+        return null;
+      }
     }
 
     public Set<Content> getImportPackage()
     {
-      return bundleInfo.getImportPackage();
-    }
-
-    public Version getVersion()
-    {
-      return bundleInfo.getVersion();
+      if (bundleInfo != null) {
+        return bundleInfo.getImportPackage();
+        } else {
+          return null;
+        }
+      
+    }
+
+    public Version getVersion() 
+    {
+      if (bundleInfo != null) {
+        return bundleInfo.getVersion();
+        } else {        	
+          return null;
+        }
+      
     }
 
     public Bundle install(BundleContext ctx, AriesApplication app) throws BundleException
     {
-      return ctx.installBundle(bundleInfo.getLocation());
+      if (bundleInfo != null ) {
+        return ctx.installBundle(bundleInfo.getLocation());
+      } else {
+        throw new BundleException("Unable to install the bundle, as the BundleInfo is null.");
+      }
     }
     
   }