Package org.apache.felix.bundlerepository

Examples of org.apache.felix.bundlerepository.DataModelHelper


        return resolveFragments;
    }

    public Set<BundleInfo> resolve(AriesApplication app, ResolveConstraint... constraints) throws ResolverException {
        log.trace("resolving {}", app);
        DataModelHelper helper = repositoryAdmin.getHelper();

        ApplicationMetadata appMeta = app.getApplicationMetadata();

        String appName = appMeta.getApplicationSymbolicName();
        Version appVersion = appMeta.getApplicationVersion();
        List<Content> appContent = appMeta.getApplicationContents();

        Repository appRepo;

        try {
            Document doc = RepositoryDescriptorGenerator.generateRepositoryDescriptor(appName + "_" + appVersion, app
                    .getBundleInfo());

            ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();

            TransformerFactory.newInstance().newTransformer().transform(new DOMSource(doc), new StreamResult(bytesOut));

            appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
        } catch (Exception e) {
            throw new ResolverException(e);
        }

        List<Repository> resolveRepos = new ArrayList<Repository>();
View Full Code Here


            return null;
        }
       
        log.debug("Searching for fragments for {}", hostResource);
       
        DataModelHelper helper = repositoryAdmin.getHelper();
       
        String filter = "(&(host=" + hostResource.getSymbolicName() + "))";
        Requirement fragmentRequirement = helper.requirement(Capability.FRAGMENT, filter);
        Resource[] fragmentResources = repositoryAdmin.discoverResources(new Requirement[] { fragmentRequirement });
        if (fragmentResources != null && fragmentResources.length > 0) {

            if (log.isDebugEnabled()) {
                log.debug("Fragments found for {}: {}", new Object[] { hostResource, Arrays.asList(fragmentResources) } );               
View Full Code Here

  private Resolver getConfiguredObrResolver(String appName, String appVersion,
      Collection<ModelledResource> byValueBundles, PlatformRepository platformRepository) throws ResolverException
  {
    log.debug(LOG_ENTRY, "getConfiguredObrResolver", new Object[]{appName, appVersion,byValueBundles });
    DataModelHelper helper = repositoryAdmin.getHelper();
    Repository appRepo;
    try {     
      ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
      RepositoryGeneratorImpl.generateRepository(repositoryAdmin, appName + "_" + appVersion, byValueBundles, bytesOut);
      appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
    } catch (Exception e) {
      throw new ResolverException(e);
    }
       
    List<Repository> resolveRepos = new ArrayList<Repository>();
View Full Code Here

   * repository or bundle. 
   */
  private void addPlatformRepositories (Resolver obrResolver, String appName, PlatformRepository platformRepository)
  {
    log.debug(LOG_ENTRY, "addPlatformRepositories", new Object[]{obrResolver, appName});
    DataModelHelper helper = repositoryAdmin.getHelper();
    if (platformRepository != null) {
      Collection<URI> uris = platformRepository.getPlatformRepositoryURLs();
      if ((uris != null) && (!uris.isEmpty())) {
        for (URI uri : uris) {
          InputStream is = null;
          try {
            is = uri.toURL().openStream();
            Reader repoReader = new InputStreamReader(is);
            Repository aPlatformRepo = helper.readRepository(repoReader);
            Resource resources[] = aPlatformRepo.getResources();
            for (Resource r : resources) {
              Capability[] caps = r.getCapabilities();
              for (Capability c : caps) {
                obrResolver.addGlobalCapability(c);
View Full Code Here

  public Property[] getProperties()
  {
    logger.debug(LOG_ENTRY, "getProperties");
    DataModelHelper helper = repositoryAdmin.getHelper();
   
    List<Property> properties = new ArrayList<Property>();
   
    // Felix BundleRepository doesn't appear to correctly cope with String[] value properties
    // as a result we can't do multi value service properties. OBR doesn't really like implementations
    // of its interfaces that it didn't generate, but it is a little weird when it does and doesn't.
    // so we create a Property implemenation which we use to generate the OBR xml for a property which
    // we then get OBR to parse. This is really convoluted and nasty.
    for (final Map.Entry<String, Object> entry : _props.entrySet()) {
      String propXML = helper.writeProperty(new Property() {
        @Override
        public String getValue()
        {
          Object value = entry.getValue();
         
          if (value instanceof String[]) {
            String newValue = Arrays.toString((String[])value);
            value = newValue.substring(1, newValue.length() - 1);
          } else if (value instanceof Collection) {
            //We can't rely on Collections having a sensible toString() as it isn't
            //part of the API (although all base Java ones do). We can use an array
            //to get consistency
            String newValue = Arrays.toString(((Collection<?>)value).toArray());
            value = newValue.substring(1, newValue.length() - 1);
          }
         
          return String.valueOf(value);
        }
       
        @Override
        public String getType()
        {
          String name = entry.getKey();
          String type = null;
          if (Constants.VERSION_ATTRIBUTE.equals(name) || (Constants.BUNDLE_VERSION_ATTRIBUTE.equals(name))) {
            type =  "version";
          } else if (Constants.OBJECTCLASS.equals(name) || (Constants.MANDATORY_DIRECTIVE + ":").equals(name) ||
              entry.getValue() instanceof String[] || entry.getValue() instanceof Collection)
            type = "set";
          return type;
        }
       
        @Override
        public String getName()
        {
          return entry.getKey();
        }
       
        @Override
        public Object getConvertedValue()
        {
          return null;
        }
      });
     
      try {
        properties.add(helper.readProperty(propXML));
      } catch (Exception e) {
        // Do nothing and hope it OBR doesn't generate XML it can't parse.
      }
    }
   
View Full Code Here

 
  private Resolver getConfiguredObrResolver(String appName, String appVersion,
      Collection<ModelledResource> byValueBundles, boolean noExtraRepositories) throws ResolverException
  {
    log.debug(LOG_ENTRY, "getConfiguredObrResolver", new Object[]{appName, appVersion,byValueBundles });
    DataModelHelper helper = repositoryAdmin.getHelper();
    Repository appRepo;
    try {     
      ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
      RepositoryGeneratorImpl.generateRepository(repositoryAdmin, appName + "_" + appVersion, byValueBundles, bytesOut);
      appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
    } catch (Exception e) {
      throw new ResolverException(e);
    }
       
    List<Repository> resolveRepos = new ArrayList<Repository>();
View Full Code Here

   * repository or bundle. 
   */
  private void addPlatformRepositories (Resolver obrResolver, String appName, PlatformRepository platformRepository)
  {
    log.debug(LOG_ENTRY, "addPlatformRepositories", new Object[]{obrResolver, appName});
    DataModelHelper helper = repositoryAdmin.getHelper();
    if (platformRepository != null) {
      Collection<URI> uris = platformRepository.getPlatformRepositoryURLs();
      if ((uris != null) && (!uris.isEmpty())) {
        for (URI uri : uris) {
          InputStream is = null;
          try {
            is = uri.toURL().openStream();
            Reader repoReader = new InputStreamReader(is);
            Repository aPlatformRepo = helper.readRepository(repoReader);
            Resource resources[] = aPlatformRepo.getResources();
            for (Resource r : resources) {
              Capability[] caps = r.getCapabilities();
              for (Capability c : caps) {
                obrResolver.addGlobalCapability(c);
View Full Code Here

        return resolveFragments;
    }

    public Set<BundleInfo> resolve(AriesApplication app, ResolveConstraint... constraints) throws ResolverException {
        log.trace("resolving {}", app);
        DataModelHelper helper = repositoryAdmin.getHelper();

        ApplicationMetadata appMeta = app.getApplicationMetadata();

        String appName = appMeta.getApplicationSymbolicName();
        Version appVersion = appMeta.getApplicationVersion();
        List<Content> appContent = appMeta.getApplicationContents();

        Repository appRepo;

        try {
            Document doc = RepositoryDescriptorGenerator.generateRepositoryDescriptor(appName + "_" + appVersion, app
                    .getBundleInfo());

            ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();

            TransformerFactory.newInstance().newTransformer().transform(new DOMSource(doc), new StreamResult(bytesOut));

            appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
        } catch (Exception e) {
            throw new ResolverException(e);
        }

        List<Repository> resolveRepos = new ArrayList<Repository>();
View Full Code Here

            return null;
        }
       
        log.debug("Searching for fragments for {}", hostResource);
       
        DataModelHelper helper = repositoryAdmin.getHelper();
       
        String filter = "(&(host=" + hostResource.getSymbolicName() + "))";
        Requirement fragmentRequirement = helper.requirement(Capability.FRAGMENT, filter);
        Resource[] fragmentResources = repositoryAdmin.discoverResources(new Requirement[] { fragmentRequirement });
        if (fragmentResources != null && fragmentResources.length > 0) {

            if (log.isDebugEnabled()) {
                log.debug("Fragments found for {}: {}", new Object[] { hostResource, Arrays.asList(fragmentResources) } );               
View Full Code Here

  }
   
  public Set<BundleInfo> resolve(AriesApplication app, ResolveConstraint... constraints) throws ResolverException
  {
    log.trace("resolving {}", app);
    DataModelHelper helper = repositoryAdmin.getHelper();

    ApplicationMetadata appMeta = app.getApplicationMetadata();

    String appName = appMeta.getApplicationSymbolicName();
    Version appVersion = appMeta.getApplicationVersion();
    List<Content> appContent = appMeta.getApplicationContents();

    Repository appRepo;
   
    try {
      Document doc = RepositoryDescriptorGenerator.generateRepositoryDescriptor(appName + "_" + appVersion, app.getBundleInfo());
     
      ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
     
      TransformerFactory.newInstance().newTransformer().transform(new DOMSource(doc), new StreamResult(bytesOut));
     
      appRepo = helper.readRepository(new InputStreamReader(new ByteArrayInputStream(bytesOut.toByteArray())));
    } catch (Exception e) {
      throw new ResolverException(e);
    }
       
    List<Repository> resolveRepos = new ArrayList<Repository>();
View Full Code Here

TOP

Related Classes of org.apache.felix.bundlerepository.DataModelHelper

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.