Results 1 to 5 of 5

Thread: Enterprise Bundle Repository compatibility with Ivy?

  1. #1

    Question Enterprise Bundle Repository compatibility with Ivy?

    Hello,

    For my Project we currently use a build system with ivy+ant (typical). And as I have understood Ivy over a period of time - I believe for Ivy to do transitive dependency management it needs module descriptors (ivy.xml) for each dependency and a resolver to reach that dependency.

    e.g
    AAPI.jar at runtime needs AImpl.jar
    And BAPI.jar needs BImpl.jar at runtime again.

    All 'A' dependencies are resolved via YYY url resolver( the reporting tool will not let me say the url address for the resolver :-|) and similarly All 'B' dependencies are resolver via XXX url resolver. also I have ivy.xml for Module A and Module B.

    With this understanding of Ivy, I was hoping to use Enterprise Bundle repository - but to my surprise not a single bundle has Module Descriptor (ivy.xml) defined for Ivy to resolve dependencies.

    e.g If in ivy.xml For Module A I declare a dependency for JSON Stax implementation

    <dependency org="org.codehaus.jettison" name="com.springsource.org.codehaus.jettison" rev="1.0.1" />


    name=com.springsource.org.codehaus.jettison&versio n=1.0.1


    Now as per EBR , this bundle has another dependency on com.springsource.javax.xml.stream . Now this is where I am highly confused :

    1. How ivy is going to ever know that it needs to fetch StAX Api jar when it fetches AJSON Stax Impl jar?

    2. I understand that these jars are OSGi compatible and in the Manifest.mf files the Label Import-packages does this job in OSGi environment

    3. Will IVY read Manifest.MF file to locate dependencies?


    So if there is a magic happening that I am not aware of, which will let Ivy Fetch all the transitive dependencies for a given module on EBR, please do share it with me.

    And if there is no magic, and Ivy will not fetch all the dependencies transitively for a given Module on EBR - than how do we claim that this is IVY Compatible repository?

    I am sorry - if this comes across as silly question - but I have exhausted Google searches and I could not find a single explanation on how Enterprise Bundle Repository allows IVY to do transitive dependency management without ivy.xml for any of the bundles.

    Thanks for reading and responding. An early response is highly appreciated.

    Regards,
    Garima.

  2. #2
    Join Date
    Jan 2005
    Location
    Bucharest, Romania
    Posts
    5,403

    Default

    Garima, I'll try to answer your questions. First, have you read the EBR FAQ - http://www.springsource.com/repository/app/faq?
    EBR does offer meta information for ivy - see this artifact, randomly chosen for example: http://is.gd/r9io
    Notice that EBR is hosted on Amazon S3 so it's not searchable with a normal web browser however you can use dedicated tools such as s3browse.com - maybe this caused some confusion.
    I'm not sure how or where you tried to find the descriptor but the FAQ explains how to define the repository and each artifact defines what you need to specify so that ivy can download the artifacts.
    Regarding your questions:

    1. Take a look at the ivy metadata for that artifact and see whether there is a profile specified.
    2. Import-Package has another meaning then the one you mentioned. Again the FAQ and other materials on OSGi (which can be found by searching, on this forum as well) explain this in detail
    3. no
    Costin Leau
    SpringSource - http://www.SpringSource.com- Spring Training, Consulting, and Support - "From the Source"
    http://twitter.com/costinl
    Please use [ c o d e ] [ / c o d e ] tags

  3. #3

    Default

    Thank You Costin very much!

    So I did read the faq before I posted. And as per FAQ you need to configure a resolver ( as below)

    <url name="com.springsource.repository.bundles.release" > <ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> <artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> </url> <url name="com.springsource.repository.bundles.external "> <ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> <artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> </url>

    And I have been searching for the ivy.xml on http://www.springsource.com/repository/app/

    Well, I think if there is mention of S3 in faqs, that will be very helpful.

    Yes you are right, that FAQ does explains how to configure everything, but I just happen to be logically trying to understand where it is going to fetch dependencies when I couldn't find any ivy.xml at http://www.springsource.com/repository/app/ - My bad I was also look at the wrong url. And searching these forums is not a piece of cake :-)

    Thanks!

  4. #4

    Default

    Hello Forum, Costin,

    I have another followup question:

    As per the FAQ: http://www.springsource.com/repository/app/faq#q7 - to use EBR with Ivy following resolver needs to be added:

    <url name="com.springsource.repository.bundles.release" > <ivy pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
    <artifact pattern="http://repository.springsource.com/ivy/bundles/release/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" />
    </url>
    <url name="com.springsource.repository.bundles.external "> <ivy pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> <artifact pattern="http://repository.springsource.com/ivy/bundles/external/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]" /> </url>


    My Question is regarding the suggested ivy pattern - it ends with [artifact]-[revision].[ext]

    How exactly Can Ivy look up for ivy.xml for a given module if ivy-pattern is set the way it has been suggested in the FAQ
    As an example look in the link below and ivy.xml file has name - ivy-1.0.0.RELEASE.xml -

    I am just confused on how exactly can this name file be looked up with the suggested ivy pattern?
    http://s3browse.com/explore/reposito...1.0.0.RELEASE/


    I did forum search - but I couldn't find much info on this.

    Thanks,
    Garima.

  5. #5
    Join Date
    Jan 2005
    Location
    Bucharest, Romania
    Posts
    5,403

    Default

    Garima, for new issues is best to post a new topic rather then reuse an old one.
    These being said, the ivy documentation can answer better then I can how the patterns are being resolved. Also, it's best to ask EBR related questions in this (http://forum.springsource.org/forumdisplay.php?f=56) forum as this is the Spring DM one.
    Costin Leau
    SpringSource - http://www.SpringSource.com- Spring Training, Consulting, and Support - "From the Source"
    http://twitter.com/costinl
    Please use [ c o d e ] [ / c o d e ] tags

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •