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"