Announcement Announcement Module
Collapse

Spring Dynamic Modules forum decommissioned in favor of Eclipse Gemini Blueprint

With the official first release of Eclipse Gemini Blueprint shipped, the migration of the Spring Dynamic Modules code base to the Eclipse Foundation, as part of the Gemini project, has been completed.

As such, this forum has been decommissioned in favour of the Eclipse Gemini forums.
See more
See less
Enterprise Bundle Repository compatibility with Ivy? Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    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

    Comment


    • #3
      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!

      Comment


      • #4
        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.

        Comment


        • #5
          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.

          Comment

          Working...
          X