Giter Site home page Giter Site logo

bindex's People

Contributors

bjhargrave avatar fhuberts avatar njbartlett avatar pkriens avatar rkrzewski avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

pruzze

bindex's Issues

add support for analyzing virtualized resources

current bindex API requires java.io.File. The changes to bindex v1 code incorporated into Nexus OBR plugin change the input data to be java.io.InputStream + metadata. This needs to be taken care of in the new API

Bundle-SymbolicName;fragment-attachment:=never handing

New bindex handles fragment-attachment:=never by not emitting osgi.wiring.host capabilty for the bundle. RFC112 dos not have a corresponding capability element, but requires in chapter 5.9.1 that this directive should be present in 'bundle' capability.
This directive is not visible in new bindex, so this needs to be rectified.

use core r5 org.osgi.resource interfaces

Right now Bindex is using it's own Resource, Requirement and Capability classes.
Migrate to org.osgi.resource to ease interop with org.osgi.service.respository implementations

add index reading functinality

it should use pull parsing model to allow asynchronous stream processing.
since we're on JDK 1.5 and javax.xml.stream (JSR-173) is not available, xmlpull (used by old bindex) is the preferred choice.

replace naive regex based filter parsers in RFC112IndexWriter with a more robust solution

I've encountered an unwelcome complication with implementation of osgi.ee and osgi.wiring.host requirements. I had to parse and filter directives and rewrite them into other forms. You can see the unwieldy and brittle solution here

It would be much better if the analyzers stored the filters in an object form, and writers converted them to just before writing them out. Unfortunately filters are directives and Capability/Requirement store directives as Map<String,String>, so I don't see a way of fixing it from this end without introducing additional internal API beyond org.osgi.resource

An alternative would be writing a proper parser for filters with AST and Visitor pattern. The grammar is very simple so this should be easy.

implement addional attributes in osgi.identiy namespace

OSGi Core spec R5 defines in chapter 8.6 a number of attributes in osgi.identiy namespace that bindex does not support:

  • copyright
  • description
  • documentation
  • license

RFC112 defines in chapter 5.2.1 a number of Resource properties that overlap with those above to a large extent:

  • copyright
  • description
  • documentation
  • license
  • name
  • source
  • size
    Additionally it defines in chapter 5.5.6 tag

Looking at index files generated by maven-bundle-plugin, using old bindex, I can see that it puts presentationname attribute into tag, and presentationname and manifestversion attributes into 'bundle' capability. Those are not mentioned explicitly in RFC112 but have well known meaning

Some of the above properties have corresponding Manifest headers:

  • copyright: Bundle-Copyright
  • description: Bundle-Description
  • license: Bundle-License
  • name/presentationname: Bundle-Name
  • category: Bundle-Category
  • manifestversion: Manifest-Version

size is already supported by bindex 2 in osgi.content namespace, and source property is inherently incompatible. RFC112 mandates a mechanism based on URLs and OSGi Core R5 a mechanism based on requirements (see chapter 8.6.1)

I'm planning to use the headers mentioned in the last list above to define additional attributes in osgi.identiy namespace and include them into the indexes

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.