Adding David Lloyd.<br><br><div class="gmail_quote">On Tue, Oct 16, 2012 at 3:06 PM, Lincoln Baxter, III <span dir="ltr">&lt;<a href="mailto:lincolnbaxter@gmail.com" target="_blank">lincolnbaxter@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hey Thomas, <br><br>Thanks for your great feedback. I have to say that so far I am having the same experience as you. I have gone through a few hoops to try to get this project to run or do anything, but nothing happening so far. Not really sure what the deal is.<br>

<b><br>Regarding the programming model:<br></b><br>It is a requirement that OSGi be not in any way be exposed to plugin-developers. This is something that we simple cannot be flexible on. <br><br>CDI is the standard DI model for Java EE (soon to be Java SE as well) and I since Forge 2.0 isn&#39;t exactly stable at the moment... I don&#39;t really think that we should be too concerned with the Weld OSGi project being &quot;unstable&quot; either. If anything, it would help both projects to work together - certainly help Weld OSGi get more feedback, and we can get involved in the process while we can still have an influence if we need features to be implemented or changed to support our use-cases. I think this is the perfect reason to try it.<br>

<br>If we decide to go with OSGi, and for some reason Weld OSGi is not working for us, then we absolutely must re-create all that &quot;magic&quot; i&#39;ve already created :) It&#39;s essential for adoption. OSGi was never meant to be exposed for every-day development tasks. Part of the selling point of Forge is that it uses the same programming model as the apps you are developing, so you don&#39;t need to learn new skill sets.<br>

<br><b>Regarding project structure:<br></b><br>Paul, is it at all possible for you to refactor this project to use Maven instead of ANT?<b> </b>If
 that is a lot of work, or too complicated, this may signify that it is 
not a great solution for us yet. We must stay very close to the tools 
people are used to working with. As it stands, having to install BND 
tools from a CI archive is a bit of a stretch, but one we can re-mediate
 by hosting the file on the forge website in the plugin guide.<br><br>I am also not in favor of a project layout which requires an IDE to build. We need to stick with Maven here.<br><br><b>Regarding modularity:<br></b>I&#39;m still not convinced that we really *need* OSGi. I think that if it simplifies our development experience, while continuing to meet our requirements, then we should use it, but if it does not, and is too big a paradigm shift, then we should still with what we are doing. That said, I&#39;m hoping for the former, that we can use it to achieve our goals, but I think we really need to see evidence that it will be able to meet the objectives that I stated a few emails ago.<br>

<br>That said, the prototype is a great start to proving out the technology, and the fact that there is little code gives me a lot of hope that OSGi will work for us with a little help from CDI, Maven, and our creativity. If we can get it working with Maven as the build tool/project structure, and CDI as the plugin programming model, then I will be sold.<span class="HOEnZb"><font color="#888888"><br>

<br>~Lincoln</font></span><div class="HOEnZb"><div class="h5"><br><br><br><br><br><div class="gmail_quote">On Tue, Oct 16, 2012 at 7:00 AM, Paul Bakker <span dir="ltr">&lt;<a href="mailto:paul.bakker.nl@gmail.com" target="_blank">paul.bakker.nl@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Hi Thomas,</div><div><br></div><div>Thanks for trying :-) Comments in line...</div>

<div><br></div><div>Paul</div><br><div><div><div>On Oct 16, 2012, at 9:14 , Thomas Frühbeck &lt;<a href="mailto:fruehbeck@aon.at" target="_blank">fruehbeck@aon.at</a>&gt; wrote:</div><br><blockquote type="cite">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    <div>Hello Paul, Lincoln,<br>
      <br>
      since the discussion started about moving to OSGi I have been
      reading, investigating and experimenting a bit and want to share
      my experiences as a novice - are you smiling already?<br>
      <br>
      I started with the current working Forge set of jars and tried to
      throw it at Felix - hindlooking somewhat naive I admit. Then the
      adventure started :-)<br>
      <br>
          * the BndTools 2.0.0 alpha command line &quot;wrap&quot; generated the
      new Manifest internally, but didn&#39;t write it into the jar in the
      end <br>
              - after some frustrating experiments and reading of the
      documentation (dating 2006?!?) ~20 times I debugged and fixed the
      problem<br>
              - comment by Peter Kriens: command line &quot;wrap&quot; is &quot;for
      quick use, for serious use, always make a bnd file that controls
      the process&quot; - which practically means: best write the Manifest
      yourself, honestly I can&#39;t see so much difference between calling
      &quot;jar ufm &lt;jar&gt; &lt;manifest.part&gt;&quot; and &quot;bnd
      &lt;bndfile&gt; -o &lt;jar&gt; &lt;jar&gt;&quot;<br>
      <br></div></div></blockquote><div><br></div></div><div>Use BndTools instead. There is a wizard &quot;Wrap JAR as OSGi bundle&quot;</div><div><div><br></div><br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000">

