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/09/15 16:06:56 UTC

svn commit: r997343 [2/2] - in /incubator/aries/trunk/application: application-api/ application-api/src/main/java/org/apache/aries/application/modelling/ application-api/src/main/java/org/apache/aries/application/modelling/utils/ application-deployment...

Copied: incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ModellingManagerImpl.java (from r996878, incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/ModellingManager.java)
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ModellingManagerImpl.java?p2=incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ModellingManagerImpl.java&p1=incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/ModellingManager.java&r1=996878&r2=997343&rev=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/ModellingManager.java (original)
+++ incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ModellingManagerImpl.java Wed Sep 15 14:06:54 2010
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.aries.application.modelling.utils;
+package org.apache.aries.application.modelling.impl;
 
 import java.util.Collection;
 import java.util.Map;
@@ -31,72 +31,101 @@ import org.apache.aries.application.mode
 import org.apache.aries.application.modelling.ImportedPackage;
 import org.apache.aries.application.modelling.ImportedService;
 import org.apache.aries.application.modelling.ModelledResource;
+import org.apache.aries.application.modelling.ModellingManager;
 import org.apache.aries.application.modelling.ParsedServiceElements;
-import org.apache.aries.application.modelling.impl.ExportedBundleImpl;
-import org.apache.aries.application.modelling.impl.ExportedPackageImpl;
-import org.apache.aries.application.modelling.impl.ExportedServiceImpl;
-import org.apache.aries.application.modelling.impl.ImportedBundleImpl;
-import org.apache.aries.application.modelling.impl.ImportedPackageImpl;
-import org.apache.aries.application.modelling.impl.ImportedServiceImpl;
-import org.apache.aries.application.modelling.impl.ModelledResourceImpl;
-import org.apache.aries.application.modelling.impl.ParsedServiceElementsImpl;
 
