You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ej...@apache.org on 2010/11/17 23:40:30 UTC

svn commit: r1036262 - /incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/OBRAriesResolver.java

Author: ejiang
Date: Wed Nov 17 22:40:30 2010
New Revision: 1036262

URL: http://svn.apache.org/viewvc?rev=1036262&view=rev
Log:
ARIES-496: Make provisioning against local repository configurable + itests

Modified:
    incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/OBRAriesResolver.java

Modified: incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/OBRAriesResolver.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/OBRAriesResolver.java?rev=1036262&r1=1036261&r2=1036262&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/OBRAriesResolver.java (original)
+++ incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/OBRAriesResolver.java Wed Nov 17 22:40:30 2010
@@ -61,6 +61,7 @@ import org.apache.aries.application.reso
 import org.apache.aries.application.resolver.obr.impl.OBRBundleInfo;
 import org.apache.aries.application.resolver.obr.impl.RepositoryGeneratorImpl;
 import org.apache.aries.application.resolver.obr.impl.ResourceWrapper;
+import org.apache.aries.application.utils.AppConstants;
 import org.apache.aries.application.utils.filesystem.IOUtils;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor.NameValueMap;
@@ -146,41 +147,12 @@ public class OBRAriesResolver implements
   {
      log.debug(LOG_ENTRY, "resolve", new Object[]{appName, appVersion,byValueBundles, inputs});
     Collection<ImportedBundle> importedBundles = toImportedBundle(inputs);
-    DataModelHelper helper = repositoryAdmin.getHelper();
-
-   
     Collection<ModelledResource> toReturn = new ArrayList<ModelledResource>();
-    Repository appRepo;
-    try {      
-      ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
-      RepositoryGeneratorImpl.generateRepository(repositoryAdmin, appName + "_" + appVersion, byValueBundles, bytesOut);
-      appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
-    } catch (Exception e) {
-      throw new ResolverException(e);
-    } 
-        
-    List<Repository> resolveRepos = new ArrayList<Repository>();
-    // add system repository
-    resolveRepos.add(repositoryAdmin.getSystemRepository());
-    // add local repository
-    resolveRepos.add(getLocalRepository(repositoryAdmin));
-    // add application repository
-    resolveRepos.add(appRepo);
-    
-
-    
-   // Need to refresh the repositories added to repository admin
-    
-    // add user-defined repositories
-    Repository[] repos = repositoryAdmin.listRepositories();
-    for (Repository r : repos) {
-      resolveRepos.add(r);      
-    }     
-    Resolver obrResolver = repositoryAdmin.resolver(resolveRepos.toArray(new Repository[resolveRepos.size()]));
-    addPlatformRepositories (obrResolver, appName);
     
+    Resolver obrResolver = getConfiguredObrResolver(appName, appVersion, byValueBundles);
     // add a resource describing the requirements of the application metadata.
     obrResolver.add(createApplicationResource( appName, appVersion, importedBundles));
+    
     if (obrResolver.resolve()) {
       
       List<Resource> requiredResources = retrieveRequiredResources(obrResolver);
@@ -238,15 +210,48 @@ public class OBRAriesResolver implements
     }
     
   }
+
+  private Resolver getConfiguredObrResolver(String appName, String appVersion,
+      Collection<ModelledResource> byValueBundles) throws ResolverException
+  {
+    log.debug(LOG_ENTRY, "getConfiguredObrResolver", new Object[]{appName, appVersion,byValueBundles });
+    DataModelHelper helper = repositoryAdmin.getHelper();
+    Repository appRepo;
+    try {      
+      ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
+      RepositoryGeneratorImpl.generateRepository(repositoryAdmin, appName + "_" + appVersion, byValueBundles, bytesOut);
+      appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
+    } catch (Exception e) {
+      throw new ResolverException(e);
+    } 
+        
+    List<Repository> resolveRepos = new ArrayList<Repository>();
+    // add system repository
+    resolveRepos.add(repositoryAdmin.getSystemRepository());
+    // add local repository if configured
+    if (!(excludeLocalRuntime())) {
+      resolveRepos.add(getLocalRepository(repositoryAdmin));
+    }
+    // add application repository
+    resolveRepos.add(appRepo);
+    // Need to refresh the repositories added to repository admin 
+    // add user-defined repositories
+    Repository[] repos = repositoryAdmin.listRepositories();
+    for (Repository r : repos) {
+      resolveRepos.add(r);      
+    }     
+    Resolver obrResolver = repositoryAdmin.resolver(resolveRepos.toArray(new Repository[resolveRepos.size()]));
+    addPlatformRepositories (obrResolver, appName);
+    log.debug(LOG_EXIT, "getConfiguredObrResolver", obrResolver);
+    return obrResolver;
+  }
  
+  
   @Deprecated
   @Override
   public Set<BundleInfo> resolve(AriesApplication app, ResolveConstraint... constraints) throws ResolverException
   {
     log.trace("resolving {}", app);
-    DataModelHelper helper = repositoryAdmin.getHelper();
-
-    
     ApplicationMetadata appMeta = app.getApplicationMetadata();
 
     String appName = appMeta.getApplicationSymbolicName();
@@ -263,34 +268,7 @@ public class OBRAriesResolver implements
       }
     }
 
-    Repository appRepo;
-    try {
-      
-      ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
-      RepositoryGeneratorImpl.generateRepository(repositoryAdmin, appName + "_" + appVersion, toModelledResource(app.getBundleInfo()), bytesOut);
-      
-      appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
-    } catch (Exception e) {
-      throw new ResolverException(e);
-    } 
-        
-    List<Repository> resolveRepos = new ArrayList<Repository>();
-    
-    // add system repository
-    resolveRepos.add(repositoryAdmin.getSystemRepository());
- // add local repository
-    resolveRepos.add(getLocalRepository(repositoryAdmin));
-    // add application repository
-    resolveRepos.add(appRepo);
-    
-    // add user-defined repositories
-    Repository[] repos = repositoryAdmin.listRepositories();
-    for (Repository r : repos) {
-      resolveRepos.add(r);      
-    }    
-    Resolver obrResolver = repositoryAdmin.resolver(resolveRepos.toArray(new Repository[resolveRepos.size()]));
-    addPlatformRepositories (obrResolver, appName);
-    
+    Resolver obrResolver = getConfiguredObrResolver(appName, appVersion.toString(), toModelledResource(app.getBundleInfo()));
     // add a resource describing the requirements of the application metadata.
     obrResolver.add(createApplicationResource( appName, appVersion, contents));
     if (obrResolver.resolve()) {
@@ -334,6 +312,8 @@ public class OBRAriesResolver implements
       throw re;
     }
   }
+
+  
   
   @Override
   public BundleInfo getBundleInfo(String bundleSymbolicName, Version bundleVersion)
@@ -710,5 +690,8 @@ public class OBRAriesResolver implements
    }
    
 
+   private boolean excludeLocalRuntime() {   
+     return Boolean.parseBoolean(System.getProperty(AppConstants.PROVISON_EXCLUDE_LOCAL_REPO_SYSPROP));     
+   }
 
 }