<div>
          * the structure of Bnd-projects is totally different to maven
      projects - I tried to setup the bnd source whithout Bnd-Tools,
      this is _no_ fun<br>
              - after ~15 years of programming thats now the 15th
      version of project structure - not again please?!<br></div></div></blockquote><div><br></div></div><div>Don&#39;t try playing with bndtools projects without bndtools. That&#39;s like playing with Maven projects without Maven ;-)</div>

<div>BndTools projects are structured as standard Eclipse projects, only the dependency management is done by BndTools (and that&#39;s why you should not try to work around that). </div><div><br><blockquote type="cite">
<div bgcolor="#FFFFFF" text="#000000"><div>
      <br>
          * the current state of jars in maven repositories out there
      makes integration into OSGi a nightmare!!<br>
              - wrong manifests<br>
              - manifests full of hundreds of Attributes - totally
      useless<br>
              - manifests importing dependencies without declaring them
      &quot;optional&quot; - please investigate each and every dependency yourself
      and rewite them<br>
              - manifests declaring dependencies with version
      restriction which is not provided by the targeted bundle<br>
                  - what a mess :-/<br>
              - IMHO in essence the current state makes the
      OSGi-landscape an island<br></div></div></blockquote><div><br></div></div><div>Depending on what you are trying to use this can be the case unfortunately. It&#39;s getting better though, more and more libraries come with correct manifests. It&#39;s mostly a problem with frameworks (as opposed to libraries). The up-side is that plugin developers will hardly ever introduce frameworks in their plugins, because Forge already offers an easy programming model. </div>

<div><br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000"><div>
      <br>
          * after reading the IMHO excellent book &quot;OSGi in Action&quot;
      @Manning I understand, that the resulting class loading inside the
      framework is far from easy to understand, if you go only one level
      deeper into the real mechanics - it&#39;s still no magic going on
      there<br></div></div></blockquote><div><br></div></div>Isolated classloading is a complicated topic in any modular approach, as an application developer you hardly ever have to deal with that level however.</div><div>

<div><br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000"><div>
      <br>
          * it&#39;s all about control - yes, sure, I understand that - but
      in the end we have to hide the complexity completely! After so
      many years of struggle I do not expect all Java programmers to
      gladly jump on the OSGi bandwaggon just because of the advent of
      Forge 2.0<br>
      <br>
      I am completely convinced, that OSGi is the best currently
      available instantiation of a framework we want in a tool like
      Forge, but the current situation makes the move substantial and
      painful - compared to the current easy going programming model.<br></div></div></blockquote><div><br></div></div><div>The currently programming model is easy because (mostly Lincoln) did all kind of CDI magic to create this programming model. Out of the box it&#39;s really not that easy when looking at just the low-level building blocks. It&#39;s the same when we build on OSGI, we have to provide the easy programming model. I strongly believe that it will be as easy as it is now.</div>

<div><div><br></div><br><blockquote type="cite"><div bgcolor="#FFFFFF" text="#000000"><div>
      <br>
      So I also want to stress the necessity of a &quot;Manifest&quot; for the
      &quot;Forge goes OSGi&quot; project - if there is one:<br>
          - try hard to stick to maven as build environment. Reasons:
      user base, documentation, stability, versatility<br></div></div></blockquote><div><br></div></div><div>You are right about the user base, but for the rest it&#39;s really very similar.</div><br><blockquote type="cite">

<div><div><div bgcolor="#FFFFFF" text="#000000"><div>
          - CDI is IMHO the new common understanding, stick to it
      please. No OSGi on the surface.<br>
          - define precisely the core / plugin bundle interaction<br>
              - e.g. from the view point of the &quot;user&quot; we could <br>
                  - present a version of core internally for each major
      version of dependent plugins to enable her to use old and new
      plugins side-by-side<br>
                  - present a dialog: &quot;which version of core do you want
      to start&quot; to enable use of new and old plugins<br>
                  - tell her that she has lots of plugins, but due to
      the version of core none of them are usable<br>
              - due to the nature of OSGi I am convinced, that a great
      deal of thought should be invested in the _vision_ we have of
      Forge before starting the hacking sessions - especially regarding
      the current state of it: versatile, flexible, open, based on sound
      tooling,..<br>
      <br>
      Sorry if that was not very productive, after 3 weeks of struggling
      just had to write that down :-)<br>
      Are you experts smiling? At least I hope you do!<br>
      <br>
      Thanks for your time, commitment and the incredible Forge!<br>
      <br>
      Forge on,<br>
      Thomas<br>
      <br>
      <br>
      <br>
      <br>
      Am 15.10.2012 23:55, schrieb Paul Bakker:<br>
    </div>
    <blockquote type="cite">
      
      <div>First of all I don&#39;t think it should be a requirement, you
        can get a very similar programming model doing pure OSGi. The
        alternative I use most is Felix DM: <a href="http://felix.apache.org/site/apache-felix-dependency-manager-getting-started.html" target="_blank">http://felix.apache.org/site/apache-felix-dependency-manager-getting-started.html</a>.</div>


      <div>You can either use a Java API or annotations (probably we
        should use annotations). It can do pretty much everything CDI
        can, but based on OSGi services. </div>
      <div><br>
      </div>
      <div>I&#39;m obviously not against CDI at all, I&#39;m a big fan of it,
        just think we should be careful using a framework that will most
        probably change significantly in the next few months. But before
        making that choice, maybe we should include Mathieu and David in
        this discussion.</div>
      <div><br>
      </div>
      <div>Paul</div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <br>
      <div>
        <div>On Oct 15, 2012, at 23:47 , &quot;Lincoln Baxter, III&quot; &lt;<a href="mailto:lincolnbaxter@gmail.com" target="_blank">lincolnbaxter@gmail.com</a>&gt;
          wrote:</div>
        <br>
        <blockquote type="cite">Since CDI annotations is a requirement,
          isn&#39;t this something we will need? What do you recommend as an
          alternative? What is it missing that would be a blocker?<br>
          <br>
          Sorry for all the tough questions :) Thanks for your time!!!<br>
          <br>
          ~Lincoln<br>
          <br>
          <div class="gmail_quote">On Mon, Oct 15, 2012 at 5:40 PM, Paul
            Bakker <span dir="ltr">&lt;<a href="mailto:paul.bakker.nl@gmail.com" target="_blank">paul.bakker.nl@gmail.com</a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div style="word-wrap:break-word">It provides several
                things:
                <div>-Publish OSGi services using CDI annotations</div>
                <div>-Inject OSGi services in CDI beans using @Inject</div>
                <div>-Inject OSGi APIs such as the bundlecontext using
                  @Inject</div>
                <br>
              </div>
            </blockquote>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </div></div></div><div>

_______________________________________________<br>forge-dev mailing list<br><a href="mailto:forge-dev@lists.jboss.org" target="_blank">forge-dev@lists.jboss.org</a><br><a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>

</div></blockquote></div><br></div><br>_______________________________________________<br>
forge-dev mailing list<br>
<a href="mailto:forge-dev@lists.jboss.org" target="_blank">forge-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/forge-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/forge-dev</a><br>
<br></blockquote></div><br><br clear="all"><br></div></div><div class="HOEnZb"><div class="h5">-- <br>Lincoln Baxter, III<br><a href="http://ocpsoft.org" target="_blank">http://ocpsoft.org</a><br>&quot;Simpler is better.&quot;<br>

</div></div></blockquote></div><br><br clear="all"><br>-- <br>Lincoln Baxter, III<br><a href="http://ocpsoft.org" target="_blank">http://ocpsoft.org</a><br>&quot;Simpler is better.&quot;<br>