-public class ModellingManager
+public class ModellingManagerImpl implements ModellingManager
 {
 
-  public  static ExportedBundle getExportedBundle(Map<String, String> attributes, ImportedBundle fragHost) {
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getExportedBundle(java.util.Map, org.apache.aries.application.modelling.ImportedBundle)
+   */
+  public ExportedBundle getExportedBundle(Map<String, String> attributes, ImportedBundle fragHost) {
 
     return new ExportedBundleImpl(attributes, fragHost);
   }
-  public  static ExportedPackage getExportedPackage(ModelledResource mr, String pkg, Map<String, Object> attributes)  {
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getExportedPackage(org.apache.aries.application.modelling.ModelledResource, java.lang.String, java.util.Map)
+   */
+  public ExportedPackage getExportedPackage(ModelledResource mr, String pkg, Map<String, Object> attributes)  {
 
     return new ExportedPackageImpl(mr, pkg, attributes);
   }
-  public static  ExportedService getExportedService(String name, int ranking, Collection<String> ifaces, 
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getExportedService(java.lang.String, int, java.util.Collection, java.util.Map)
+   */
+  public ExportedService getExportedService(String name, int ranking, Collection<String> ifaces, 
       Map<String, Object> serviceProperties ) {
     return new ExportedServiceImpl (name, ranking, ifaces, serviceProperties );
   }
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getExportedService(java.lang.String, java.util.Map)
+   */
   @SuppressWarnings("deprecation")
-  public static ExportedService getExportedService(String ifaceName, Map<String, String> attrs) {
+  public ExportedService getExportedService(String ifaceName, Map<String, String> attrs) {
     return new ExportedServiceImpl (ifaceName, attrs );
   }
   
-  public static ImportedBundle getImportedBundle(String filterString, Map<String, String> attributes) throws InvalidAttributeException {
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getImportedBundle(java.lang.String, java.util.Map)
+   */
+  public ImportedBundle getImportedBundle(String filterString, Map<String, String> attributes) throws InvalidAttributeException {
     return new ImportedBundleImpl(filterString, attributes);
   }
   
-  public static ImportedBundle getImportedBundle(String bundleName, String versionRange) throws InvalidAttributeException {
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getImportedBundle(java.lang.String, java.lang.String)
+   */
+  public ImportedBundle getImportedBundle(String bundleName, String versionRange) throws InvalidAttributeException {
     return new ImportedBundleImpl(bundleName, versionRange);
   }
   
-  public static ImportedPackage getImportedPackage(String pkg, Map<String, String> attributes) throws InvalidAttributeException{
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getImportedPackage(java.lang.String, java.util.Map)
+   */
+  public ImportedPackage getImportedPackage(String pkg, Map<String, String> attributes) throws InvalidAttributeException{
     return new ImportedPackageImpl(pkg, attributes);
   }
   
-  public static ImportedService getImportedService(boolean optional, String iface, String componentName, 
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getImportedService(boolean, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)
+   */
+  public ImportedService getImportedService(boolean optional, String iface, String componentName, 
       String blueprintFilter, String id, boolean isMultiple) throws InvalidAttributeException{
     return new ImportedServiceImpl(optional, iface, componentName, blueprintFilter, id, isMultiple);
   }
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getImportedService(java.lang.String, java.util.Map)
+   */
   @SuppressWarnings("deprecation")
-  public static ImportedService getImportedService(String ifaceName, Map<String, String> attributes) throws InvalidAttributeException{
+  public ImportedService getImportedService(String ifaceName, Map<String, String> attributes) throws InvalidAttributeException{
     return new ImportedServiceImpl(ifaceName, attributes);
   }
   
-  public static ModelledResource getModelledResource(String fileURI, BundleInfo bundleInfo, 
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getModelledResource(java.lang.String, org.apache.aries.application.management.BundleInfo, java.util.Collection, java.util.Collection)
+   */
+  public ModelledResource getModelledResource(String fileURI, BundleInfo bundleInfo, 
       Collection<ImportedService> importedServices, 
       Collection<ExportedService> exportedServices) throws InvalidAttributeException {
     return new ModelledResourceImpl(fileURI, bundleInfo, importedServices, exportedServices);
     
   }
   
-  public static ModelledResource getModelledResource(String fileURI, Attributes bundleAttributes, 
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getModelledResource(java.lang.String, java.util.jar.Attributes, java.util.Collection, java.util.Collection)
+   */
+  public ModelledResource getModelledResource(String fileURI, Attributes bundleAttributes, 
       Collection<ImportedService> importedServices, 
       Collection<ExportedService> exportedServices) throws InvalidAttributeException {
     return new ModelledResourceImpl(fileURI, bundleAttributes, importedServices, exportedServices);
     
   }
   
-  public static ParsedServiceElements getParsedServiceElements ( Collection<ExportedService> services, 
+  /* (non-Javadoc)
+   * @see org.apache.aries.application.modelling.ModellingManager#getParsedServiceElements(java.util.Collection, java.util.Collection)
+   */
+  public ParsedServiceElements getParsedServiceElements ( Collection<ExportedService> services, 
       Collection<ImportedService> references) {
     return new ParsedServiceElementsImpl(services, references);
   }

Modified: incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ParserProxyImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ParserProxyImpl.java?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ParserProxyImpl.java (original)
+++ incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/impl/ParserProxyImpl.java Wed Sep 15 14:06:54 2010
@@ -19,6 +19,7 @@
 package org.apache.aries.application.modelling.impl;
 import static org.apache.aries.application.utils.AppConstants.LOG_ENTRY;
 import static org.apache.aries.application.utils.AppConstants.LOG_EXIT;
+
 import java.io.InputStream;
 import java.net.URL;
 import java.util.ArrayList;
@@ -31,10 +32,10 @@ import java.util.Set;
 import org.apache.aries.application.InvalidAttributeException;
 import org.apache.aries.application.modelling.ExportedService;
 import org.apache.aries.application.modelling.ImportedService;
+import org.apache.aries.application.modelling.ModellingManager;
 import org.apache.aries.application.modelling.ParsedServiceElements;
 import org.apache.aries.application.modelling.ParserProxy;
 import org.apache.aries.application.modelling.WrappedServiceMetadata;
-import org.apache.aries.application.modelling.utils.ModellingManager;
 import org.apache.aries.blueprint.ComponentDefinitionRegistry;
 import org.apache.aries.blueprint.ParserService;
 import org.osgi.framework.BundleContext;
@@ -52,12 +53,11 @@ import org.osgi.service.blueprint.reflec
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
-
 public class ParserProxyImpl implements ParserProxy {
   private Logger _logger = LoggerFactory.getLogger(ParserProxyImpl.class);
   private ParserService _parserService;
   private BundleContext _bundleContext;
+  private ModellingManager _modellingManager;
   
   public void setParserService (ParserService p) { 
     _parserService = p;
@@ -67,11 +67,11 @@ public class ParserProxyImpl implements 
     _bundleContext = b;
   }
   
-  public ParserProxyImpl(ParserService p, BundleContext b) {
-	  _parserService = p;
-	  _bundleContext = b;
+  public void setModellingManager (ModellingManager m) { 
+    _modellingManager = m;
   }
-
+  
+  @Override
   public List<? extends WrappedServiceMetadata> parse(List<URL> blueprintsToParse) throws Exception {
     _logger.debug(LOG_ENTRY, "parse", new Object[]{blueprintsToParse});
     ComponentDefinitionRegistry cdr = _parserService.parse (blueprintsToParse, _bundleContext.getBundle());
@@ -80,8 +80,8 @@ public class ParserProxyImpl implements 
     return result;
   }
    
-  public List<? extends WrappedServiceMetadata> parse(URL blueprintToParse)
-      throws Exception {
+  @Override
+  public List<? extends WrappedServiceMetadata> parse(URL blueprintToParse) throws Exception {
     _logger.debug(LOG_ENTRY, "parse", new Object[]{blueprintToParse});
     List<URL> list = new ArrayList<URL>();
     list.add(blueprintToParse);
@@ -91,9 +91,8 @@ public class ParserProxyImpl implements 
     return result;
   }
 
-
-  public List<? extends WrappedServiceMetadata> parse(InputStream blueprintToParse)
-      throws Exception {
+  @Override
+  public List<? extends WrappedServiceMetadata> parse(InputStream blueprintToParse) throws Exception {
     _logger.debug(LOG_ENTRY, "parse", new Object[]{blueprintToParse});
     ComponentDefinitionRegistry cdr = _parserService.parse (blueprintToParse, _bundleContext.getBundle());
     List<? extends WrappedServiceMetadata> result = parseCDRForServices (cdr, true);
@@ -102,12 +101,13 @@ public class ParserProxyImpl implements 
   }
  
 
+  @Override
   public ParsedServiceElements parseAllServiceElements(InputStream blueprintToParse) throws Exception {
     _logger.debug(LOG_ENTRY, "parseAllServiceElements", new Object[]{blueprintToParse});
     ComponentDefinitionRegistry cdr = _parserService.parse (blueprintToParse, _bundleContext.getBundle());
     Collection<ExportedService> services = parseCDRForServices(cdr, false);
     Collection<ImportedService> references = parseCDRForReferences (cdr);
-    ParsedServiceElements result = ModellingManager.getParsedServiceElements(services, references);
+    ParsedServiceElements result = _modellingManager.getParsedServiceElements(services, references);
     _logger.debug(LOG_EXIT, "parseAllServiceElements", new Object[]{result});
     return result;
   }
@@ -186,7 +186,7 @@ public class ParserProxyImpl implements 
         
         // If suppressAnonymous services, do not expose services that have no name
         if (!suppressAnonymousServices || (serviceName != null)) { 
-          ExportedService wsm = ModellingManager.getExportedService(serviceName, ranking, interfaces, serviceProps);
+          ExportedService wsm = _modellingManager.getExportedService(serviceName, ranking, interfaces, serviceProps);
           result.add(wsm);
         }
       }
@@ -224,7 +224,7 @@ public class ParserProxyImpl implements 
         // There will be no matching service for this reference. 
         // For now we blacklist certain objectClasses and filters - this is a pretty dreadful thing to do. 
         if (isNotBlacklisted (iface, blueprintFilter)) { 
-          ImportedService ref = ModellingManager.getImportedService (optional, iface, compName, blueprintFilter, 
+          ImportedService ref = _modellingManager.getImportedService (optional, iface, compName, blueprintFilter, 
               id, isMultiple);
           result.add (ref);  
         }

Modified: incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/internal/PackageRequirementMerger.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/internal/PackageRequirementMerger.java?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/internal/PackageRequirementMerger.java (original)
+++ incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/internal/PackageRequirementMerger.java Wed Sep 15 14:06:54 2010
@@ -28,7 +28,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.aries.application.modelling.ImportedPackage;
-import org.apache.aries.application.modelling.utils.ModellingUtils;
+import org.apache.aries.application.modelling.utils.impl.ModellingHelperImpl;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -74,7 +74,7 @@ public final class PackageRequirementMer
         continue;
       }
       
-      ImportedPackage intersectReq = ModellingUtils.intersectPackage(req, existingReq);
+      ImportedPackage intersectReq = ModellingHelperImpl.intersectPackage_(req, existingReq);
       if (intersectReq != null)
       {
         reqMap.put(pkgName, intersectReq);

Copied: incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/impl/ModellingHelperImpl.java (from r996878, incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/ModellingUtils.java)
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/impl/ModellingHelperImpl.java?p2=incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/impl/ModellingHelperImpl.java&p1=incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/ModellingUtils.java&r1=996878&r2=997343&rev=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/ModellingUtils.java (original)
+++ incubator/aries/trunk/application/application-modeller/src/main/java/org/apache/aries/application/modelling/utils/impl/ModellingHelperImpl.java Wed Sep 15 14:06:54 2010
@@ -16,26 +16,32 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.aries.application.modelling.utils;
+package org.apache.aries.application.modelling.utils.impl;
 
-import static org.apache.aries.application.modelling.utils.ModellingConstants.OPTIONAL_KEY;
+import static org.apache.aries.application.modelling.ModellingConstants.OPTIONAL_KEY;
 import static org.apache.aries.application.utils.AppConstants.LOG_ENTRY;
 import static org.apache.aries.application.utils.AppConstants.LOG_EXIT;
 import static org.osgi.framework.Constants.BUNDLE_VERSION_ATTRIBUTE;
 import static org.osgi.framework.Constants.VERSION_ATTRIBUTE;
 
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import org.apache.aries.application.InvalidAttributeException;
 import org.apache.aries.application.VersionRange;
+import org.apache.aries.application.modelling.DeployedBundles;
 import org.apache.aries.application.modelling.ImportedBundle;
 import org.apache.aries.application.modelling.ImportedPackage;
+import org.apache.aries.application.modelling.ModelledResource;
+import org.apache.aries.application.modelling.ModellingConstants;
 import org.apache.aries.application.modelling.Provider;
+import org.apache.aries.application.modelling.impl.DeployedBundlesImpl;
 import org.apache.aries.application.modelling.impl.ImportedBundleImpl;
 import org.apache.aries.application.modelling.impl.ImportedPackageImpl;
 import org.apache.aries.application.modelling.internal.MessageUtil;
+import org.apache.aries.application.modelling.utils.ModellingHelper;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor.NameValueMap;
 import org.osgi.framework.Constants;
@@ -43,17 +49,48 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 
-public class ModellingUtils
+public class ModellingHelperImpl implements ModellingHelper
 {
-  private static final  Logger logger = LoggerFactory.getLogger(ModellingUtils.class);
-  /**
-   * Check that all mandatory attributes from a Provider are specified by the consumer's attributes
-   * @param consumerAttributes
-   * @param p
-   * @return true if all mandatory attributes are present, or no attributes are mandatory
-   */
-  public static boolean areMandatoryAttributesPresent(Map<String,String> consumerAttributes, Provider p) {
-    logger.debug(LOG_ENTRY, "areMandatoryAttributesPresent", new Object[]{consumerAttributes, p});
+  private static final  Logger logger = LoggerFactory.getLogger(ModellingHelperImpl.class);
+
+  
+  @Override
+  public boolean areMandatoryAttributesPresent(
+      Map<String, String> consumerAttributes, Provider p) {
+    return areMandatoryAttributesPresent_(consumerAttributes, p);
+  }
+
+
+  @Override
+  public ImportedBundle buildFragmentHost(String fragmentHostHeader)
+      throws InvalidAttributeException {
+    return buildFragmentHost_(fragmentHostHeader);
+  }
+
+
+  @Override
+  public ImportedPackage intersectPackage(ImportedPackage p1, ImportedPackage p2) {
+    return intersectPackage_(p1, p2);
+  }
+  
+  @Override
+  public DeployedBundles createDeployedBundles(String assetName,
+      Collection<ImportedBundle> appContentNames,
+      Collection<ImportedBundle> appUseBundleNames,
+      Collection<ModelledResource> fakeServiceProvidingBundles) 
+  {
+    logger.debug(LOG_ENTRY, "createDeployedBundles", new Object[]{assetName, 
+        appContentNames, appUseBundleNames, fakeServiceProvidingBundles});  
+    DeployedBundles result = new DeployedBundlesImpl (assetName, 
+        appContentNames, appUseBundleNames, fakeServiceProvidingBundles);
+    logger.debug(LOG_EXIT, "createDeployedBundles", result);
+    return result;
+  }
+  
+  // These underlying static methods are directly accessible 
+  // from other classes within the bundle
+  public static boolean areMandatoryAttributesPresent_(Map<String,String> consumerAttributes, Provider p) {
+    logger.debug(LOG_ENTRY, "areMandatoryAttributesPresent_", new Object[]{consumerAttributes, p});
     boolean allPresent = true;
     String mandatory = (String) p.getAttributes().get(Constants.MANDATORY_DIRECTIVE + ":");
     
@@ -66,14 +103,14 @@ public class ModellingUtils
           break;
       }
     }
-    logger.debug(LOG_EXIT, "areMandatoryAttributesPresent", allPresent);
+    logger.debug(LOG_EXIT, "areMandatoryAttributesPresent_", allPresent);
     return allPresent;
   }
   
   
   
-  public static ImportedBundle buildFragmentHost(String fragmentHostHeader) throws InvalidAttributeException {
-    logger.debug(LOG_ENTRY, "buildFragmentHost", new Object[]{fragmentHostHeader});
+  public static ImportedBundle buildFragmentHost_(String fragmentHostHeader) throws InvalidAttributeException {
+    logger.debug(LOG_ENTRY, "buildFragmentHost_", new Object[]{fragmentHostHeader});
     if(fragmentHostHeader == null) { 
       
       return null;
@@ -96,19 +133,13 @@ public class ModellingUtils
     String filter = ManifestHeaderProcessor.generateFilter(attribs);
     
     ImportedBundle result = new ImportedBundleImpl(filter, attribs);
-    logger.debug(LOG_EXIT, "buildFragmentHost", result);
+    logger.debug(LOG_EXIT, "buildFragmentHost_", result);
     return result;
   }
   
-  /**
-   * Create a new ImnportedPackage that is the intersection of the two supplied imports.
-   * @param p1
-   * @param p2
-   * @return ImportedPackageImpl representing the intersection, or null. All attributes must match exactly.
-   */
-  public static ImportedPackage intersectPackage (ImportedPackage p1, ImportedPackage p2) { 
+  public static ImportedPackage intersectPackage_ (ImportedPackage p1, ImportedPackage p2) { 
     
-    logger.debug(LOG_ENTRY, "intersectPackage", new Object[]{p1, p2});
+    logger.debug(LOG_ENTRY, "intersectPackage_", new Object[]{p1, p2});
     ImportedPackage result = null;
     if (p1.getPackageName().equals(p2.getPackageName()))
     {
@@ -174,9 +205,8 @@ public class ModellingUtils
         }
       }
     } 
-    logger.debug(LOG_EXIT, "intersectPackage", result);
+    logger.debug(LOG_EXIT, "intersectPackage_", result);
     return result;
   }
   
-  
 }

Modified: incubator/aries/trunk/application/application-modeller/src/main/resources/OSGI-INF/blueprint/app-modeller.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/main/resources/OSGI-INF/blueprint/app-modeller.xml?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/main/resources/OSGI-INF/blueprint/app-modeller.xml (original)
+++ incubator/aries/trunk/application/application-modeller/src/main/resources/OSGI-INF/blueprint/app-modeller.xml Wed Sep 15 14:06:54 2010
@@ -18,18 +18,24 @@
 <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="modelledResourceManager" class="org.apache.aries.application.modelling.impl.ModelledResourceManagerImpl">
-    <property name= "parserService" ref="parser-service"/>
-    <property name="bundleContext" ref="blueprintBundleContext"/>
+  <bean id="modelledResourceManager" class="org.apache.aries.application.modelling.impl.ModelledResourceManagerImpl">
+    <property name="modellingManager" ref="modellingManager"/>
+    <property name="parserProxy" ref="parserProxy"/>
   </bean>
-  <reference id="parser-service" interface="org.apache.aries.blueprint.ParserService"/>
   <service id = "modelledResourceManagerService" ref="modelledResourceManager" interface="org.apache.aries.application.modelling.ModelledResourceManager"/>
-  
+
+  <reference id="parser-service" interface="org.apache.aries.blueprint.ParserService"/>
   <bean id="parserProxy" class="org.apache.aries.application.modelling.impl.ParserProxyImpl">
-    <argument index="0" ref="parser-service"/>
-    <argument index="1" ref="blueprintBundleContext"/>
+    <property name="parserService" ref="parser-service"/>
+    <property name="bundleContext" ref="blueprintBundleContext"/>
+    <property name="modellingManager" ref="modellingManager"/>
   </bean>
   <service id="parserProxyService" ref="parserProxy" interface="org.apache.aries.application.modelling.ParserProxy"/>
   
+  <bean id="modellingManager" class="org.apache.aries.application.modelling.impl.ModellingManagerImpl"/>
+  <service id="modellingManagerService" ref="modellingManager" interface="org.apache.aries.application.modelling.ModellingManager"/>
+  
+  <bean id="modellingHelper" class="org.apache.aries.application.modelling.utils.impl.ModellingHelperImpl"/>
+  <service id="modellingHelperService" ref="modellingHelper" interface="org.apache.aries.application.modelling.utils.ModellingHelper"/>
   
 </blueprint>
\ No newline at end of file

Modified: incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/impl/ParserProxyImplTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/impl/ParserProxyImplTest.java?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/impl/ParserProxyImplTest.java (original)
+++ incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/impl/ParserProxyImplTest.java Wed Sep 15 14:06:54 2010
@@ -35,11 +35,11 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.aries.application.modelling.ModellingManager;
 import org.apache.aries.application.modelling.ParsedServiceElements;
 import org.apache.aries.application.modelling.ParserProxy;
 import org.apache.aries.application.modelling.WrappedReferenceMetadata;
 import org.apache.aries.application.modelling.WrappedServiceMetadata;
-import org.apache.aries.application.modelling.utils.ModellingManager;
 import org.apache.aries.blueprint.ParserService;
 import org.apache.aries.blueprint.container.NamespaceHandlerRegistry;
 import org.apache.aries.blueprint.container.ParserServiceImpl;
@@ -54,6 +54,7 @@ import org.osgi.framework.BundleContext;
 public class ParserProxyImplTest {
 
   static ParserProxy _parserProxy;
+  static ModellingManager _modellingManager;
   
   @BeforeClass
   public static void setup() { 
@@ -61,7 +62,11 @@ public class ParserProxyImplTest {
     NamespaceHandlerRegistry nhri = new NamespaceHandlerRegistryImpl (mockCtx);
     ParserService parserService = new ParserServiceImpl(nhri);
     mockCtx.registerService(ParserService.class.getName(), parserService, new Hashtable<String, String>());
-    _parserProxy = new ParserProxyImpl(parserService, mockCtx); 
+    _parserProxy = new ParserProxyImpl();
+    ((ParserProxyImpl)_parserProxy).setParserService(parserService);
+    ((ParserProxyImpl)_parserProxy).setBundleContext(mockCtx);
+    _modellingManager = new ModellingManagerImpl();
+    ((ParserProxyImpl)_parserProxy).setModellingManager(_modellingManager);
   }
   
   
@@ -166,9 +171,9 @@ public class ParserProxyImplTest {
   private Set<WrappedReferenceMetadata> getTest2ExpectedReferences() throws Exception { 
     Set<WrappedReferenceMetadata> expectedResults = new HashSet<WrappedReferenceMetadata>();
          
-    expectedResults.add(ModellingManager.getImportedService(false, "foo.bar.MyInjectedService", null, 
+    expectedResults.add(_modellingManager.getImportedService(false, "foo.bar.MyInjectedService", null, 
         null, "fromOutside", false));
-    expectedResults.add(ModellingManager.getImportedService(false, "my.logging.service", null, "(&(trace=on)(debug=true))", "refList1", true));
+    expectedResults.add(_modellingManager.getImportedService(false, "my.logging.service", null, "(&(trace=on)(debug=true))", "refList1", true));
     
     return expectedResults;
   }
@@ -177,8 +182,8 @@ public class ParserProxyImplTest {
   private Set<WrappedServiceMetadata> getTest2ExpectedServices() { 
     Set<WrappedServiceMetadata> expectedResults = getTest1ExpectedResults();
         
-    expectedResults.add(ModellingManager.getExportedService("", 0, Arrays.asList("foo.bar.AnonService"), null));
-    expectedResults.add(ModellingManager.getExportedService("", 0, Arrays.asList("foo.bar.NamedInnerBeanService"), null));
+    expectedResults.add(_modellingManager.getExportedService("", 0, Arrays.asList("foo.bar.AnonService"), null));
+    expectedResults.add(_modellingManager.getExportedService("", 0, Arrays.asList("foo.bar.NamedInnerBeanService"), null));
     return expectedResults;
   }
   
@@ -188,25 +193,25 @@ public class ParserProxyImplTest {
     props.put ("priority", "9");
     props.put("volume", "11");
     props.put("osgi.service.blueprint.compname", "myBean");
-    expectedResults.add(ModellingManager.getExportedService("myService", 0, Arrays.asList("foo.bar.MyService"), props));
+    expectedResults.add(_modellingManager.getExportedService("myService", 0, Arrays.asList("foo.bar.MyService"), props));
 
     props = new HashMap<String, Object>();
     props.put ("priority", "7");
     props.put ("volume", "11");
     props.put ("osgi.service.blueprint.compname", "bean1");
-    expectedResults.add(ModellingManager.getExportedService("service1.should.be.exported", 0, Arrays.asList("foo.bar.MyService"), props));
+    expectedResults.add(_modellingManager.getExportedService("service1.should.be.exported", 0, Arrays.asList("foo.bar.MyService"), props));
  
     props = new HashMap<String, Object>();
     props.put ("customer", "pig");
     props.put ("osgi.service.blueprint.compname", "bean2");
-    expectedResults.add(ModellingManager.getExportedService("service2.should.not.be.exported", 0, Arrays.asList("com.acme.Delivery"), props));
+    expectedResults.add(_modellingManager.getExportedService("service2.should.not.be.exported", 0, Arrays.asList("com.acme.Delivery"), props));
         
     props = new HashMap<String, Object>();
     props.put ("customer", "pig");
     props.put ("target", "rabbit");
     props.put ("payload", "excessive");
     props.put ("osgi.service.blueprint.compname", "bean3");
-    expectedResults.add(ModellingManager.getExportedService("bean3", 0, Arrays.asList("com.acme.Delivery"), props));
+    expectedResults.add(_modellingManager.getExportedService("bean3", 0, Arrays.asList("com.acme.Delivery"), props));
        
     return expectedResults;
   } 

Modified: incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/AbstractBundleResourceTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/AbstractBundleResourceTest.java?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/AbstractBundleResourceTest.java (original)
+++ incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/AbstractBundleResourceTest.java Wed Sep 15 14:06:54 2010
@@ -32,6 +32,7 @@ import org.apache.aries.application.mode
 import org.apache.aries.application.modelling.ImportedPackage;
 import org.apache.aries.application.modelling.ImportedService;
 import org.apache.aries.application.modelling.ModelledResource;
+import org.apache.aries.application.modelling.ModellingConstants;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor;
 import org.junit.Before;
 import org.junit.Ignore;

Modified: incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/DeployedBundlesTest.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/DeployedBundlesTest.java?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/DeployedBundlesTest.java (original)
+++ incubator/aries/trunk/application/application-modeller/src/test/java/org/apache/aries/application/modelling/utils/DeployedBundlesTest.java Wed Sep 15 14:06:54 2010
@@ -32,6 +32,7 @@ import java.util.jar.Attributes;
 
 import org.apache.aries.application.InvalidAttributeException;
 import org.apache.aries.application.management.ResolverException;
+import org.apache.aries.application.modelling.DeployedBundles;
 import org.apache.aries.application.modelling.ExportedService;
 import org.apache.aries.application.modelling.ImportedBundle;
 import org.apache.aries.application.modelling.ImportedService;
@@ -40,6 +41,7 @@ import org.apache.aries.application.mode
 import org.apache.aries.application.modelling.impl.ImportedBundleImpl;
 import org.apache.aries.application.modelling.impl.ImportedServiceImpl;
 import org.apache.aries.application.modelling.impl.ModelledResourceImpl;
+import org.apache.aries.application.modelling.utils.impl.ModellingHelperImpl;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor.NameValueMap;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor.NameValuePair;
@@ -62,7 +64,7 @@ public final class DeployedBundlesTest
     uses.add(new ImportedBundleImpl("bundle.c", "1.0.0"));
     uses.add(new ImportedBundleImpl("bundle.d", "1.0.0"));
     
-    return new DeployedBundles("test",content, uses, null);
+    return new ModellingHelperImpl().createDeployedBundles("test",content, uses, null);
   }
   
   private void basicResolve(DeployedBundles db, boolean cPersistent) throws InvalidAttributeException {
@@ -271,7 +273,8 @@ public final class DeployedBundlesTest
     else if (c == ternary.USES)
       uses.add(new ImportedBundleImpl("bundle.c", "1.0.0"));
     
-    return new DeployedBundles("test",content, uses, null);
+    // In a unit test we could go straight to the static method; choosing not to in this case. 
+    return new ModellingHelperImpl().createDeployedBundles("test",content, uses, null);
   }
   
   @Test

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=997343&r1=997342&r2=997343&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 Sep 15 14:06:54 2010
@@ -47,12 +47,12 @@ import org.apache.aries.application.mana
 import org.apache.aries.application.management.ResolveConstraint;
 import org.apache.aries.application.management.ResolverException;
 import org.apache.aries.application.management.spi.repository.PlatformRepository;
-import org.apache.aries.application.management.spi.repository.RepositoryGenerator;
 import org.apache.aries.application.management.spi.resolve.AriesApplicationResolver;
 import org.apache.aries.application.modelling.ImportedBundle;
 import org.apache.aries.application.modelling.ModelledResource;
-import org.apache.aries.application.modelling.utils.ModellingConstants;
-import org.apache.aries.application.modelling.utils.ModellingManager;
+import org.apache.aries.application.modelling.ModellingConstants;
+import org.apache.aries.application.modelling.ModellingManager;
+import org.apache.aries.application.modelling.utils.ModellingHelper;
 import org.apache.aries.application.resolver.internal.MessageUtil;
 import org.apache.aries.application.resolver.obr.impl.ApplicationResourceImpl;
 import org.apache.aries.application.resolver.obr.impl.ModelledBundleResource;
@@ -74,7 +74,6 @@ import org.osgi.framework.InvalidSyntaxE
 import org.osgi.framework.Version;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.w3c.dom.Document;
 
 /**
  * @version $Rev$ $Date$
@@ -86,6 +85,17 @@ public class OBRAriesResolver implements
   private final RepositoryAdmin repositoryAdmin;  
   private boolean returnOptionalResources = true;
   private PlatformRepository platformRepository;
+  private ModellingManager modellingManager;
+  private ModellingHelper modellingHelper;
+  
+  public void setModellingManager (ModellingManager m) { 
+    modellingManager = m;
+  }
+  
+  public void setModellingHelper (ModellingHelper mh) { 
+    modellingHelper = mh;
+  }
+  
   public PlatformRepository getPlatformRepository()
   {
     return platformRepository;
@@ -115,9 +125,125 @@ public class OBRAriesResolver implements
   {
     return returnOptionalResources;
   }
+  
+  /**
+   * Resolve a list of resources from the OBR bundle repositories by OBR
+   * resolver.
+   * 
+   * @param appName - application name
+   * @param appVersion - application version
+   * @param byValueBundles - by value bundles
+   * @param inputs - other constraints
+   * @return a collection of modelled resources required by this application
+   * @throws ResolverException
+   */
+  @Override
+   public Collection<ModelledResource> resolve(String appName, String appVersion,
+      Collection<ModelledResource> byValueBundles, Collection<Content> inputs) throws ResolverException
+  {
+     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);
+    // add the user-defined repositories 
+    if (platformRepository != null) {
+      Collection<URI> uris = platformRepository.getPlatformRepositoryURLs();
+      if ((uris != null) && (!uris.isEmpty())) {
+        for (URI uri : uris) {
+          try {
+            resolveRepos.add(helper.readRepository(uri.toString()));
+          } catch (Exception e) {
+            // no a big problem
+            log.error(MessageUtil.getMessage("RESOLVER_UNABLE_TO_READ_REPOSITORY_EXCEPTION", new Object[]{appName, uri}) );
+          }
+        }
+      }
+    }
+   // 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()]));
+    // add a resource describing the requirements of the application metadata.
+    obrResolver.add(createApplicationResource( appName, appVersion, importedBundles));
+    if (obrResolver.resolve()) {
+      
+      List<Resource> requiredResources = retrieveRequiredResources(obrResolver);
+
+      if (requiredResources == null) {
+        log.debug("resolver.getRequiredResources() returned null");
+      } else {
+
+        for (Resource r : requiredResources) {
+          NameValueMap<String, String> attribs = new NameValueMap<String, String>();
+          attribs.put(Constants.VERSION_ATTRIBUTE, "[" + r.getVersion() + ',' + r.getVersion()
+              + "]");
+          ModelledResource modelledResourceForThisMatch = null; 
+          try { 
+            modelledResourceForThisMatch = new ModelledBundleResource (r, modellingManager, modellingHelper);
+          } catch (InvalidAttributeException iax) { 
+            
+            ResolverException re = new ResolverException("Internal error occurred: " + iax.toString());
+            log.debug(LOG_EXIT, "resolve", re);
+            
+            throw re;
+          }
+          toReturn.add(modelledResourceForThisMatch);
+        }
+      }
+      log.debug(LOG_EXIT, "resolve", toReturn); 
+      return toReturn;
+    } else {
+      Reason[] reasons = obrResolver.getUnsatisfiedRequirements();
+      // let's refine the list by removing the indirect unsatisfied bundles that are caused by unsatisfied packages or other bundles
+      Map<String,Set<String>> refinedReqs = refineUnsatisfiedRequirements(obrResolver, reasons);
+      StringBuffer reqList = new StringBuffer();
+      List<String> unsatisfiedRequirements = new LinkedList<String>();
+
+      for (Map.Entry<String, Set<String>> filterEntry : refinedReqs.entrySet()) {
+        log.debug("unable to satisfied the filter , filter = " + filterEntry.getKey() + "required by "+filterEntry.getValue());
+       
+        String reason = extractConsumableMessageInfo(filterEntry.getKey(),filterEntry.getValue());
+
+        reqList.append('\n');
+        reqList.append(reason);
+        unsatisfiedRequirements.add(reason);
+      }
+
+      ResolverException re = new ResolverException(MessageUtil.getMessage("RESOLVER_UNABLE_TO_RESOLVE", 
+          new Object[] { appName, reqList }));
+      re.setUnsatisfiedRequirements(unsatisfiedRequirements);
+      log.debug(LOG_EXIT, "resolve", re);
+      
+      throw re;
+    }
+    
+  }
     
  
   @Deprecated
+  @Override
   public Set<BundleInfo> resolve(AriesApplication app, ResolveConstraint... constraints) throws ResolverException
   {
     log.trace("resolving {}", app);
@@ -224,20 +350,9 @@ public class OBRAriesResolver implements
       
       throw re;
     }
-      
-  }
-  private Resource createApplicationResource( String appName, Version appVersion,
-      List<Content> appContent)
-  {
-    return new ApplicationResourceImpl(appName, appVersion, appContent);
   }
   
-  private Resource createApplicationResource( String appName, String appVersion,
-      Collection<ImportedBundle> inputs)
-  {
-    return new ApplicationResourceImpl(appName, Version.parseVersion(appVersion), inputs);
-  }
-
+  @Override
   public BundleInfo getBundleInfo(String bundleSymbolicName, Version bundleVersion)
   {
     Map<String, String> attribs = new HashMap<String, String>();
@@ -257,6 +372,17 @@ public class OBRAriesResolver implements
     }
   }
 
+  private Resource createApplicationResource( String appName, Version appVersion,
+      List<Content> appContent)
+  {
+    return new ApplicationResourceImpl(appName, appVersion, appContent);
+  }
+  
+  private Resource createApplicationResource( String appName, String appVersion,
+      Collection<ImportedBundle> inputs)
+  {
+    return new ApplicationResourceImpl(appName, Version.parseVersion(appVersion), inputs);
+  }
   
   private BundleInfo toBundleInfo(Resource resource, boolean optional) 
   {
@@ -388,7 +514,7 @@ public class OBRAriesResolver implements
    * @param bundlesFailing For problems with a bundle, the set of bundles that have a problem
    * @return human readable form
    */
-  public String extractConsumableMessageInfo(String filter, Set<String> bundlesFailing)
+  private String extractConsumableMessageInfo(String filter, Set<String> bundlesFailing)
   {
     log.debug(LOG_ENTRY, "extractConsumableMessageInfo", new Object[] {filter, bundlesFailing});
     
@@ -518,119 +644,7 @@ public class OBRAriesResolver implements
     return result;
     }
   
-  /**
-   * Resolve a list of resources from the OBR bundle repositories by OBR
-   * resolver.
-   * 
-   * @param appName - application name
-   * @param appVersion - application version
-   * @param byValueBundles - by value bundles
-   * @param inputs - other constraints
-   * @return a collection of modelled resources required by this application
-   * @throws ResolverException
-   */
-   public Collection<ModelledResource> resolve(String appName, String appVersion,
-      Collection<ModelledResource> byValueBundles, Collection<Content> inputs) throws ResolverException
-  {
-     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);
-    // add the user-defined repositories 
-    if (platformRepository != null) {
-      Collection<URI> uris = platformRepository.getPlatformRepositoryURLs();
-      if ((uris != null) && (!uris.isEmpty())) {
-        for (URI uri : uris) {
-          try {
-            resolveRepos.add(helper.readRepository(uri.toString()));
-          } catch (Exception e) {
-            // no a big problem
-            log.error(MessageUtil.getMessage("RESOLVER_UNABLE_TO_READ_REPOSITORY_EXCEPTION", new Object[]{appName, uri}) );
-          }
-        }
-      }
-    }
-   // 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()]));
-    // add a resource describing the requirements of the application metadata.
-    obrResolver.add(createApplicationResource( appName, appVersion, importedBundles));
-    if (obrResolver.resolve()) {
-      
-      List<Resource> requiredResources = retrieveRequiredResources(obrResolver);
-
-      if (requiredResources == null) {
-        log.debug("resolver.getRequiredResources() returned null");
-      } else {
-
-        for (Resource r : requiredResources) {
-          NameValueMap<String, String> attribs = new NameValueMap<String, String>();
-          attribs.put(Constants.VERSION_ATTRIBUTE, "[" + r.getVersion() + ',' + r.getVersion()
-              + "]");
-          ModelledResource modelledResourceForThisMatch = null; 
-          try { 
-            modelledResourceForThisMatch = new ModelledBundleResource (r);
-          } catch (InvalidAttributeException iax) { 
-            
-            ResolverException re = new ResolverException("Internal error occurred: " + iax.toString());
-            log.debug(LOG_EXIT, "resolve", re);
-            
-            throw re;
-          }
-          toReturn.add(modelledResourceForThisMatch);
-        }
-      }
-      log.debug(LOG_EXIT, "resolve", toReturn); 
-      return toReturn;
-    } else {
-      Reason[] reasons = obrResolver.getUnsatisfiedRequirements();
-      // let's refine the list by removing the indirect unsatisfied bundles that are caused by unsatisfied packages or other bundles
-      Map<String,Set<String>> refinedReqs = refineUnsatisfiedRequirements(obrResolver, reasons);
-      StringBuffer reqList = new StringBuffer();
-      List<String> unsatisfiedRequirements = new LinkedList<String>();
-
-      for (Map.Entry<String, Set<String>> filterEntry : refinedReqs.entrySet()) {
-        log.debug("unable to satisfied the filter , filter = " + filterEntry.getKey() + "required by "+filterEntry.getValue());
-       
-        String reason = extractConsumableMessageInfo(filterEntry.getKey(),filterEntry.getValue());
-
-        reqList.append('\n');
-        reqList.append(reason);
-        unsatisfiedRequirements.add(reason);
-      }
-
-      ResolverException re = new ResolverException(MessageUtil.getMessage("RESOLVER_UNABLE_TO_RESOLVE", 
-          new Object[] { appName, reqList }));
-      re.setUnsatisfiedRequirements(unsatisfiedRequirements);
-      log.debug(LOG_EXIT, "resolve", re);
-      
-      throw re;
-    }
-    
-  }
+ 
    
    private Collection<ImportedBundle> toImportedBundle(Collection<Content> content) throws ResolverException
    {
@@ -639,7 +653,7 @@ public class OBRAriesResolver implements
      List<ImportedBundle> result = new ArrayList<ImportedBundle>();
      for (Content c : content) {
        try {
-       result.add(ModellingManager.getImportedBundle(c.getContentName(), c.getVersion().toString()));
+       result.add(modellingManager.getImportedBundle(c.getContentName(), c.getVersion().toString()));
        } catch (InvalidAttributeException iae) {
          throw new ResolverException(iae);
        }
@@ -655,7 +669,7 @@ public class OBRAriesResolver implements
      if ((bundleInfos != null) && (!!!bundleInfos.isEmpty())) {
        for (BundleInfo bi : bundleInfos) {
          try {
-         result.add(ModellingManager.getModelledResource(null, bi, null, null));
+         result.add(modellingManager.getModelledResource(null, bi, null, null));
          } catch (InvalidAttributeException iae) {
            throw new ResolverException(iae);
          }

Modified: incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/ext/BundleResource.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/ext/BundleResource.java?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/ext/BundleResource.java (original)
+++ incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/ext/BundleResource.java Wed Sep 15 14:06:54 2010
@@ -36,7 +36,7 @@ import org.apache.aries.application.mode
 import org.apache.aries.application.modelling.ImportedPackage;
 import org.apache.aries.application.modelling.ImportedService;
 import org.apache.aries.application.modelling.ModelledResource;
-import org.apache.aries.application.modelling.utils.ModellingConstants;
+import org.apache.aries.application.modelling.ModellingConstants;
 import org.apache.aries.application.resolver.obr.impl.OBRCapability;
 import org.apache.aries.application.resolver.obr.impl.RequirementImpl;
 import org.apache.felix.bundlerepository.Capability;

Modified: incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/impl/ModelledBundleResource.java
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/impl/ModelledBundleResource.java?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/impl/ModelledBundleResource.java (original)
+++ incubator/aries/trunk/application/application-obr-resolver/src/main/java/org/apache/aries/application/resolver/obr/impl/ModelledBundleResource.java Wed Sep 15 14:06:54 2010
@@ -38,9 +38,9 @@ import org.apache.aries.application.mode
 import org.apache.aries.application.modelling.ImportedPackage;
 import org.apache.aries.application.modelling.ImportedService;
 import org.apache.aries.application.modelling.ModelledResource;
+import org.apache.aries.application.modelling.ModellingManager;
 import org.apache.aries.application.modelling.ResourceType;
-import org.apache.aries.application.modelling.utils.ModellingManager;
-import org.apache.aries.application.modelling.utils.ModellingUtils;
+import org.apache.aries.application.modelling.utils.ModellingHelper;
 import org.apache.aries.application.resolver.internal.MessageUtil;
 import org.apache.aries.application.utils.AppConstants;
 import org.apache.aries.application.utils.manifest.ManifestHeaderProcessor;
@@ -61,12 +61,16 @@ public class ModelledBundleResource impl
   private final Collection<ExportedService> serviceCapabilties;
   private final Collection<ImportedBundle> bundleRequirements;
   private final ResourceType type;
+  private final ModellingManager modellingManager;
+  private final ModellingHelper modellingHelper;
   private final Logger logger = LoggerFactory.getLogger(ModelledBundleResource.class);
 
-  public ModelledBundleResource (Resource r) throws InvalidAttributeException { 
+  public ModelledBundleResource (Resource r, ModellingManager mm, ModellingHelper mh) throws InvalidAttributeException { 
 
-    logger.debug(LOG_ENTRY, "ModelledBundleResource", r);
+    logger.debug(LOG_ENTRY, "ModelledBundleResource", new Object[]{r, mm, mh});
     resource = r;
+    modellingManager = mm;
+    modellingHelper = mh;
     List<ExportedBundle> exportedBundles = new ArrayList<ExportedBundle>();
     ResourceType thisResourceType = ResourceType.BUNDLE;
 
@@ -82,7 +86,7 @@ public class ModelledBundleResource impl
         for(Property entry : props) {
           sanitizedMap.put(entry.getName(), entry.getValue());
         }
-        exportedBundles.add (ModellingManager.getExportedBundle(sanitizedMap, ModellingUtils.buildFragmentHost(
+        exportedBundles.add (modellingManager.getExportedBundle(sanitizedMap, modellingHelper.buildFragmentHost(
             sanitizedMap.get(Constants.FRAGMENT_HOST))));
       } else if (cap.getName().equals(ResourceType.COMPOSITE.toString())) { 
         thisResourceType = ResourceType.COMPOSITE;
@@ -123,7 +127,7 @@ public class ModelledBundleResource impl
         if (requirement.isOptional()) { 
           filter.put(Constants.RESOLUTION_DIRECTIVE + ":", Constants.RESOLUTION_OPTIONAL);
         }
-        ImportedPackage info = ModellingManager.getImportedPackage(name, filter);
+        ImportedPackage info = modellingManager.getImportedPackage(name, filter);
         packageRequirements.add(info);
       } else if (ResourceType.SERVICE.toString().equals(requirement.getName())) {
         boolean optional = requirement.isOptional();
@@ -141,7 +145,7 @@ public class ModelledBundleResource impl
         componentName = attrs.get ("osgi.service.blueprint.compname");
         blueprintFilter = requirement.getFilter();
 
-        ImportedService svc = ModellingManager.getImportedService(optional, iface, componentName,
+        ImportedService svc = modellingManager.getImportedService(optional, iface, componentName,
             blueprintFilter, id, isMultiple);
         serviceRequirements.add(svc);
       } else if (ResourceType.BUNDLE.toString().equals(requirement.getName())) {
@@ -150,7 +154,7 @@ public class ModelledBundleResource impl
         if (requirement.isOptional()) { 
           atts.put(Constants.RESOLUTION_DIRECTIVE + ":", Constants.RESOLUTION_OPTIONAL);
         }
-        bundleRequirements.add(ModellingManager.getImportedBundle(filter, atts));
+        bundleRequirements.add(modellingManager.getImportedBundle(filter, atts));
       }
     }
 
@@ -167,7 +171,7 @@ public class ModelledBundleResource impl
         Object pkg = props.remove(ResourceType.PACKAGE.toString());
         // bundle symbolic name and version will be in additionalProps, so do not 
         // need to be passed in separately. 
-        ExportedPackage info = ModellingManager.getExportedPackage(this, pkg.toString(), props);
+        ExportedPackage info = modellingManager.getExportedPackage(this, pkg.toString(), props);
         packageCapabilities.add(info);
       } else if (ResourceType.SERVICE.toString().equals(capability.getName())) { 
         String name = null;   // we've lost this irretrievably
@@ -183,7 +187,7 @@ public class ModelledBundleResource impl
           ifaces = Arrays.asList((String)rawObjectClass);
         }
 
-        ExportedService svc = ModellingManager.getExportedService(name, ranking, ifaces, props);
+        ExportedService svc = modellingManager.getExportedService(name, ranking, ifaces, props);
         serviceCapabilties.add(svc);
 
       }

Modified: incubator/aries/trunk/application/application-obr-resolver/src/main/resources/OSGI-INF/blueprint/obr-resolver.xml
URL: http://svn.apache.org/viewvc/incubator/aries/trunk/application/application-obr-resolver/src/main/resources/OSGI-INF/blueprint/obr-resolver.xml?rev=997343&r1=997342&r2=997343&view=diff
==============================================================================
--- incubator/aries/trunk/application/application-obr-resolver/src/main/resources/OSGI-INF/blueprint/obr-resolver.xml (original)
+++ incubator/aries/trunk/application/application-obr-resolver/src/main/resources/OSGI-INF/blueprint/obr-resolver.xml Wed Sep 15 14:06:54 2010
@@ -25,9 +25,15 @@
             <reference interface="org.apache.felix.bundlerepository.RepositoryAdmin"/>
         </argument>
         <property name="platformRepository" ref="platformRepository"/>
+        <property name="modellingManager" ref="modellingManager"/>
+        <property name="modellingHelper" ref="modellingHelper"/>
         
     </bean>
-    <reference id="platformRepository" interface="org.apache.aries.application.management.spi.repository.PlatformRepository" availability="optional"/>        
+    <reference id="platformRepository" interface="org.apache.aries.application.management.spi.repository.PlatformRepository" availability="optional"/>
+    <reference id="modellingManager" interface="org.apache.aries.application.modelling.ModellingManager"/>
+    <reference id="modellingHelper" interface="org.apache.aries.application.modelling.utils.ModellingHelper"/>
+    <service ref="obr-resolver" interface="org.apache.aries.application.management.spi.resolve.AriesApplicationResolver"/>
+            
     
     <bean id="repository-generator" class="org.apache.aries.application.resolver.obr.impl.RepositoryGeneratorImpl" activation="lazy">
         <argument>
@@ -36,7 +42,6 @@
         <property name="bundleResourceTransformers" ref="bundle-resource-transformers"/>
     </bean>
     <service id="repository-generator-service" ref="repository-generator" interface="org.apache.aries.application.management.spi.repository.RepositoryGenerator"/>
-    <service interface="org.apache.aries.application.management.spi.resolve.AriesApplicationResolver" ref="obr-resolver"/>
     
     <reference-list id="bundle-resource-transformers" 
       interface="org.apache.aries.application.resolver.obr.ext.BundleResourceTransformer"