<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    I think this would over-complicate things.&nbsp; I've got no problem with
    telling our users that they must declare a dependency for a module's
    API, and a dependency for the IMPL they want to use, if that's what
    we decide.<br>
    <br>
    On 17/08/11 13:12, John D. Ament wrote:
    <blockquote
cite="mid:CAOqetn86uMe_iSNTRtCALy4tPGyCDDeo=6wB=zOb8VvrfOnYSA@mail.gmail.com"
      type="cite">
      <p>What if every module had a bom that was imported, or if this
        were handled in the seam-bom?</p>
      <p>John</p>
      <div class="gmail_quote">On Aug 16, 2011 11:06 PM, "Dan Allen"
        &lt;<a moz-do-not-send="true"
          href="mailto:dan.j.allen@gmail.com">dan.j.allen@gmail.com</a>&gt;
        wrote:<br type="attribution">
        &gt; On Tue, Aug 16, 2011 at 22:57, Shane Bryzak &lt;<a
          moz-do-not-send="true" href="mailto:sbryzak@redhat.com">sbryzak@redhat.com</a>&gt;
        wrote:<br>
        &gt; <br>
        &gt;&gt; Of course, but we break that rule. Solder is one
        example, there's<br>
        &gt;&gt; multiple utility classes in the implementation that are
        required to compile<br>
        &gt;&gt; other modules.<br>
        &gt;&gt;<br>
        &gt; <br>
        &gt; I consider that a bug (or a work in progress, depending on
        how you look at<br>
        &gt; it).<br>
        &gt; <br>
        &gt; <br>
        &gt;&gt; Also, by making the implementation runtime-only, the
        user is forced to<br>
        &gt;&gt; declare two dependencies for their project, one for the
        API and one for the<br>
        &gt;&gt; implementation. If the implementation was
        compile-scoped, they could just<br>
        &gt;&gt; declare the implementation dependency and the API would
        then be pulled in<br>
        &gt;&gt; automatically. This is the kind of stuff we need to
        discuss and come to a<br>
        &gt;&gt; resolution on.<br>
        &gt;&gt;<br>
        &gt; <br>
        &gt; Again, I don't think one dependency is a holy grail. We are
        making an<br>
        &gt; optimization that I don't find necessary. Making an
        implementation<br>
        &gt; compile-scoped could be classified as careless programming
        (by some strict<br>
        &gt; architects, let's say).<br>
        &gt; <br>
        &gt; If it's setup correctly, depending on seam-faces (the impl)
        should make it a<br>
        &gt; runtime dep, make the api compile time, make any dependent
        api compile time<br>
        &gt; and make any dependency impl runtime. If Maven can't
        accommodate that, then<br>
        &gt; it's just a pita (even then, the worse thing that happens
        is that the user<br>
        &gt; has two dependencies).<br>
        &gt; <br>
        &gt; -Dan<br>
        &gt; <br>
        &gt; -- <br>
        &gt; Dan Allen<br>
        &gt; Principal Software Engineer, Red Hat | Author of Seam in
        Action<br>
        &gt; Registered Linux User #231597<br>
        &gt; <br>
        &gt; <a moz-do-not-send="true"
          href="http://www.google.com/profiles/dan.j.allen#about">http://www.google.com/profiles/dan.j.allen#about</a><br>
        &gt; <a moz-do-not-send="true" href="http://mojavelinux.com">http://mojavelinux.com</a><br>
        &gt; <a moz-do-not-send="true"
          href="http://mojavelinux.com/seaminaction">http://mojavelinux.com/seaminaction</a><br>
      </div>
    </blockquote>
    <br>
  </body>
</html>